blob: c45396a2239a8291040241cf316cf70e8a0426c0 [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 define the desired state of th SonataFlowBuild.
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: BuildPhase Current phase of the build
type: string
error:
description: Error Last error found during build
type: string
imageTag:
description: ImageTag 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: Build 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: DevMode 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 the workflow 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
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
podTemplate:
description: PodTemplate describes the deployment details of this
SonataFlow instance.
properties:
activeDeadlineSeconds:
description: Optional duration in seconds the pod may be active
on the node relative to StartTime before the system will actively
try to mark it failed and kill associated containers. Value
must be a positive integer.
format: int64
type: integer
affinity:
description: If specified, the pod's scheduling constraints
properties:
nodeAffinity:
description: Describes node affinity scheduling rules for
the pod.
properties:
preferredDuringSchedulingIgnoredDuringExecution:
description: The scheduler will prefer to schedule pods
to nodes that satisfy the affinity expressions specified
by this field, but it may choose a node that violates
one or more of the expressions. The node that is most
preferred is the one with the greatest sum of weights,
i.e. for each node that meets all of the scheduling
requirements (resource request, requiredDuringScheduling
affinity expressions, etc.), compute a sum by iterating
through the elements of this field and adding "weight"
to the sum if the node matches the corresponding matchExpressions;
the node(s) with the highest sum are the most preferred.
items:
description: An empty preferred scheduling term matches
all objects with implicit weight 0 (i.e. it's a no-op).
A null preferred scheduling term matches no objects
(i.e. is also a no-op).
properties:
preference:
description: A node selector term, associated with
the corresponding weight.
properties:
matchExpressions:
description: A list of node selector requirements
by node's labels.
items:
description: A node selector requirement is
a selector that contains values, a key,
and an operator that relates the key and
values.
properties:
key:
description: The label key that the selector
applies to.
type: string
operator:
description: Represents a key's relationship
to a set of values. Valid operators
are In, NotIn, Exists, DoesNotExist.
Gt, and Lt.
type: string
values:
description: An array of string values.
If the operator is In or NotIn, the
values array must be non-empty. If the
operator is Exists or DoesNotExist,
the values array must be empty. If the
operator is Gt or Lt, the values array
must have a single element, which will
be interpreted as an integer. This array
is replaced during a strategic merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchFields:
description: A list of node selector requirements
by node's fields.
items:
description: A node selector requirement is
a selector that contains values, a key,
and an operator that relates the key and
values.
properties:
key:
description: The label key that the selector
applies to.
type: string
operator:
description: Represents a key's relationship
to a set of values. Valid operators
are In, NotIn, Exists, DoesNotExist.
Gt, and Lt.
type: string
values:
description: An array of string values.
If the operator is In or NotIn, the
values array must be non-empty. If the
operator is Exists or DoesNotExist,
the values array must be empty. If the
operator is Gt or Lt, the values array
must have a single element, which will
be interpreted as an integer. This array
is replaced during a strategic merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
type: object
x-kubernetes-map-type: atomic
weight:
description: Weight associated with matching the
corresponding nodeSelectorTerm, in the range 1-100.
format: int32
type: integer
required:
- preference
- weight
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
description: If the affinity requirements specified by
this field are not met at scheduling time, the pod will
not be scheduled onto the node. If the affinity requirements
specified by this field cease to be met at some point
during pod execution (e.g. due to an update), the system
may or may not try to eventually evict the pod from
its node.
properties:
nodeSelectorTerms:
description: Required. A list of node selector terms.
The terms are ORed.
items:
description: A null or empty node selector term
matches no objects. The requirements of them are
ANDed. The TopologySelectorTerm type implements
a subset of the NodeSelectorTerm.
properties:
matchExpressions:
description: A list of node selector requirements
by node's labels.
items:
description: A node selector requirement is
a selector that contains values, a key,
and an operator that relates the key and
values.
properties:
key:
description: The label key that the selector
applies to.
type: string
operator:
description: Represents a key's relationship
to a set of values. Valid operators
are In, NotIn, Exists, DoesNotExist.
Gt, and Lt.
type: string
values:
description: An array of string values.
If the operator is In or NotIn, the
values array must be non-empty. If the
operator is Exists or DoesNotExist,
the values array must be empty. If the
operator is Gt or Lt, the values array
must have a single element, which will
be interpreted as an integer. This array
is replaced during a strategic merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchFields:
description: A list of node selector requirements
by node's fields.
items:
description: A node selector requirement is
a selector that contains values, a key,
and an operator that relates the key and
values.
properties:
key:
description: The label key that the selector
applies to.
type: string
operator:
description: Represents a key's relationship
to a set of values. Valid operators
are In, NotIn, Exists, DoesNotExist.
Gt, and Lt.
type: string
values:
description: An array of string values.
If the operator is In or NotIn, the
values array must be non-empty. If the
operator is Exists or DoesNotExist,
the values array must be empty. If the
operator is Gt or Lt, the values array
must have a single element, which will
be interpreted as an integer. This array
is replaced during a strategic merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
type: object
x-kubernetes-map-type: atomic
type: array
required:
- nodeSelectorTerms
type: object
x-kubernetes-map-type: atomic
type: object
podAffinity:
description: Describes pod affinity scheduling rules (e.g.
co-locate this pod in the same node, zone, etc. as some
other pod(s)).
properties:
preferredDuringSchedulingIgnoredDuringExecution:
description: The scheduler will prefer to schedule pods
to nodes that satisfy the affinity expressions specified
by this field, but it may choose a node that violates
one or more of the expressions. The node that is most
preferred is the one with the greatest sum of weights,
i.e. for each node that meets all of the scheduling
requirements (resource request, requiredDuringScheduling
affinity expressions, etc.), compute a sum by iterating
through the elements of this field and adding "weight"
to the sum if the node has pods which matches the corresponding
podAffinityTerm; the node(s) with the highest sum are
the most preferred.
items:
description: The weights of all of the matched WeightedPodAffinityTerm
fields are added per-node to find the most preferred
node(s)
properties:
podAffinityTerm:
description: Required. A pod affinity term, associated
with the corresponding weight.
properties:
labelSelector:
description: A label query over a set of resources,
in this case pods.
properties:
matchExpressions:
description: matchExpressions is a list
of label selector requirements. The requirements
are ANDed.
items:
description: A label selector requirement
is a selector that contains values,
a key, and an operator that relates
the key and values.
properties:
key:
description: key is the label key
that the selector applies to.
type: string
operator:
description: operator represents a
key's relationship to a set of values.
Valid operators are In, NotIn, Exists
and DoesNotExist.
type: string
values:
description: values is an array of
string values. If the operator is
In or NotIn, the values array must
be non-empty. If the operator is
Exists or DoesNotExist, the values
array must be empty. This array
is replaced during a strategic merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the operator
is "In", and the values array contains
only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
namespaceSelector:
description: A label query over the set of namespaces
that the term applies to. The term is applied
to the union of the namespaces selected by
this field and the ones listed in the namespaces
field. null selector and null or empty namespaces
list means "this pod's namespace". An empty
selector ({}) matches all namespaces.
properties:
matchExpressions:
description: matchExpressions is a list
of label selector requirements. The requirements
are ANDed.
items:
description: A label selector requirement
is a selector that contains values,
a key, and an operator that relates
the key and values.
properties:
key:
description: key is the label key
that the selector applies to.
type: string
operator:
description: operator represents a
key's relationship to a set of values.
Valid operators are In, NotIn, Exists
and DoesNotExist.
type: string
values:
description: values is an array of
string values. If the operator is
In or NotIn, the values array must
be non-empty. If the operator is
Exists or DoesNotExist, the values
array must be empty. This array
is replaced during a strategic merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the operator
is "In", and the values array contains
only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
namespaces:
description: namespaces specifies a static list
of namespace names that the term applies to.
The term is applied to the union of the namespaces
listed in this field and the ones selected
by namespaceSelector. null or empty namespaces
list and null namespaceSelector means "this
pod's namespace".
items:
type: string
type: array
topologyKey:
description: This pod should be co-located (affinity)
or not co-located (anti-affinity) with the
pods matching the labelSelector in the specified
namespaces, where co-located is defined as
running on a node whose value of the label
with key topologyKey matches that of any node
on which any of the selected pods is running.
Empty topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
weight:
description: weight associated with matching the
corresponding podAffinityTerm, in the range 1-100.
format: int32
type: integer
required:
- podAffinityTerm
- weight
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
description: If the affinity requirements specified by
this field are not met at scheduling time, the pod will
not be scheduled onto the node. If the affinity requirements
specified by this field cease to be met at some point
during pod execution (e.g. due to a pod label update),
the system may or may not try to eventually evict the
pod from its node. When there are multiple elements,
the lists of nodes corresponding to each podAffinityTerm
are intersected, i.e. all terms must be satisfied.
items:
description: Defines a set of pods (namely those matching
the labelSelector relative to the given namespace(s))
that this pod should be co-located (affinity) or not
co-located (anti-affinity) with, where co-located
is defined as running on a node whose value of the
label with key <topologyKey> matches that of any node
on which a pod of the set of pods is running
properties:
labelSelector:
description: A label query over a set of resources,
in this case pods.
properties:
matchExpressions:
description: matchExpressions is a list of label
selector requirements. The requirements are
ANDed.
items:
description: A label selector requirement
is a selector that contains values, a key,
and an operator that relates the key and
values.
properties:
key:
description: key is the label key that
the selector applies to.
type: string
operator:
description: operator represents a key's
relationship to a set of values. Valid
operators are In, NotIn, Exists and
DoesNotExist.
type: string
values:
description: values is an array of string
values. If the operator is In or NotIn,
the values array must be non-empty.
If the operator is Exists or DoesNotExist,
the values array must be empty. This
array is replaced during a strategic
merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the operator is
"In", and the values array contains only "value".
The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
namespaceSelector:
description: A label query over the set of namespaces
that the term applies to. The term is applied
to the union of the namespaces selected by this
field and the ones listed in the namespaces field.
null selector and null or empty namespaces list
means "this pod's namespace". An empty selector
({}) matches all namespaces.
properties:
matchExpressions:
description: matchExpressions is a list of label
selector requirements. The requirements are
ANDed.
items:
description: A label selector requirement
is a selector that contains values, a key,
and an operator that relates the key and
values.
properties:
key:
description: key is the label key that
the selector applies to.
type: string
operator:
description: operator represents a key's
relationship to a set of values. Valid
operators are In, NotIn, Exists and
DoesNotExist.
type: string
values:
description: values is an array of string
values. If the operator is In or NotIn,
the values array must be non-empty.
If the operator is Exists or DoesNotExist,
the values array must be empty. This
array is replaced during a strategic
merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the operator is
"In", and the values array contains only "value".
The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
namespaces:
description: namespaces specifies a static list
of namespace names that the term applies to. The
term is applied to the union of the namespaces
listed in this field and the ones selected by
namespaceSelector. null or empty namespaces list
and null namespaceSelector means "this pod's namespace".
items:
type: string
type: array
topologyKey:
description: This pod should be co-located (affinity)
or not co-located (anti-affinity) with the pods
matching the labelSelector in the specified namespaces,
where co-located is defined as running on a node
whose value of the label with key topologyKey
matches that of any node on which any of the selected
pods is running. Empty topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
type: array
type: object
podAntiAffinity:
description: Describes pod anti-affinity scheduling rules
(e.g. avoid putting this pod in the same node, zone, etc.
as some other pod(s)).
properties:
preferredDuringSchedulingIgnoredDuringExecution:
description: The scheduler will prefer to schedule pods
to nodes that satisfy the anti-affinity expressions
specified by this field, but it may choose a node that
violates one or more of the expressions. The node that
is most preferred is the one with the greatest sum of
weights, i.e. for each node that meets all of the scheduling
requirements (resource request, requiredDuringScheduling
anti-affinity expressions, etc.), compute a sum by iterating
through the elements of this field and adding "weight"
to the sum if the node has pods which matches the corresponding
podAffinityTerm; the node(s) with the highest sum are
the most preferred.
items:
description: The weights of all of the matched WeightedPodAffinityTerm
fields are added per-node to find the most preferred
node(s)
properties:
podAffinityTerm:
description: Required. A pod affinity term, associated
with the corresponding weight.
properties:
labelSelector:
description: A label query over a set of resources,
in this case pods.
properties:
matchExpressions:
description: matchExpressions is a list
of label selector requirements. The requirements
are ANDed.
items:
description: A label selector requirement
is a selector that contains values,
a key, and an operator that relates
the key and values.
properties:
key:
description: key is the label key
that the selector applies to.
type: string
operator:
description: operator represents a
key's relationship to a set of values.
Valid operators are In, NotIn, Exists
and DoesNotExist.
type: string
values:
description: values is an array of
string values. If the operator is
In or NotIn, the values array must
be non-empty. If the operator is
Exists or DoesNotExist, the values
array must be empty. This array
is replaced during a strategic merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the operator
is "In", and the values array contains
only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
namespaceSelector:
description: A label query over the set of namespaces
that the term applies to. The term is applied
to the union of the namespaces selected by
this field and the ones listed in the namespaces
field. null selector and null or empty namespaces
list means "this pod's namespace". An empty
selector ({}) matches all namespaces.
properties:
matchExpressions:
description: matchExpressions is a list
of label selector requirements. The requirements
are ANDed.
items:
description: A label selector requirement
is a selector that contains values,
a key, and an operator that relates
the key and values.
properties:
key:
description: key is the label key
that the selector applies to.
type: string
operator:
description: operator represents a
key's relationship to a set of values.
Valid operators are In, NotIn, Exists
and DoesNotExist.
type: string
values:
description: values is an array of
string values. If the operator is
In or NotIn, the values array must
be non-empty. If the operator is
Exists or DoesNotExist, the values
array must be empty. This array
is replaced during a strategic merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the operator
is "In", and the values array contains
only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
namespaces:
description: namespaces specifies a static list
of namespace names that the term applies to.
The term is applied to the union of the namespaces
listed in this field and the ones selected
by namespaceSelector. null or empty namespaces
list and null namespaceSelector means "this
pod's namespace".
items:
type: string
type: array
topologyKey:
description: This pod should be co-located (affinity)
or not co-located (anti-affinity) with the
pods matching the labelSelector in the specified
namespaces, where co-located is defined as
running on a node whose value of the label
with key topologyKey matches that of any node
on which any of the selected pods is running.
Empty topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
weight:
description: weight associated with matching the
corresponding podAffinityTerm, in the range 1-100.
format: int32
type: integer
required:
- podAffinityTerm
- weight
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
description: If the anti-affinity requirements specified
by this field are not met at scheduling time, the pod
will not be scheduled onto the node. If the anti-affinity
requirements specified by this field cease to be met
at some point during pod execution (e.g. due to a pod
label update), the system may or may not try to eventually
evict the pod from its node. When there are multiple
elements, the lists of nodes corresponding to each podAffinityTerm
are intersected, i.e. all terms must be satisfied.
items:
description: Defines a set of pods (namely those matching
the labelSelector relative to the given namespace(s))
that this pod should be co-located (affinity) or not
co-located (anti-affinity) with, where co-located
is defined as running on a node whose value of the
label with key <topologyKey> matches that of any node
on which a pod of the set of pods is running
properties:
labelSelector:
description: A label query over a set of resources,
in this case pods.
properties:
matchExpressions:
description: matchExpressions is a list of label
selector requirements. The requirements are
ANDed.
items:
description: A label selector requirement
is a selector that contains values, a key,
and an operator that relates the key and
values.
properties:
key:
description: key is the label key that
the selector applies to.
type: string
operator:
description: operator represents a key's
relationship to a set of values. Valid
operators are In, NotIn, Exists and
DoesNotExist.
type: string
values:
description: values is an array of string
values. If the operator is In or NotIn,
the values array must be non-empty.
If the operator is Exists or DoesNotExist,
the values array must be empty. This
array is replaced during a strategic
merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the operator is
"In", and the values array contains only "value".
The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
namespaceSelector:
description: A label query over the set of namespaces
that the term applies to. The term is applied
to the union of the namespaces selected by this
field and the ones listed in the namespaces field.
null selector and null or empty namespaces list
means "this pod's namespace". An empty selector
({}) matches all namespaces.
properties:
matchExpressions:
description: matchExpressions is a list of label
selector requirements. The requirements are
ANDed.
items:
description: A label selector requirement
is a selector that contains values, a key,
and an operator that relates the key and
values.
properties:
key:
description: key is the label key that
the selector applies to.
type: string
operator:
description: operator represents a key's
relationship to a set of values. Valid
operators are In, NotIn, Exists and
DoesNotExist.
type: string
values:
description: values is an array of string
values. If the operator is In or NotIn,
the values array must be non-empty.
If the operator is Exists or DoesNotExist,
the values array must be empty. This
array is replaced during a strategic
merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the operator is
"In", and the values array contains only "value".
The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
namespaces:
description: namespaces specifies a static list
of namespace names that the term applies to. The
term is applied to the union of the namespaces
listed in this field and the ones selected by
namespaceSelector. null or empty namespaces list
and null namespaceSelector means "this pod's namespace".
items:
type: string
type: array
topologyKey:
description: This pod should be co-located (affinity)
or not co-located (anti-affinity) with the pods
matching the labelSelector in the specified namespaces,
where co-located is defined as running on a node
whose value of the label with key topologyKey
matches that of any node on which any of the selected
pods is running. Empty topologyKey is not allowed.
type: string
required: