Skip to content

Instantly share code, notes, and snippets.

@ederign
Created June 6, 2023 19:50
Show Gist options
  • Save ederign/8c03a8e654fd6111c6f860df3691c5ac to your computer and use it in GitHub Desktop.
Save ederign/8c03a8e654fd6111c6f860df3691c5ac to your computer and use it in GitHub Desktop.
apiVersion: v1
kind: Namespace
metadata:
labels:
control-plane: controller-manager
name: kogito-serverless-operator-system
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.9.2
creationTimestamp: null
name: kogitoserverlessbuilds.sw.kogito.kie.org
spec:
group: sw.kogito.kie.org
names:
kind: KogitoServerlessBuild
listKind: KogitoServerlessBuildList
plural: kogitoserverlessbuilds
shortNames:
- ksb
- kbuild
- kbuilds
singular: kogitoserverlessbuild
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.imageTag
name: Image
type: string
- jsonPath: .status.buildPhase
name: Phase
type: string
name: v1alpha08
schema:
openAPIV3Schema:
description: KogitoServerlessBuild is the Schema for the kogitoserverlessbuilds
API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: KogitoServerlessBuildSpec an abstraction over the actual
build process performed by the platform.
properties:
arguments:
description: Arguments lists the command line arguments to send to
the builder
items:
type: string
type: array
resources:
description: Resources optional compute resource requirements for
the builder
properties:
claims:
description: "Claims lists the names of resources, defined in
spec.resourceClaims, that are used by this container. \n This
is an alpha field and requires enabling the DynamicResourceAllocation
feature gate. \n This field is immutable. It can only be set
for containers."
items:
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
properties:
name:
description: Name must match the name of one entry in pod.spec.resourceClaims
of the Pod where this field is used. It makes that resource
available inside a container.
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: 'Limits describes the maximum amount of compute resources
allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: 'Requests describes the minimum amount of compute
resources required. If Requests is omitted for a container,
it defaults to Limits if that is explicitly specified, otherwise
to an implementation-defined value. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
type: object
type: object
timeout:
description: Timeout defines the Build maximum execution duration.
The Build deadline is set to the Build start time plus the Timeout
duration. If the Build deadline is exceeded, the Build context is
canceled, and its phase set to BuildPhaseFailed.
format: duration
type: string
type: object
status:
description: KogitoServerlessBuildStatus defines the observed state of
KogitoServerlessBuild
properties:
buildPhase:
description: Current phase of the build
type: string
error:
description: Last error found during build
type: string
imageTag:
description: The final image tag produced by this build instance
type: string
innerBuild:
description: InnerBuild is a reference to an internal build object,
which can be anything known only to internal builders.
type: object
x-kubernetes-preserve-unknown-fields: true
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.9.2
creationTimestamp: null
name: kogitoserverlessplatforms.sw.kogito.kie.org
spec:
group: sw.kogito.kie.org
names:
kind: KogitoServerlessPlatform
listKind: KogitoServerlessPlatformList
plural: kogitoserverlessplatforms
shortNames:
- ksp
- kplatform
- kplatforms
singular: kogitoserverlessplatform
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.cluster
name: Cluster
type: string
- jsonPath: .status.phase
name: Phase
type: string
- jsonPath: .status.phase=='Ready'
name: Ready
type: string
name: v1alpha08
schema:
openAPIV3Schema:
description: KogitoServerlessPlatform is the Schema for the kogitoserverlessplatforms
API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: KogitoServerlessPlatformSpec defines the desired state of
KogitoServerlessPlatform
properties:
build:
description: BuildTemplate specify how to build the Workflow. It's
used as a template for the KogitoServerlessBuild
properties:
arguments:
description: Arguments lists the command line arguments to send
to the builder
items:
type: string
type: array
resources:
description: Resources optional compute resource requirements
for the builder
properties:
claims:
description: "Claims lists the names of resources, defined
in spec.resourceClaims, that are used by this container.
\n This is an alpha field and requires enabling the DynamicResourceAllocation
feature gate. \n This field is immutable. It can only be
set for containers."
items:
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
properties:
name:
description: Name must match the name of one entry in
pod.spec.resourceClaims of the Pod where this field
is used. It makes that resource available inside a
container.
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: 'Limits describes the maximum amount of compute
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: 'Requests describes the minimum amount of compute
resources required. If Requests is omitted for a container,
it defaults to Limits if that is explicitly specified, otherwise
to an implementation-defined value. Requests cannot exceed
Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
type: object
type: object
timeout:
description: Timeout defines the Build maximum execution duration.
The Build deadline is set to the Build start time plus the Timeout
duration. If the Build deadline is exceeded, the Build context
is canceled, and its phase set to BuildPhaseFailed.
format: duration
type: string
type: object
configuration:
description: Configuration list of configuration properties to be
attached to all the Workflow built from this Platform
properties:
type:
description: 'Type represents the type of configuration, ie: property,
configmap, secret, ...'
type: string
value:
description: Value a reference to the object for this configuration
(syntax may vary depending on the `Type`)
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: 'If referring to a piece of an object instead
of an entire object, this string should contain a valid
JSON/Go field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container within
a pod, this would take on a value like: "spec.containers{name}"
(where "name" refers to the name of the container that triggered
the event) or if no container name is specified "spec.containers[2]"
(container with index 2 in this pod). This syntax is chosen
only to have some well-defined way of referencing a part
of an object. TODO: this design is not final and this field
is subject to change in the future.'
type: string
kind:
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
resourceVersion:
description: 'Specific resourceVersion to which this reference
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
type: string
uid:
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
type: string
type: object
x-kubernetes-map-type: atomic
required:
- type
- value
type: object
devBaseImage:
description: DevBaseImage Base image to run the Workflow in dev mode
instead of the operator's default. Optional, used for the dev profile
only
type: string
platform:
description: BuildPlatform specify how is the platform where we want
to build the Workflow
properties:
baseImage:
description: a base image that can be used as base layer for all
images. It can be useful if you want to provide some custom
base image with further utility software
type: string
buildStrategy:
description: BuildStrategy to use to build workflows in the platform.
Usually, the operator elect the strategy based on the platform.
Note that this field might be read only in certain scenarios.
type: string
buildStrategyOptions:
additionalProperties:
type: string
description: 'TODO: add a link to the documentation where the
user can find more info about this field BuildStrategyOptions
additional options to add to the build strategy.'
type: object
registry:
description: Registry the registry where to publish the built
image
properties:
address:
description: the URI to access
type: string
ca:
description: the configmap which stores the Certificate Authority
type: string
insecure:
description: if the container registry is insecure (ie, http
only)
type: boolean
organization:
description: the registry organization
type: string
secret:
description: the secret where credentials are stored
type: string
type: object
timeout:
description: how much time to wait before time out the build process
type: string
type: object
type: object
status:
description: KogitoServerlessPlatformStatus defines the observed state
of KogitoServerlessPlatform
properties:
cluster:
description: Cluster what kind of cluster you're running (ie, plain
Kubernetes or OpenShift)
enum:
- kubernetes
- openshift
type: string
conditions:
description: Conditions which are the conditions met (particularly
useful when in ERROR phase)
items:
description: PlatformCondition describes the state of a resource
at a certain point.
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
lastUpdateTime:
description: The last time this condition was updated.
format: date-time
type: string
message:
description: A human-readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of platform condition (i.e. Kubernetes, OpenShift).
type: string
required:
- status
- type
type: object
type: array
info:
additionalProperties:
type: string
description: Info generic information related to the build of Kogito
Serverless operator
type: object
observedGeneration:
description: ObservedGeneration is the most recent generation observed
for this Platform.
format: int64
type: integer
phase:
description: Phase defines in what phase the Platform is found
type: string
version:
description: Version the Kogito Serverless operator version controlling
this Platform
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.9.2
creationTimestamp: null
name: kogitoserverlessworkflows.sw.kogito.kie.org
spec:
group: sw.kogito.kie.org
names:
kind: KogitoServerlessWorkflow
listKind: KogitoServerlessWorkflowList
plural: kogitoserverlessworkflows
shortNames:
- ksw
- workflow
- workflows
singular: kogitoserverlessworkflow
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .metadata.annotations.sw\.kogito\.kie\.org\/profile
name: Profile
type: string
- jsonPath: .metadata.annotations.sw\.kogito\.kie\.org\/version
name: Version
type: string
- jsonPath: .status.endpoint
name: URL
type: string
- jsonPath: .status.conditions[?(@.type=='Running')].status
name: Ready
type: string
- jsonPath: .status.conditions[?(@.type=='Running')].reason
name: Reason
type: string
name: v1alpha08
schema:
openAPIV3Schema:
description: KogitoServerlessWorkflow is the Schema for the kogitoserverlessworkflows
API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: KogitoServerlessWorkflowSpec defines the desired state of
KogitoServerlessWorkflow
properties:
flow:
description: Workflow base definition
properties:
annotations:
description: Annotations List of helpful terms describing the
workflows intended purpose, subject areas, or other important
qualities.
items:
type: string
type: array
auth:
description: Auth definitions can be used to define authentication
information that should be applied to resources defined in the
operation property of function definitions. It is not used as
authentication information for the function invocation, but
just to access the resource containing the function invocation
information.
x-kubernetes-preserve-unknown-fields: true
autoRetries:
description: AutoRetries If set to true, actions should automatically
be retried on unchecked errors. Default is false
type: boolean
constants:
additionalProperties:
description: RawMessage is a raw encoded JSON value. It implements
Marshaler and Unmarshaler and can be used to delay JSON decoding
or precompute a JSON encoding.
format: byte
type: string
description: Constants Workflow constants are used to define static,
and immutable, data which is available to Workflow Expressions.
type: object
dataInputSchema:
description: DataInputSchema URI of the JSON Schema used to validate
the workflow data input
properties:
failOnValidationErrors:
type: boolean
schema:
type: string
required:
- failOnValidationErrors
- schema
type: object
description:
description: Workflow description.
type: string
errors:
description: Defines checked errors that can be explicitly handled
during workflow execution.
items:
description: Error declaration for workflow definitions
properties:
code:
description: Code OnError code. Can be used in addition
to the name to help runtimes resolve to technical errors/exceptions.
Should not be defined if error is set to '*'.
type: string
description:
description: OnError description.
type: string
name:
description: Name Domain-specific error name.
type: string
required:
- name
type: object
type: array
events:
items:
description: Event used to define events and their correlations
properties:
correlation:
description: Define event correlation rules for this event.
Only used for consumed events.
items:
description: Correlation define event correlation rules
for an event. Only used for `consumed` events
properties:
contextAttributeName:
description: CloudEvent Extension Context Attribute
name
type: string
contextAttributeValue:
description: CloudEvent Extension Context Attribute
value
type: string
required:
- contextAttributeName
type: object
type: array
dataOnly:
description: If `true`, only the Event payload is accessible
to consuming Workflow states. If `false`, both event payload
and context attributes should be accessible. Defaults
to true.
type: boolean
kind:
default: consumed
description: Defines the CloudEvent as either 'consumed'
or 'produced' by the workflow. Defaults to `consumed`.
enum:
- consumed
- produced
type: string
metadata:
additionalProperties:
type: object
description: Metadata information
type: object
name:
description: Unique event name.
type: string
source:
description: CloudEvent source.
type: string
type:
description: CloudEvent type.
type: string
required:
- name
- type
type: object
type: array
expressionLang:
default: jq
description: Identifies the expression language used for workflow
expressions. Default is 'jq'.
enum:
- jq
- jsonpath
type: string
functions:
items:
description: Function ...
properties:
authRef:
description: References an auth definition name to be used
to access to resource defined in the operation parameter.
type: string
metadata:
additionalProperties:
type: object
description: Metadata information
type: object
name:
description: Unique function name
type: string
operation:
description: If type is `rest`, <path_to_openapi_definition>#<operation_id>.
If type is `rpc`, <path_to_grpc_proto_file>#<service_name>#<service_method>.
If type is `expression`, defines the workflow expression.
If the type is `custom`, <path_to_custom_script>#<custom_service_method>.
type: string
type:
default: rest
description: Defines the function type. Is either `custom`,
`rest`, `rpc`, `expression`, `graphql`, `odata` or `asyncapi`.
Default is `rest`.
enum:
- rest
- rpc
- expression
- graphql
- odata
- asyncapi
- custom
type: string
required:
- name
- operation
type: object
type: array
id:
description: Workflow unique identifier
type: string
keepActive:
description: If "true", workflow instances is not terminated when
there are no active execution paths. Instance can be terminated
with "terminate end definition" or reaching defined "workflowExecTimeout"
type: boolean
key:
description: Key Domain-specific workflow identifier
type: string
metadata:
description: Metadata custom information shared with the runtime.
x-kubernetes-preserve-unknown-fields: true
name:
description: Workflow name
type: string
retries:
items:
description: Retry ...
properties:
delay:
description: Time delay between retry attempts (ISO 8601
duration format)
type: string
increment:
description: Static value by which the delay increases during
each attempt (ISO 8601 time format)
type: string
jitter:
description: 'If float type, maximum amount of random time
added or subtracted from the delay between each retry
relative to total delay (between 0 and 1). If string type,
absolute maximum amount of random time added or subtracted
from the delay between each retry (ISO 8601 duration format)
TODO: make iso8601duration compatible this type'
properties:
floatVal:
type: number
strVal:
type: string
type:
description: Type represents the stored type of Float32OrString.
format: int64
type: integer
type: object
maxAttempts:
anyOf:
- type: integer
- type: string
description: Maximum number of retry attempts.
x-kubernetes-int-or-string: true
maxDelay:
description: Maximum time delay between retry attempts (ISO
8601 duration format)
type: string
multiplier:
description: Numeric value, if specified the delay between
retries is multiplied by this value.
properties:
floatVal:
type: number
strVal:
type: string
type:
description: Type represents the stored type of Float32OrString.
format: int64
type: integer
type: object
name:
description: Unique retry strategy name
type: string
required:
- maxAttempts
- name
type: object
type: array
secrets:
description: Secrets allow you to access sensitive information,
such as passwords, OAuth tokens, ssh keys, etc, inside your
Workflow Expressions.
items:
type: string
type: array
specVersion:
default: "0.8"
description: Serverless Workflow schema version
type: string
start:
description: Workflow start definition.
x-kubernetes-preserve-unknown-fields: true
states:
items:
properties:
callbackState:
description: callbackState executes a function and waits
for callback event that indicates completion of the task.
properties:
action:
description: Defines the action to be executed.
properties:
actionDataFilter:
description: Filter the state data to select only
the data that can be used within function definition
arguments using its fromStateData property. Filter
the action results to select only the result data
that should be added/merged back into the state
data using its results property. Select the part
of state data which the action data results should
be added/merged to using the toStateData property.
properties:
fromStateData:
description: Workflow expression that filters
state data that can be used by the action.
type: string
results:
description: Workflow expression that filters
the actions data results.
type: string
toStateData:
description: Workflow expression that selects
a state data element to which the action results
should be added/merged into. If not specified
denotes the top-level state data element.
type: string
useResults:
description: If set to false, action data results
are not added/merged to state data. In this
case 'results' and 'toStateData' should be
ignored. Default is true.
type: boolean
type: object
condition:
description: Expression, if defined, must evaluate
to true for this action to be performed. If false,
action is disregarded.
type: string
eventRef:
description: References a 'trigger' and 'result'
reusable event definitions.
properties:
contextAttributes:
additionalProperties:
type: object
description: Add additional extension context
attributes to the produced event.
type: object
data:
description: If string type, an expression which
selects parts of the states data output to
become the data (payload) of the event referenced
by triggerEventRef. If object type, a custom
object to become the data (payload) of the
event referenced by triggerEventRef.
type: object
invoke:
default: sync
description: Specifies if the function should
be invoked sync or async. Default is sync.
enum:
- async
- sync
type: string
resultEventRef:
description: Reference to the unique name of
a 'consumed' event definition
type: string
resultEventTimeout:
description: Maximum amount of time (ISO 8601
format) to wait for the result event. If not
defined it be set to the actionExecutionTimeout
type: string
triggerEventRef:
description: Reference to the unique name of
a 'produced' event definition,
type: string
required:
- resultEventRef
- triggerEventRef
type: object
functionRef:
description: References a reusable function definition.
properties:
arguments:
additionalProperties:
type: object
description: 'Arguments (inputs) to be passed
to the referenced function TODO: validate
it as required if function type is graphql'
type: object
invoke:
default: sync
description: Specifies if the function should
be invoked sync or async. Default is sync.
enum:
- async
- sync
type: string
refName:
description: Name of the referenced function.
type: string
selectionSet:
description: 'Used if function type is graphql.
String containing a valid GraphQL selection
set. TODO: validate it as required if function
type is graphql'
type: string
required:
- refName
type: object
id:
description: Defines Unique action identifier.
type: string
name:
description: Defines Unique action name.
type: string
nonRetryableErrors:
description: List of unique references to defined
workflow errors for which the action should not
be retried. Used only when `autoRetries` is set
to `true`
items:
type: string
type: array
retryRef:
description: References a defined workflow retry
definition. If not defined uses the default runtime
retry definition.
type: string
retryableErrors:
description: List of unique references to defined
workflow errors for which the action should be
retried. Used only when `autoRetries` is set to
`false`
items:
type: string
type: array
sleep:
description: Defines time period workflow execution
should sleep before / after function execution.
properties:
after:
description: Defines amount of time (ISO 8601
duration format) to sleep after function/subflow
invocation. Does not apply if 'eventRef' is
defined.
type: string
before:
description: Defines amount of time (ISO 8601
duration format) to sleep before function/subflow
invocation. Does not apply if 'eventRef' is
defined.
type: string
type: object
subFlowRef:
description: References a workflow to be invoked.
properties:
invoke:
default: sync
description: Specifies if the subflow should
be invoked sync or async. Defaults to sync.
enum:
- async
- sync
type: string
onParentComplete:
default: terminate
description: onParentComplete specifies how
subflow execution should behave when parent
workflow completes if invoke is 'async'. Defaults
to terminate.
enum:
- terminate
- continue
type: string
version:
description: Sub-workflow version
type: string
workflowId:
description: Sub-workflow unique id
type: string
required:
- workflowId
type: object
type: object
eventDataFilter:
description: Event data filter definition.
properties:
data:
description: Workflow expression that filters of
the event data (payload).
type: string
toStateData:
description: Workflow expression that selects a
state data element to which the action results
should be added/merged into. If not specified
denotes the top-level state data element
type: string
useData:
description: If set to false, event payload is not
added/merged to state data. In this case 'data'
and 'toStateData' should be ignored. Default is
true.
type: boolean
type: object
eventRef:
description: References a unique callback event name
in the defined workflow events.
type: string
timeouts:
description: Time period to wait for incoming events
(ISO 8601 format)
properties:
actionExecTimeout:
description: Default single actions definition execution
timeout (ISO 8601 duration format)
type: string
eventTimeout:
description: Default timeout for consuming defined
events (ISO 8601 duration format)
type: string
stateExecTimeout:
description: Default workflow state execution timeout
(ISO 8601 duration format)
properties:
single:
description: Single state execution timeout,
not including retries (ISO 8601 duration format)
type: string
total:
description: Total state execution timeout,
including retries (ISO 8601 duration format)
type: string
required:
- total
type: object
type: object
required:
- action
- eventRef
type: object
compensatedBy:
description: Unique Name of a workflow state which is responsible
for compensation of this state.
type: string
delayState:
description: delayState Causes the workflow execution to
delay for a specified duration.
properties:
timeDelay:
description: Amount of time (ISO 8601 format) to delay
type: string
required:
- timeDelay
type: object
end:
description: State end definition.
x-kubernetes-preserve-unknown-fields: true
eventState:
description: event states await one or more events and perform
actions when they are received. If defined as the workflow
starting state, the event state definition controls when
the workflow instances should be created.
properties:
exclusive:
default: true
description: If true consuming one of the defined events
causes its associated actions to be performed. If
false all the defined events must be consumed in order
for actions to be performed. Defaults to true.
type: boolean
onEvents:
description: Define the events to be consumed and optional
actions to be performed.
items:
description: OnEvents define which actions are be
performed for the one or more events.
properties:
actionMode:
default: sequential
description: Should actions be performed sequentially
or in parallel. Default is sequential.
enum:
- sequential
- parallel
type: string
actions:
description: Actions to be performed if expression
matches
items:
description: Action specify invocations of services
or other workflows during workflow execution.
properties:
actionDataFilter:
description: Filter the state data to select
only the data that can be used within
function definition arguments using its
fromStateData property. Filter the action
results to select only the result data
that should be added/merged back into
the state data using its results property.
Select the part of state data which the
action data results should be added/merged
to using the toStateData property.
properties:
fromStateData:
description: Workflow expression that
filters state data that can be used
by the action.
type: string
results:
description: Workflow expression that
filters the actions data results.
type: string
toStateData:
description: Workflow expression that
selects a state data element to which
the action results should be added/merged
into. If not specified denotes the
top-level state data element.
type: string
useResults:
description: If set to false, action
data results are not added/merged
to state data. In this case 'results'
and 'toStateData' should be ignored.
Default is true.
type: boolean
type: object
condition:
description: Expression, if defined, must
evaluate to true for this action to be
performed. If false, action is disregarded.
type: string
eventRef:
description: References a 'trigger' and
'result' reusable event definitions.
properties:
contextAttributes:
additionalProperties:
type: object
description: Add additional extension
context attributes to the produced
event.
type: object
data:
description: If string type, an expression
which selects parts of the states
data output to become the data (payload)
of the event referenced by triggerEventRef.
If object type, a custom object to
become the data (payload) of the event
referenced by triggerEventRef.
type: object
invoke:
default: sync
description: Specifies if the function
should be invoked sync or async. Default
is sync.
enum:
- async
- sync
type: string
resultEventRef:
description: Reference to the unique
name of a 'consumed' event definition
type: string
resultEventTimeout:
description: Maximum amount of time
(ISO 8601 format) to wait for the
result event. If not defined it be
set to the actionExecutionTimeout
type: string
triggerEventRef:
description: Reference to the unique
name of a 'produced' event definition,
type: string
required:
- resultEventRef
- triggerEventRef
type: object
functionRef:
description: References a reusable function
definition.
properties:
arguments:
additionalProperties:
type: object
description: 'Arguments (inputs) to
be passed to the referenced function
TODO: validate it as required if function
type is graphql'
type: object
invoke:
default: sync
description: Specifies if the function
should be invoked sync or async. Default
is sync.
enum:
- async
- sync
type: string
refName:
description: Name of the referenced
function.
type: string
selectionSet:
description: 'Used if function type
is graphql. String containing a valid
GraphQL selection set. TODO: validate
it as required if function type is
graphql'
type: string
required:
- refName
type: object
id:
description: Defines Unique action identifier.
type: string
name:
description: Defines Unique action name.
type: string
nonRetryableErrors:
description: List of unique references to
defined workflow errors for which the
action should not be retried. Used only
when `autoRetries` is set to `true`
items:
type: string
type: array
retryRef:
description: References a defined workflow
retry definition. If not defined uses
the default runtime retry definition.
type: string
retryableErrors:
description: List of unique references to
defined workflow errors for which the
action should be retried. Used only when
`autoRetries` is set to `false`
items:
type: string
type: array
sleep:
description: Defines time period workflow
execution should sleep before / after
function execution.
properties:
after:
description: Defines amount of time
(ISO 8601 duration format) to sleep
after function/subflow invocation.
Does not apply if 'eventRef' is defined.
type: string
before:
description: Defines amount of time
(ISO 8601 duration format) to sleep
before function/subflow invocation.
Does not apply if 'eventRef' is defined.
type: string
type: object
subFlowRef:
description: References a workflow to be
invoked.
properties:
invoke:
default: sync
description: Specifies if the subflow
should be invoked sync or async. Defaults
to sync.
enum:
- async
- sync
type: string
onParentComplete:
default: terminate
description: onParentComplete specifies
how subflow execution should behave
when parent workflow completes if
invoke is 'async'. Defaults to terminate.
enum:
- terminate
- continue
type: string
version:
description: Sub-workflow version
type: string
workflowId:
description: Sub-workflow unique id
type: string
required:
- workflowId
type: object
type: object
type: array
eventDataFilter:
description: eventDataFilter defines the callback
event data filter definition
properties:
data:
description: Workflow expression that filters
of the event data (payload).
type: string
toStateData:
description: Workflow expression that selects
a state data element to which the action
results should be added/merged into. If
not specified denotes the top-level state
data element
type: string
useData:
description: If set to false, event payload
is not added/merged to state data. In this
case 'data' and 'toStateData' should be
ignored. Default is true.
type: boolean
type: object
eventRefs:
description: References one or more unique event
names in the defined workflow events.
items:
type: string
minItems: 1
type: array
required:
- eventRefs
type: object
minItems: 1
type: array
timeouts:
description: State specific timeouts.
properties:
actionExecTimeout:
description: Default single actions definition execution
timeout (ISO 8601 duration format)
type: string
eventTimeout:
description: Default timeout for consuming defined
events (ISO 8601 duration format)
type: string
stateExecTimeout:
description: Default workflow state execution timeout
(ISO 8601 duration format)
properties:
single:
description: Single state execution timeout,
not including retries (ISO 8601 duration format)
type: string
total:
description: Total state execution timeout,
including retries (ISO 8601 duration format)
type: string
required:
- total
type: object
type: object
required:
- onEvents
type: object
forEachState:
description: forEachState used to execute actions for each
element of a data set.
properties:
actions:
description: Actions to be executed for each of the
elements of inputCollection.
items:
description: Action specify invocations of services
or other workflows during workflow execution.
properties:
actionDataFilter:
description: Filter the state data to select only
the data that can be used within function definition
arguments using its fromStateData property.
Filter the action results to select only the
result data that should be added/merged back
into the state data using its results property.
Select the part of state data which the action
data results should be added/merged to using
the toStateData property.
properties:
fromStateData:
description: Workflow expression that filters
state data that can be used by the action.
type: string
results:
description: Workflow expression that filters
the actions data results.
type: string
toStateData:
description: Workflow expression that selects
a state data element to which the action
results should be added/merged into. If
not specified denotes the top-level state
data element.
type: string
useResults:
description: If set to false, action data
results are not added/merged to state data.
In this case 'results' and 'toStateData'
should be ignored. Default is true.
type: boolean
type: object
condition:
description: Expression, if defined, must evaluate
to true for this action to be performed. If
false, action is disregarded.
type: string
eventRef:
description: References a 'trigger' and 'result'
reusable event definitions.
properties:
contextAttributes:
additionalProperties:
type: object
description: Add additional extension context
attributes to the produced event.
type: object
data:
description: If string type, an expression
which selects parts of the states data output
to become the data (payload) of the event
referenced by triggerEventRef. If object
type, a custom object to become the data
(payload) of the event referenced by triggerEventRef.
type: object
invoke:
default: sync
description: Specifies if the function should
be invoked sync or async. Default is sync.
enum:
- async
- sync
type: string
resultEventRef:
description: Reference to the unique name
of a 'consumed' event definition
type: string
resultEventTimeout:
description: Maximum amount of time (ISO 8601
format) to wait for the result event. If
not defined it be set to the actionExecutionTimeout
type: string
triggerEventRef:
description: Reference to the unique name
of a 'produced' event definition,
type: string
required:
- resultEventRef
- triggerEventRef
type: object
functionRef:
description: References a reusable function definition.
properties:
arguments:
additionalProperties:
type: object
description: 'Arguments (inputs) to be passed
to the referenced function TODO: validate
it as required if function type is graphql'
type: object
invoke:
default: sync
description: Specifies if the function should
be invoked sync or async. Default is sync.
enum:
- async
- sync
type: string
refName:
description: Name of the referenced function.
type: string
selectionSet:
description: 'Used if function type is graphql.
String containing a valid GraphQL selection
set. TODO: validate it as required if function
type is graphql'
type: string
required:
- refName
type: object
id:
description: Defines Unique action identifier.
type: string
name:
description: Defines Unique action name.
type: string
nonRetryableErrors:
description: List of unique references to defined
workflow errors for which the action should
not be retried. Used only when `autoRetries`
is set to `true`
items:
type: string
type: array
retryRef:
description: References a defined workflow retry
definition. If not defined uses the default
runtime retry definition.
type: string
retryableErrors:
description: List of unique references to defined
workflow errors for which the action should
be retried. Used only when `autoRetries` is
set to `false`
items:
type: string
type: array
sleep:
description: Defines time period workflow execution
should sleep before / after function execution.
properties:
after:
description: Defines amount of time (ISO 8601
duration format) to sleep after function/subflow
invocation. Does not apply if 'eventRef'
is defined.
type: string
before:
description: Defines amount of time (ISO 8601
duration format) to sleep before function/subflow
invocation. Does not apply if 'eventRef'
is defined.
type: string
type: object
subFlowRef:
description: References a workflow to be invoked.
properties:
invoke:
default: sync
description: Specifies if the subflow should
be invoked sync or async. Defaults to sync.
enum:
- async
- sync
type: string
onParentComplete:
default: terminate
description: onParentComplete specifies how
subflow execution should behave when parent
workflow completes if invoke is 'async'.
Defaults to terminate.
enum:
- terminate
- continue
type: string
version:
description: Sub-workflow version
type: string
workflowId:
description: Sub-workflow unique id
type: string
required:
- workflowId
type: object
type: object
minItems: 1
type: array
batchSize:
anyOf:
- type: integer
- type: string
description: Specifies how many iterations may run in
parallel at the same time. Used if mode property is
set to parallel (default). If not specified, its value
should be the size of the inputCollection.
x-kubernetes-int-or-string: true
inputCollection:
description: Workflow expression selecting an array
element of the states' data.
type: string
iterationParam:
description: Name of the iteration parameter that can
be referenced in actions/workflow. For each parallel
iteration, this param should contain a unique element
of the inputCollection array.
type: string
mode:
default: parallel
description: Specifies how iterations are to be performed
(sequential or in parallel), defaults to parallel.
enum:
- sequential
- parallel
type: string
outputCollection:
description: Workflow expression specifying an array
element of the states data to add the results of each
iteration.
type: string
timeouts:
description: State specific timeout.
properties:
actionExecTimeout:
description: Default single actions definition execution
timeout (ISO 8601 duration format)
type: string
stateExecTimeout:
description: Default workflow state execution timeout
(ISO 8601 duration format)
properties:
single:
description: Single state execution timeout,
not including retries (ISO 8601 duration format)
type: string
total:
description: Total state execution timeout,
including retries (ISO 8601 duration format)
type: string
required:
- total
type: object
type: object
required:
- inputCollection
type: object
id:
description: Unique State id.
type: string
injectState:
description: injectState used to inject static data into
state data input.
properties:
data:
additionalProperties:
type: object
description: JSON object which can be set as state's
data input and can be manipulated via filter
minProperties: 1
type: object
timeouts:
description: State specific timeouts
properties:
stateExecTimeout:
description: Default workflow state execution timeout
(ISO 8601 duration format)
properties:
single:
description: Single state execution timeout,
not including retries (ISO 8601 duration format)
type: string
total:
description: Total state execution timeout,
including retries (ISO 8601 duration format)
type: string
required:
- total
type: object
type: object
required:
- data
type: object
metadata:
additionalProperties:
type: object
description: Metadata information.
type: object
name:
description: State name.
type: string
onErrors:
description: States error handling and retries definitions.
items:
description: OnError ...
properties:
end:
description: End workflow execution in case of this
error. If retryRef is defined, this ends workflow
only if retries were unsuccessful.
x-kubernetes-preserve-unknown-fields: true
errorRef:
description: ErrorRef Reference to a unique workflow
error definition. Used of errorRefs is not used
type: string
errorRefs:
description: ErrorRefs References one or more workflow
error definitions. Used if errorRef is not used
items:
type: string
type: array
transition:
description: Transition to next state to handle the
error. If retryRef is defined, this transition is
taken only if retries were unsuccessful.
x-kubernetes-preserve-unknown-fields: true
type: object
type: array
operationState:
description: operationState defines a set of actions to
be performed in sequence or in parallel.
properties:
actionMode:
default: sequential
description: Specifies whether actions are performed
in sequence or in parallel, defaults to sequential.
enum:
- sequential
- parallel
type: string
actions:
description: Actions to be performed
items:
description: Action specify invocations of services
or other workflows during workflow execution.
properties:
actionDataFilter:
description: Filter the state data to select only
the data that can be used within function definition
arguments using its fromStateData property.
Filter the action results to select only the
result data that should be added/merged back
into the state data using its results property.
Select the part of state data which the action
data results should be added/merged to using
the toStateData property.
properties:
fromStateData:
description: Workflow expression that filters
state data that can be used by the action.
type: string
results:
description: Workflow expression that filters
the actions data results.
type: string
toStateData:
description: Workflow expression that selects
a state data element to which the action
results should be added/merged into. If
not specified denotes the top-level state
data element.
type: string
useResults:
description: If set to false, action data
results are not added/merged to state data.
In this case 'results' and 'toStateData'
should be ignored. Default is true.
type: boolean
type: object
condition:
description: Expression, if defined, must evaluate
to true for this action to be performed. If
false, action is disregarded.
type: string
eventRef:
description: References a 'trigger' and 'result'
reusable event definitions.
properties:
contextAttributes:
additionalProperties:
type: object
description: Add additional extension context
attributes to the produced event.
type: object
data:
description: If string type, an expression
which selects parts of the states data output
to become the data (payload) of the event
referenced by triggerEventRef. If object
type, a custom object to become the data
(payload) of the event referenced by triggerEventRef.
type: object
invoke:
default: sync
description: Specifies if the function should
be invoked sync or async. Default is sync.
enum:
- async
- sync
type: string
resultEventRef:
description: Reference to the unique name
of a 'consumed' event definition
type: string
resultEventTimeout:
description: Maximum amount of time (ISO 8601
format) to wait for the result event. If
not defined it be set to the actionExecutionTimeout
type: string
triggerEventRef:
description: Reference to the unique name
of a 'produced' event definition,
type: string
required:
- resultEventRef
- triggerEventRef
type: object
functionRef:
description: References a reusable function definition.
properties:
arguments:
additionalProperties:
type: object
description: 'Arguments (inputs) to be passed
to the referenced function TODO: validate
it as required if function type is graphql'
type: object
invoke:
default: sync
description: Specifies if the function should
be invoked sync or async. Default is sync.
enum:
- async
- sync
type: string
refName:
description: Name of the referenced function.
type: string
selectionSet:
description: 'Used if function type is graphql.
String containing a valid GraphQL selection
set. TODO: validate it as required if function
type is graphql'
type: string
required:
- refName
type: object
id:
description: Defines Unique action identifier.
type: string
name:
description: Defines Unique action name.
type: string
nonRetryableErrors:
description: List of unique references to defined
workflow errors for which the action should
not be retried. Used only when `autoRetries`
is set to `true`
items:
type: string
type: array
retryRef:
description: References a defined workflow retry
definition. If not defined uses the default
runtime retry definition.
type: string
retryableErrors:
description: List of unique references to defined
workflow errors for which the action should
be retried. Used only when `autoRetries` is
set to `false`
items:
type: string
type: array
sleep:
description: Defines time period workflow execution
should sleep before / after function execution.
properties:
after:
description: Defines amount of time (ISO 8601
duration format) to sleep after function/subflow
invocation. Does not apply if 'eventRef'
is defined.
type: string
before:
description: Defines amount of time (ISO 8601
duration format) to sleep before function/subflow
invocation. Does not apply if 'eventRef'
is defined.
type: string
type: object
subFlowRef:
description: References a workflow to be invoked.
properties:
invoke:
default: sync
description: Specifies if the subflow should
be invoked sync or async. Defaults to sync.
enum:
- async
- sync
type: string
onParentComplete:
default: terminate
description: onParentComplete specifies how
subflow execution should behave when parent
workflow completes if invoke is 'async'.
Defaults to terminate.
enum:
- terminate
- continue
type: string
version:
description: Sub-workflow version
type: string
workflowId:
description: Sub-workflow unique id
type: string
required:
- workflowId
type: object
type: object
minItems: 1
type: array
timeouts:
description: State specific timeouts
properties:
actionExecTimeout:
description: Default single actions definition execution
timeout (ISO 8601 duration format)
type: string
stateExecTimeout:
description: Defines workflow state execution timeout.
properties:
single:
description: Single state execution timeout,
not including retries (ISO 8601 duration format)
type: string
total:
description: Total state execution timeout,
including retries (ISO 8601 duration format)
type: string
required:
- total
type: object
type: object
required:
- actions
type: object
parallelState:
description: parallelState Consists of a number of states
that are executed in parallel.
properties:
branches:
description: List of branches for this parallel state.
items:
description: Branch Definition
properties:
actions:
description: Actions to be executed in this branch
items:
description: Action specify invocations of services
or other workflows during workflow execution.
properties:
actionDataFilter:
description: Filter the state data to select
only the data that can be used within
function definition arguments using its
fromStateData property. Filter the action
results to select only the result data
that should be added/merged back into
the state data using its results property.
Select the part of state data which the
action data results should be added/merged
to using the toStateData property.
properties:
fromStateData:
description: Workflow expression that
filters state data that can be used
by the action.
type: string
results:
description: Workflow expression that
filters the actions data results.
type: string
toStateData:
description: Workflow expression that
selects a state data element to which
the action results should be added/merged
into. If not specified denotes the
top-level state data element.
type: string
useResults:
description: If set to false, action
data results are not added/merged
to state data. In this case 'results'
and 'toStateData' should be ignored.
Default is true.
type: boolean
type: object
condition:
description: Expression, if defined, must
evaluate to true for this action to be
performed. If false, action is disregarded.
type: string
eventRef:
description: References a 'trigger' and
'result' reusable event definitions.
properties:
contextAttributes:
additionalProperties:
type: object
description: Add additional extension
context attributes to the produced
event.
type: object
data:
description: If string type, an expression
which selects parts of the states
data output to become the data (payload)
of the event referenced by triggerEventRef.
If object type, a custom object to
become the data (payload) of the event
referenced by triggerEventRef.
type: object
invoke:
default: sync
description: Specifies if the function
should be invoked sync or async. Default
is sync.
enum:
- async
- sync
type: string
resultEventRef:
description: Reference to the unique
name of a 'consumed' event definition
type: string
resultEventTimeout:
description: Maximum amount of time
(ISO 8601 format) to wait for the
result event. If not defined it be
set to the actionExecutionTimeout
type: string
triggerEventRef:
description: Reference to the unique
name of a 'produced' event definition,
type: string
required:
- resultEventRef
- triggerEventRef
type: object
functionRef:
description: References a reusable function
definition.
properties:
arguments:
additionalProperties:
type: object
description: 'Arguments (inputs) to
be passed to the referenced function
TODO: validate it as required if function
type is graphql'
type: object
invoke:
default: sync
description: Specifies if the function
should be invoked sync or async. Default
is sync.
enum:
- async
- sync
type: string
refName:
description: Name of the referenced
function.
type: string
selectionSet:
description: 'Used if function type
is graphql. String containing a valid
GraphQL selection set. TODO: validate
it as required if function type is
graphql'
type: string
required:
- refName
type: object
id:
description: Defines Unique action identifier.
type: string
name:
description: Defines Unique action name.
type: string
nonRetryableErrors:
description: List of unique references to
defined workflow errors for which the
action should not be retried. Used only
when `autoRetries` is set to `true`
items:
type: string
type: array
retryRef:
description: References a defined workflow
retry definition. If not defined uses
the default runtime retry definition.
type: string
retryableErrors:
description: List of unique references to
defined workflow errors for which the
action should be retried. Used only when
`autoRetries` is set to `false`
items:
type: string
type: array
sleep:
description: Defines time period workflow
execution should sleep before / after
function execution.
properties:
after:
description: Defines amount of time
(ISO 8601 duration format) to sleep
after function/subflow invocation.
Does not apply if 'eventRef' is defined.
type: string
before:
description: Defines amount of time
(ISO 8601 duration format) to sleep
before function/subflow invocation.
Does not apply if 'eventRef' is defined.
type: string
type: object
subFlowRef:
description: References a workflow to be
invoked.
properties:
invoke:
default: sync
description: Specifies if the subflow
should be invoked sync or async. Defaults
to sync.
enum:
- async
- sync
type: string
onParentComplete:
default: terminate
description: onParentComplete specifies
how subflow execution should behave
when parent workflow completes if
invoke is 'async'. Defaults to terminate.
enum:
- terminate
- continue
type: string
version:
description: Sub-workflow version
type: string
workflowId:
description: Sub-workflow unique id
type: string
required:
- workflowId
type: object
type: object
minItems: 1
type: array
name:
description: Branch name
type: string
timeouts:
description: Branch specific timeout settings
properties:
actionExecTimeout:
description: Single actions definition execution
timeout duration (ISO 8601 duration format)
type: string
branchExecTimeout:
description: Single branch execution timeout
duration (ISO 8601 duration format)
type: string
type: object
required:
- actions
- name
type: object
minItems: 1
type: array
completionType:
default: allOf
description: Option types on how to complete branch
execution. Defaults to `allOf`.
enum:
- allOf
- atLeast
type: string
numCompleted:
anyOf:
- type: integer
- type: string
description: 'Used when branchCompletionType is set
to atLeast to specify the least number of branches
that must complete in order for the state to transition/end.
TODO: change this field to unmarshal result as int'
x-kubernetes-int-or-string: true
timeouts:
description: State specific timeouts
properties:
branchExecTimeout:
description: Default single branch execution timeout
(ISO 8601 duration format)
type: string
stateExecTimeout:
description: Default workflow state execution timeout
(ISO 8601 duration format)
properties:
single:
description: Single state execution timeout,
not including retries (ISO 8601 duration format)
type: string
total:
description: Total state execution timeout,
including retries (ISO 8601 duration format)
type: string
required:
- total
type: object
type: object
required:
- branches
type: object
sleepState:
description: sleepState suspends workflow execution for
a given time duration.
properties:
duration:
description: Duration (ISO 8601 duration format) to
sleep
type: string
timeouts:
description: Timeouts State specific timeouts
properties:
stateExecTimeout:
description: Default workflow state execution timeout
(ISO 8601 duration format)
properties:
single:
description: Single state execution timeout,
not including retries (ISO 8601 duration format)
type: string
total:
description: Total state execution timeout,
including retries (ISO 8601 duration format)
type: string
required:
- total
type: object
type: object
required:
- duration
type: object
stateDataFilter:
description: State data filter.
properties:
input:
description: Workflow expression to filter the state
data input
type: string
output:
description: Workflow expression that filters the state
data output
type: string
type: object
switchState:
description: 'switchState is workflow''s gateways: direct
transitions onf a workflow based on certain conditions.'
properties:
dataConditions:
description: Defines conditions evaluated against data
items:
description: DataCondition specify a data-based condition
statement which causes a transition to another workflow
state if evaluated to true.
properties:
condition:
description: Workflow expression evaluated against
state data. Must evaluate to true or false.
type: string
end:
description: TODO End or Transition needs to be
exclusive tag, one or another should be set.
Explicit transition to end
properties:
compensate:
description: If set to true, triggers workflow
compensation before workflow execution completes.
Default is false.
type: boolean
continueAs:
description: Defines that current workflow
execution should stop, and execution should
continue as a new workflow instance of the
provided id
properties:
data:
description: If string type, an expression
which selects parts of the states data
output to become the workflow data input
of continued execution. If object type,
a custom object to become the workflow
data input of the continued execution
type: object
version:
description: Version of the workflow to
continue execution as.
type: string
workflowExecTimeout:
description: WorkflowExecTimeout Workflow
execution timeout to be used by the
workflow continuing execution. Overwrites
any specific settings set by that workflow
properties:
duration:
default: unlimited
description: Workflow execution timeout
duration (ISO 8601 duration format).
If not specified should be 'unlimited'.
type: string
interrupt:
description: If false, workflow instance
is allowed to finish current execution.
If true, current workflow execution
is stopped immediately. Default
is false.
type: boolean
runBefore:
description: Name of a workflow state
to be executed before workflow instance
is terminated.
type: string
required:
- duration
type: object
workflowId:
description: Unique id of the workflow
to continue execution as.
type: string
required:
- workflowId
type: object
produceEvents:
description: Array of producedEvent definitions.
Defines events that should be produced.
items:
description: ProduceEvent Defines the event
(CloudEvent format) to be produced when
workflow execution completes or during
a workflow transitions. The eventRef property
must match the name of one of the defined
produced events in the events definition.
properties:
contextAttributes:
additionalProperties:
type: string
description: Add additional event extension
context attributes.
type: object
data:
description: If String, expression which
selects parts of the states data output
to become the data of the produced
event. If object a custom object to
become the data of produced event.
type: object
eventRef:
description: Reference to a defined
unique event name in the events definition
type: string
required:
- eventRef
type: object
type: array
terminate:
description: If true, completes all execution
flows in the given workflow instance.
type: boolean
type: object
metadata:
additionalProperties:
type: object
description: Metadata information.
type: object
name:
description: Data condition name.
type: string
transition:
description: Workflow transition if condition
is evaluated to true
properties:
compensate:
default: false
description: If set to true, triggers workflow
compensation before this transition is taken.
Default is false.
type: boolean
nextState:
description: Name of the state to transition
to next.
type: string
produceEvents:
description: Array of producedEvent definitions.
Events to be produced before the transition
takes place.
items:
description: ProduceEvent Defines the event
(CloudEvent format) to be produced when
workflow execution completes or during
a workflow transitions. The eventRef property
must match the name of one of the defined
produced events in the events definition.
properties:
contextAttributes:
additionalProperties:
type: string
description: Add additional event extension
context attributes.
type: object
data:
description: If String, expression which
selects parts of the states data output
to become the data of the produced
event. If object a custom object to
become the data of produced event.
type: object
eventRef:
description: Reference to a defined
unique event name in the events definition
type: string
required:
- eventRef
type: object
type: array
required:
- nextState
type: object
required:
- condition
- end
type: object
type: array
defaultCondition:
description: Default transition of the workflow if there
is no matching data conditions. Can include a transition
or end definition.
properties:
end:
description: If this state an end state
x-kubernetes-preserve-unknown-fields: true
transition:
description: Serverless workflow states can have
one or more incoming and outgoing transitions
(from/to other states). Each state can define
a transition definition that is used to determine
which state to transition to next.
x-kubernetes-preserve-unknown-fields: true
type: object
eventConditions:
description: Defines conditions evaluated against events.
items:
description: EventCondition specify events which the
switch state must wait for.
properties:
end:
description: TODO End or Transition needs to be
exclusive tag, one or another should be set.
Explicit transition to end
x-kubernetes-preserve-unknown-fields: true
eventDataFilter:
description: Event data filter definition.
properties:
data:
description: Workflow expression that filters
of the event data (payload).
type: string
toStateData:
description: Workflow expression that selects
a state data element to which the action
results should be added/merged into. If
not specified denotes the top-level state
data element
type: string
useData:
description: If set to false, event payload
is not added/merged to state data. In this
case 'data' and 'toStateData' should be
ignored. Default is true.
type: boolean
type: object
eventRef:
description: References a unique event name in
the defined workflow events.
type: string
metadata:
description: Metadata information.
x-kubernetes-preserve-unknown-fields: true
name:
description: Event condition name.
type: string
transition:
description: Workflow transition if condition
is evaluated to true
x-kubernetes-preserve-unknown-fields: true
required:
- eventRef
type: object
type: array
timeouts:
description: SwitchState specific timeouts
properties:
eventTimeout:
description: 'Specify the expire value to transitions
to defaultCondition. When event-based conditions
do not arrive. NOTE: this is only available for
EventConditions'
type: string
stateExecTimeout:
description: Default workflow state execution timeout
(ISO 8601 duration format)
properties:
single:
description: Single state execution timeout,
not including retries (ISO 8601 duration format)
type: string
total:
description: Total state execution timeout,
including retries (ISO 8601 duration format)
type: string
required:
- total
type: object
type: object
required:
- defaultCondition
type: object
transition:
description: Next transition of the workflow after the time
delay.
x-kubernetes-preserve-unknown-fields: true
type:
description: stateType can be any of delay, callback, event,
foreach, inject, operation, parallel, sleep, switch
enum:
- delay
- callback
- event
- foreach
- inject
- operation
- parallel
- sleep
- switch
type: string
usedForCompensation:
description: If true, this state is used to compensate another
state. Default is false.
type: boolean
required:
- name
- type
type: object
minItems: 1
type: array
x-kubernetes-preserve-unknown-fields: true
timeouts:
description: Defines the workflow default timeout settings.
properties:
actionExecTimeout:
description: ActionExecTimeout Single actions definition execution
timeout duration (ISO 8601 duration format).
type: string
branchExecTimeout:
description: BranchExecTimeout Single branch execution timeout
duration (ISO 8601 duration format).
type: string
eventTimeout:
description: EventTimeout Timeout duration to wait for consuming
defined events (ISO 8601 duration format).
type: string
stateExecTimeout:
description: StateExecTimeout Total state execution timeout
(including retries) (ISO 8601 duration format).
properties:
single:
description: Single state execution timeout, not including
retries (ISO 8601 duration format)
type: string
total:
description: Total state execution timeout, including
retries (ISO 8601 duration format)
type: string
required:
- total
type: object
workflowExecTimeout:
description: WorkflowExecTimeout Workflow execution timeout
duration (ISO 8601 duration format). If not specified should
be 'unlimited'.
properties:
duration:
default: unlimited
description: Workflow execution timeout duration (ISO
8601 duration format). If not specified should be 'unlimited'.
type: string
interrupt:
description: If false, workflow instance is allowed to
finish current execution. If true, current workflow
execution is stopped immediately. Default is false.
type: boolean
runBefore:
description: Name of a workflow state to be executed before
workflow instance is terminated.
type: string
required:
- duration
type: object
type: object
version:
description: Workflow version.
type: string
required:
- specVersion
- states
type: object
required:
- flow
type: object
status:
description: KogitoServerlessWorkflowStatus defines the observed state
of KogitoServerlessWorkflow
properties:
address:
description: "Addressable provides a generic mechanism for a custom
resource definition to indicate a destination for message delivery.
\n Addressable is the schema for the destination information. This
is typically stored in the object's `status`, as this information
may be generated by the controller."
properties:
CACerts:
description: CACerts is the Certification Authority (CA) certificates
in PEM format according to https://www.rfc-editor.org/rfc/rfc7468.
type: string
name:
description: Name is the name of the address.
type: string
url:
type: string
type: object
conditions:
description: The latest available observations of a resource's current
state.
items:
description: Condition describes the common structure for conditions
in our types
properties:
lastUpdateTime:
description: The last time this condition was updated.
format: date-time
type: string
message:
description: A human-readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type condition for the given object
type: string
required:
- status
- type
type: object
type: array
endpoint:
type: string
observedGeneration:
description: The generation observed by the deployment controller.
format: int64
type: integer
recoverFailureAttempts:
description: keeps track of how many failure recovers a given workflow
had so far
type: integer
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: kogito-serverless-operator-controller-manager
namespace: kogito-serverless-operator-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: kogito-serverless-operator-leader-election-role
namespace: kogito-serverless-operator-system
rules:
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- ""
resources:
- events
verbs:
- create
- patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: kogito-serverless-operator-builder-manager-role
rules:
- apiGroups:
- ""
resources:
- configmaps
- pods
- pods/exec
- services
- services/finalizers
- namespaces
- serviceaccounts
- persistentvolumeclaims
- secrets
- events
- deployments
- nodes
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
- apiGroups:
- apps
resources:
- configmaps
- pods
- pods/exec
- services
- services/finalizers
- namespaces
- serviceaccounts
- persistentvolumeclaims
- secrets
- events
- deployments
- nodes
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
- apiGroups:
- rbac.authorization.k8s.io
resources:
- roles
- rolebindings
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: kogito-serverless-operator-leases
rules:
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
creationTimestamp: null
name: kogito-serverless-operator-manager-role
rules:
- apiGroups:
- sw.kogito.kie.org
resources:
- kogitoserverlessbuilds
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- sw.kogito.kie.org
resources:
- kogitoserverlessbuilds/finalizers
verbs:
- update
- apiGroups:
- sw.kogito.kie.org
resources:
- kogitoserverlessbuilds/status
verbs:
- get
- patch
- update
- apiGroups:
- sw.kogito.kie.org
resources:
- kogitoserverlessplatforms
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- sw.kogito.kie.org
resources:
- kogitoserverlessplatforms/finalizers
verbs:
- update
- apiGroups:
- sw.kogito.kie.org
resources:
- kogitoserverlessplatforms/status
verbs:
- get
- patch
- update
- apiGroups:
- sw.kogito.kie.org
resources:
- kogitoserverlessworkflows
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- sw.kogito.kie.org
resources:
- kogitoserverlessworkflows/finalizers
verbs:
- update
- apiGroups:
- sw.kogito.kie.org
resources:
- kogitoserverlessworkflows/status
verbs:
- get
- patch
- update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: kogito-serverless-operator-metrics-reader
rules:
- nonResourceURLs:
- /metrics
verbs:
- get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: kogito-serverless-operator-openshift-manager-role
rules:
- apiGroups:
- route.openshift.io
resources:
- route
- routes
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
- apiGroups:
- route.openshift.io
resources:
- route/finalizers
- routes/finalizers
verbs:
- get
- list
- create
- update
- delete
- deletecollection
- patch
- watch
- apiGroups:
- image.openshift.io
resources:
- imagestreams
- imagestreamtags
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
- apiGroups:
- image.openshift.io
resources:
- imagestreams/finalizers
- imagestreamtags/finalizers
verbs:
- get
- list
- create
- update
- delete
- deletecollection
- patch
- watch
- apiGroups:
- build.openshift.io
resources:
- buildconfigs
- builds
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
- apiGroups:
- build.openshift.io
resources:
- buildconfigs/finalizers
- builds/finalizers
verbs:
- get
- list
- create
- update
- delete
- deletecollection
- patch
- watch
- apiGroups:
- build.openshift.io
resources:
- buildconfigs/instantiatebinary
verbs:
- create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: kogito-serverless-operator-proxy-role
rules:
- apiGroups:
- authentication.k8s.io
resources:
- tokenreviews
verbs:
- create
- apiGroups:
- authorization.k8s.io
resources:
- subjectaccessreviews
verbs:
- create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: kogito-serverless-operator-leader-election-rolebinding
namespace: kogito-serverless-operator-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: kogito-serverless-operator-leader-election-role
subjects:
- kind: ServiceAccount
name: kogito-serverless-operator-controller-manager
namespace: kogito-serverless-operator-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kogito-serverless-operator-builder-manager-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kogito-serverless-operator-builder-manager-role
subjects:
- kind: ServiceAccount
name: kogito-serverless-operator-controller-manager
namespace: kogito-serverless-operator-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kogito-serverless-operator-leases-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kogito-serverless-operator-leases
subjects:
- kind: ServiceAccount
name: kogito-serverless-operator-controller-manager
namespace: kogito-serverless-operator-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kogito-serverless-operator-manager-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kogito-serverless-operator-manager-role
subjects:
- kind: ServiceAccount
name: kogito-serverless-operator-controller-manager
namespace: kogito-serverless-operator-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kogito-serverless-operator-openshift-manager-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kogito-serverless-operator-openshift-manager-role
subjects:
- kind: ServiceAccount
name: kogito-serverless-operator-controller-manager
namespace: kogito-serverless-operator-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kogito-serverless-operator-proxy-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kogito-serverless-operator-proxy-role
subjects:
- kind: ServiceAccount
name: kogito-serverless-operator-controller-manager
namespace: kogito-serverless-operator-system
---
apiVersion: v1
data:
DEFAULT_BUILDER_RESOURCE_NAME: Dockerfile
DEFAULT_WORKFLOW_EXTENSION: .sw.json
Dockerfile: "FROM quay.io/tradisso/kogito-swf-builder-nightly:test-arm AS builder\n
\ \n # Copy from build context to skeleton resources project\nCOPY * ./resources/\n\nRUN
/home/kogito/launch/build-app.sh ./resources\n \n #=============================\n
\ # Runtime Run\n #=============================\nFROM registry.access.redhat.com/ubi8/openjdk-11:latest\n\nENV
LANG='en_US.UTF-8' LANGUAGE='en_US:en'\n \n # We make four distinct layers so
if there are application changes the library layers can be re-used\nCOPY --from=builder
--chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/lib/ /deployments/lib/\nCOPY
--from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/*.jar
/deployments/\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/app/
/deployments/app/\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/quarkus/
/deployments/quarkus/\n\nEXPOSE 8080\nUSER 185\nENV AB_JOLOKIA_OFF=\"\"\nENV JAVA_OPTS=\"-Dquarkus.http.host=0.0.0.0
-Djava.util.logging.manager=org.jboss.logmanager.LogManager\"\nENV JAVA_APP_JAR=\"/deployments/quarkus-run.jar\"\n"
kind: ConfigMap
metadata:
name: kogito-serverless-operator-builder-config
namespace: kogito-serverless-operator-system
---
apiVersion: v1
data:
controller_manager_config.yaml: |
apiVersion: controller-runtime.sigs.k8s.io/v1alpha1
kind: ControllerManagerConfig
health:
healthProbeBindAddress: :8081
metrics:
bindAddress: 127.0.0.1:8080
webhook:
port: 9443
leaderElection:
leaderElect: true
resourceName: 1be5e57d.kiegroup.org
kind: ConfigMap
metadata:
name: kogito-serverless-operator-manager-config
namespace: kogito-serverless-operator-system
---
apiVersion: v1
kind: Service
metadata:
labels:
control-plane: controller-manager
name: kogito-serverless-operator-controller-manager-metrics-service
namespace: kogito-serverless-operator-system
spec:
ports:
- name: https
port: 8443
protocol: TCP
targetPort: https
selector:
control-plane: controller-manager
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
control-plane: controller-manager
name: kogito-serverless-operator-controller-manager
namespace: kogito-serverless-operator-system
spec:
replicas: 1
selector:
matchLabels:
control-plane: controller-manager
template:
metadata:
annotations:
kubectl.kubernetes.io/default-container: manager
labels:
control-plane: controller-manager
spec:
containers:
- args:
- --secure-listen-address=0.0.0.0:8443
- --upstream=http://127.0.0.1:8080/
- --logtostderr=true
- --v=0
image: gcr.io/kubebuilder/kube-rbac-proxy:v0.13.0
name: kube-rbac-proxy
ports:
- containerPort: 8443
name: https
protocol: TCP
resources:
limits:
cpu: 500m
memory: 128Mi
requests:
cpu: 5m
memory: 64Mi
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
seccompProfile:
type: RuntimeDefault
- args:
- --health-probe-bind-address=:8081
- --metrics-bind-address=127.0.0.1:8080
- --leader-elect
command:
- /usr/local/bin/manager
env:
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
image: quay.io/spolti/kogito-serverless-operator:2.0.0-snapshot
livenessProbe:
httpGet:
path: /healthz
port: 8081
initialDelaySeconds: 15
periodSeconds: 20
name: manager
readinessProbe:
httpGet:
path: /readyz
port: 8081
initialDelaySeconds: 5
periodSeconds: 10
resources:
limits:
cpu: 500m
memory: 128Mi
requests:
cpu: 10m
memory: 64Mi
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
serviceAccountName: kogito-serverless-operator-controller-manager
terminationGracePeriodSeconds: 10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment