blob: 671a95023da9b775683ca52ad6f0fec5de39a72a [file] [log] [blame]
apiVersion: v1
kind: Namespace
metadata:
labels:
control-plane: controller-manager
name: sonataflow-operator-system
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.9.2
creationTimestamp: null
name: sonataflowbuilds.sonataflow.org
spec:
group: sonataflow.org
names:
kind: SonataFlowBuild
listKind: SonataFlowBuildList
plural: sonataflowbuilds
shortNames:
- sfb
- sfbuild
- sfbuilds
singular: sonataflowbuild
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.imageTag
name: Image
type: string
- jsonPath: .status.buildPhase
name: Phase
type: string
name: v1alpha08
schema:
openAPIV3Schema:
description: SonataFlowBuild is an internal custom resource to control workflow
build instances in the target platform
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: SonataFlowBuildSpec an abstraction over the actual build
process performed by the platform.
properties:
arguments:
description: 'Arguments lists the command line arguments to send to
the internal builder command. Depending on the build method you
might set this attribute instead of BuildArgs. For example: ".spec.arguments=verbose=3".
Please see the SonataFlow guides.'
items:
type: string
type: array
buildArgs:
description: Optional build arguments that can be set to the internal
build (e.g. Docker ARG)
items:
description: EnvVar represents an environment variable present in
a Container.
properties:
name:
description: Name of the environment variable. Must be a C_IDENTIFIER.
type: string
value:
description: 'Variable references $(VAR_NAME) are expanded using
the previously defined environment variables in the container
and any service environment variables. If a variable cannot
be resolved, the reference in the input string will be unchanged.
Double $$ are reduced to a single $, which allows for escaping
the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
string literal "$(VAR_NAME)". Escaped references will never
be expanded, regardless of whether the variable exists or
not. Defaults to "".'
type: string
valueFrom:
description: Source for the environment variable's value. Cannot
be used if value is not empty.
properties:
configMapKeyRef:
description: Selects a key of a ConfigMap.
properties:
key:
description: The key to select.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
optional:
description: Specify whether the ConfigMap or its key
must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
fieldRef:
description: 'Selects a field of the pod: supports metadata.name,
metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,
spec.nodeName, spec.serviceAccountName, status.hostIP,
status.podIP, status.podIPs.'
properties:
apiVersion:
description: Version of the schema the FieldPath is
written in terms of, defaults to "v1".
type: string
fieldPath:
description: Path of the field to select in the specified
API version.
type: string
required:
- fieldPath
type: object
x-kubernetes-map-type: atomic
resourceFieldRef:
description: 'Selects a resource of the container: only
resources limits and requests (limits.cpu, limits.memory,
limits.ephemeral-storage, requests.cpu, requests.memory
and requests.ephemeral-storage) are currently supported.'
properties:
containerName:
description: 'Container name: required for volumes,
optional for env vars'
type: string
divisor:
anyOf:
- type: integer
- type: string
description: Specifies the output format of the exposed
resources, defaults to "1"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
resource:
description: 'Required: resource to select'
type: string
required:
- resource
type: object
x-kubernetes-map-type: atomic
secretKeyRef:
description: Selects a key of a secret in the pod's namespace
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
optional:
description: Specify whether the Secret or its key must
be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
required:
- name
type: object
type: array
envs:
description: Optional environment variables to add to the internal
build
items:
description: EnvVar represents an environment variable present in
a Container.
properties:
name:
description: Name of the environment variable. Must be a C_IDENTIFIER.
type: string
value:
description: 'Variable references $(VAR_NAME) are expanded using
the previously defined environment variables in the container
and any service environment variables. If a variable cannot
be resolved, the reference in the input string will be unchanged.
Double $$ are reduced to a single $, which allows for escaping
the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
string literal "$(VAR_NAME)". Escaped references will never
be expanded, regardless of whether the variable exists or
not. Defaults to "".'
type: string
valueFrom:
description: Source for the environment variable's value. Cannot
be used if value is not empty.
properties:
configMapKeyRef:
description: Selects a key of a ConfigMap.
properties:
key:
description: The key to select.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
optional:
description: Specify whether the ConfigMap or its key
must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
fieldRef:
description: 'Selects a field of the pod: supports metadata.name,
metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,
spec.nodeName, spec.serviceAccountName, status.hostIP,
status.podIP, status.podIPs.'
properties:
apiVersion:
description: Version of the schema the FieldPath is
written in terms of, defaults to "v1".
type: string
fieldPath:
description: Path of the field to select in the specified
API version.
type: string
required:
- fieldPath
type: object
x-kubernetes-map-type: atomic
resourceFieldRef:
description: 'Selects a resource of the container: only
resources limits and requests (limits.cpu, limits.memory,
limits.ephemeral-storage, requests.cpu, requests.memory
and requests.ephemeral-storage) are currently supported.'
properties:
containerName:
description: 'Container name: required for volumes,
optional for env vars'
type: string
divisor:
anyOf:
- type: integer
- type: string
description: Specifies the output format of the exposed
resources, defaults to "1"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
resource:
description: 'Required: resource to select'
type: string
required:
- resource
type: object
x-kubernetes-map-type: atomic
secretKeyRef:
description: Selects a key of a secret in the pod's namespace
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
optional:
description: Specify whether the Secret or its key must
be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
required:
- name
type: object
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: SonataFlowBuildStatus defines the observed state of SonataFlowBuild
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: sonataflowplatforms.sonataflow.org
spec:
group: sonataflow.org
names:
kind: SonataFlowPlatform
listKind: SonataFlowPlatformList
plural: sonataflowplatforms
shortNames:
- sfp
- sfplatform
- sfplatforms
singular: sonataflowplatform
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.cluster
name: Cluster
type: string
- jsonPath: .status.conditions[?(@.type=='Succeed')].status
name: Ready
type: string
- jsonPath: .status.conditions[?(@.type=='Succeed')].reason
name: Reason
type: string
name: v1alpha08
schema:
openAPIV3Schema:
description: SonataFlowPlatform is the descriptor for the workflow platform
infrastructure.
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: SonataFlowPlatformSpec defines the desired state of SonataFlowPlatform
properties:
build:
description: Attributes for building workflows in the target platform
properties:
config:
description: Describes the platform configuration for building
workflows.
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
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
strategy:
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
strategyOptions:
additionalProperties:
type: string
description: BuildStrategyOptions additional options to add
to the build strategy. See https://sonataflow.org/serverlessworkflow/main/cloud/operator/build-and-deploy-workflows.html
type: object
timeout:
description: how much time to wait before time out the build
process
type: string
type: object
template:
description: Describes a build template for building workflows.
Base for the internal SonataFlowBuild resource.
properties:
arguments:
description: 'Arguments lists the command line arguments to
send to the internal builder command. Depending on the build
method you might set this attribute instead of BuildArgs.
For example: ".spec.arguments=verbose=3". Please see the
SonataFlow guides.'
items:
type: string
type: array
buildArgs:
description: Optional build arguments that can be set to the
internal build (e.g. Docker ARG)
items:
description: EnvVar represents an environment variable present
in a Container.
properties:
name:
description: Name of the environment variable. Must
be a C_IDENTIFIER.
type: string
value:
description: 'Variable references $(VAR_NAME) are expanded
using the previously defined environment variables
in the container and any service environment variables.
If a variable cannot be resolved, the reference in
the input string will be unchanged. Double $$ are
reduced to a single $, which allows for escaping the
$(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce
the string literal "$(VAR_NAME)". Escaped references
will never be expanded, regardless of whether the
variable exists or not. Defaults to "".'
type: string
valueFrom:
description: Source for the environment variable's value.
Cannot be used if value is not empty.
properties:
configMapKeyRef:
description: Selects a key of a ConfigMap.
properties:
key:
description: The key to select.
type: string
name:
description: 'Name of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion,
kind, uid?'
type: string
optional:
description: Specify whether the ConfigMap or
its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
fieldRef:
description: 'Selects a field of the pod: supports
metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`,
`metadata.annotations[''<KEY>'']`, spec.nodeName,
spec.serviceAccountName, status.hostIP, status.podIP,
status.podIPs.'
properties:
apiVersion:
description: Version of the schema the FieldPath
is written in terms of, defaults to "v1".
type: string
fieldPath:
description: Path of the field to select in
the specified API version.
type: string
required:
- fieldPath
type: object
x-kubernetes-map-type: atomic
resourceFieldRef:
description: 'Selects a resource of the container:
only resources limits and requests (limits.cpu,
limits.memory, limits.ephemeral-storage, requests.cpu,
requests.memory and requests.ephemeral-storage)
are currently supported.'
properties:
containerName:
description: 'Container name: required for volumes,
optional for env vars'
type: string
divisor:
anyOf:
- type: integer
- type: string
description: Specifies the output format of
the exposed resources, defaults to "1"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
resource:
description: 'Required: resource to select'
type: string
required:
- resource
type: object
x-kubernetes-map-type: atomic
secretKeyRef:
description: Selects a key of a secret in the pod's
namespace
properties:
key:
description: The key of the secret to select
from. Must be a valid secret key.
type: string
name:
description: 'Name of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion,
kind, uid?'
type: string
optional:
description: Specify whether the Secret or its
key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
required:
- name
type: object
type: array
envs:
description: Optional environment variables to add to the
internal build
items:
description: EnvVar represents an environment variable present
in a Container.
properties:
name:
description: Name of the environment variable. Must
be a C_IDENTIFIER.
type: string
value:
description: 'Variable references $(VAR_NAME) are expanded
using the previously defined environment variables
in the container and any service environment variables.
If a variable cannot be resolved, the reference in
the input string will be unchanged. Double $$ are
reduced to a single $, which allows for escaping the
$(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce
the string literal "$(VAR_NAME)". Escaped references
will never be expanded, regardless of whether the
variable exists or not. Defaults to "".'
type: string
valueFrom:
description: Source for the environment variable's value.
Cannot be used if value is not empty.
properties:
configMapKeyRef:
description: Selects a key of a ConfigMap.
properties:
key:
description: The key to select.
type: string
name:
description: 'Name of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion,
kind, uid?'
type: string
optional:
description: Specify whether the ConfigMap or
its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
fieldRef:
description: 'Selects a field of the pod: supports
metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`,
`metadata.annotations[''<KEY>'']`, spec.nodeName,
spec.serviceAccountName, status.hostIP, status.podIP,
status.podIPs.'
properties:
apiVersion:
description: Version of the schema the FieldPath
is written in terms of, defaults to "v1".
type: string
fieldPath:
description: Path of the field to select in
the specified API version.
type: string
required:
- fieldPath
type: object
x-kubernetes-map-type: atomic
resourceFieldRef:
description: 'Selects a resource of the container:
only resources limits and requests (limits.cpu,
limits.memory, limits.ephemeral-storage, requests.cpu,
requests.memory and requests.ephemeral-storage)
are currently supported.'
properties:
containerName:
description: 'Container name: required for volumes,
optional for env vars'
type: string
divisor:
anyOf:
- type: integer
- type: string
description: Specifies the output format of
the exposed resources, defaults to "1"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
resource:
description: 'Required: resource to select'
type: string
required:
- resource
type: object
x-kubernetes-map-type: atomic
secretKeyRef:
description: Selects a key of a secret in the pod's
namespace
properties:
key:
description: The key of the secret to select
from. Must be a valid secret key.
type: string
name:
description: 'Name of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion,
kind, uid?'
type: string
optional:
description: Specify whether the Secret or its
key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
required:
- name
type: object
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
type: object
devMode:
description: Attributes for running workflows in devmode (immutable,
no build required)
properties:
baseImage:
description: Base image to run the Workflow in dev mode instead
of the operator's default.
type: string
type: object
type: object
status:
description: SonataFlowPlatformStatus defines the observed state of SonataFlowPlatform
properties:
cluster:
description: Cluster what kind of cluster you're running (ie, plain
Kubernetes or OpenShift)
enum:
- kubernetes
- openshift
type: string
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
info:
additionalProperties:
type: string
description: Info generic information related to the build
type: object
observedGeneration:
description: The generation observed by the deployment controller.
format: int64
type: integer
version:
description: Version the 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: sonataflows.sonataflow.org
spec:
group: sonataflow.org
names:
kind: SonataFlow
listKind: SonataFlowList
plural: sonataflows
shortNames:
- sf
- workflow
- workflows
singular: sonataflow
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .metadata.annotations.sonataflow\.org\/profile
name: Profile
type: string
- jsonPath: .metadata.annotations.sonataflow\.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: SonataFlow is the descriptor representation for a workflow application
based on the CNCF Serverless Workflow specification.
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: SonataFlowSpec defines the desired state of SonataFlow
properties:
flow:
description: "Flow describes the contents of the Workflow definition
following the CNCF Serverless Workflow Specification. The attributes
not part of the flow are defined by the Custom Resource metadata
information, as follows: \n - Id, name, and key are replaced by
the Custom Resource's name. Must follow the Kubernetes naming patterns
(RFC1123). \n - Description can be added in the CR's annotation
field sonataflow.org/description \n - Version is also defined in
the CR's annotation, field sonataflow.org/version \n - SpecVersion
is in the CR's apiVersion, for example v1alpha08 means that it follows
the specification version 0.8."
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
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
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
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
metadata:
description: Metadata custom information shared with the runtime.
x-kubernetes-preserve-unknown-fields: true
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
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: 0
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: 0
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
required:
- states
type: object
resources:
description: Resources workflow resources that are linked to this
workflow definition. For example, a collection of OpenAPI specification
files.
properties:
configMaps:
items:
description: ConfigMapWorkflowResource ConfigMap local reference
holding one or more workflow resources, such as OpenAPI files
that will be mounted in the workflow application.
properties:
configMap:
description: ConfigMap the given configMap name in the same
workflow context to find the resource
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: object
x-kubernetes-map-type: atomic
workflowPath:
description: WorkflowPath path relative to the workflow
application root file system within the pod (/<application
path>/src/main/resources). Starting trailing slashes will
be removed.
type: string
required:
- configMap
type: object
type: array
type: object
required:
- flow
type: object
status:
description: SonataFlowStatus defines the observed state of SonataFlow
properties:
address:
description: Address is used as a part of Addressable interface (status.address.url)
for knative
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:
description: Endpoint is an externally accessible URL of the workflow
type: string
lastTimeRecoverAttempt:
format: date-time
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: sonataflow-operator-controller-manager
namespace: sonataflow-operator-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: sonataflow-operator-leader-election-role
namespace: sonataflow-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: sonataflow-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: sonataflow-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: sonataflow-operator-manager-role
rules:
- apiGroups:
- sonataflow.org
resources:
- sonataflowbuilds
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- sonataflow.org
resources:
- sonataflowbuilds/finalizers
verbs:
- update
- apiGroups:
- sonataflow.org
resources:
- sonataflowbuilds/status
verbs:
- get
- patch
- update
- apiGroups:
- sonataflow.org
resources:
- sonataflowplatforms
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- sonataflow.org
resources:
- sonataflowplatforms/finalizers
verbs:
- update
- apiGroups:
- sonataflow.org
resources:
- sonataflowplatforms/status
verbs:
- get
- patch
- update
- apiGroups:
- sonataflow.org
resources:
- sonataflows
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- sonataflow.org
resources:
- sonataflows/finalizers
verbs:
- update
- apiGroups:
- sonataflow.org
resources:
- sonataflows/status
verbs:
- get
- patch
- update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: sonataflow-operator-metrics-reader
rules:
- nonResourceURLs:
- /metrics
verbs:
- get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: sonataflow-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: sonataflow-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: sonataflow-operator-leader-election-rolebinding
namespace: sonataflow-operator-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: sonataflow-operator-leader-election-role
subjects:
- kind: ServiceAccount
name: sonataflow-operator-controller-manager
namespace: sonataflow-operator-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: sonataflow-operator-builder-manager-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: sonataflow-operator-builder-manager-role
subjects:
- kind: ServiceAccount
name: sonataflow-operator-controller-manager
namespace: sonataflow-operator-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: sonataflow-operator-leases-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: sonataflow-operator-leases
subjects:
- kind: ServiceAccount
name: sonataflow-operator-controller-manager
namespace: sonataflow-operator-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: sonataflow-operator-manager-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: sonataflow-operator-manager-role
subjects:
- kind: ServiceAccount
name: sonataflow-operator-controller-manager
namespace: sonataflow-operator-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: sonataflow-operator-openshift-manager-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: sonataflow-operator-openshift-manager-role
subjects:
- kind: ServiceAccount
name: sonataflow-operator-controller-manager
namespace: sonataflow-operator-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: sonataflow-operator-proxy-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: sonataflow-operator-proxy-role
subjects:
- kind: ServiceAccount
name: sonataflow-operator-controller-manager
namespace: sonataflow-operator-system
---
apiVersion: v1
data:
DEFAULT_BUILDER_RESOURCE_NAME: Dockerfile
DEFAULT_WORKFLOW_EXTENSION: .sw.json
Dockerfile: "FROM quay.io/kiegroup/kogito-swf-builder:1.44 AS builder\n\n# variables
that can be overridden by the builder\n# To add a Quarkus extension to your application\nARG
QUARKUS_EXTENSIONS\n# Args to pass to the Quarkus CLI add extension command\nARG
QUARKUS_ADD_EXTENSION_ARGS\n\n# Copy from build context to skeleton resources
project\nCOPY --chmod=644 * ./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: sonataflow-operator-builder-config
namespace: sonataflow-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: sonataflow-operator-manager-config
namespace: sonataflow-operator-system
---
apiVersion: v1
kind: Service
metadata:
labels:
control-plane: controller-manager
name: sonataflow-operator-controller-manager-metrics-service
namespace: sonataflow-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: sonataflow-operator-controller-manager
namespace: sonataflow-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
- --v=0
command:
- /usr/local/bin/manager
env:
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
image: quay.io/kiegroup/kogito-serverless-operator:1.44
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: sonataflow-operator-controller-manager
terminationGracePeriodSeconds: 10