v1alpha08

package
v0.0.0-...-69ab19c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 19, 2024 License: Apache-2.0 Imports: 19 Imported by: 3

Documentation

Overview

Package v1alpha08 contains API Schema definitions for the serverless v1alpha08 API group +kubebuilder:object:generate=true +groupName=sonataflow.org

Index

Constants

View Source
const (
	// SonataFlowClusterPlatformKind is the Kind name of the SonataFlowClusterPlatform CR
	SonataFlowClusterPlatformKind string = "SonataFlowClusterPlatform"
	PlatformNotFoundReason        string = "PlatformNotFound"
)
View Source
const (
	PlatformCreatingReason   = "Creating"
	PlatformWarmingReason    = "Warming"
	PlatformFailureReason    = "Failure"
	PlatformDuplicatedReason = "Duplicated"
)
View Source
const BuildRestartAnnotation = metadata.Domain + "/restartBuild"

BuildRestartAnnotation marks a SonataFlowBuild to restart

View Source
const DefaultContainerName = "workflow"
View Source
const (
	// SonataFlowPlatformKind is the Kind name of the SonataFlowPlatform CR
	SonataFlowPlatformKind string = "SonataFlowPlatform"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "sonataflow.org", Version: "v1alpha08"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource.

func ToCNCFWorkflow

func ToCNCFWorkflow(workflowCR *SonataFlow, context context.Context) (*cncfmodel.Workflow, error)

ToCNCFWorkflow converts a SonataFlow object to a Workflow one in order to be able to convert it to a YAML/Json

Types

type BuildPhase

type BuildPhase string
const (
	// BuildPhaseNone --
	BuildPhaseNone BuildPhase = ""
	// BuildPhaseInitialization --
	BuildPhaseInitialization BuildPhase = "Initialization"
	// BuildPhaseScheduling --
	BuildPhaseScheduling BuildPhase = "Scheduling"
	// BuildPhasePending --
	BuildPhasePending BuildPhase = "Pending"
	// BuildPhaseRunning --
	BuildPhaseRunning BuildPhase = "Running"
	// BuildPhaseSucceeded --
	BuildPhaseSucceeded BuildPhase = "Succeeded"
	// BuildPhaseFailed --
	BuildPhaseFailed BuildPhase = "Failed"
	// BuildPhaseInterrupted --
	BuildPhaseInterrupted BuildPhase = "Interrupted"
	// BuildPhaseError --
	BuildPhaseError BuildPhase = "Error"
)

type BuildPlatformConfig

type BuildPlatformConfig struct {
	// 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
	BaseImage string `json:"baseImage,omitempty"`
	// how much time to wait before time out the build process
	Timeout *metav1.Duration `json:"timeout,omitempty"`
	// 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.
	BuildStrategy BuildStrategy `json:"strategy,omitempty"`
	// BuildStrategyOptions additional options to add to the build strategy.
	// See https://sonataflow.org/serverlessworkflow/main/cloud/operator/build-and-deploy-workflows.html
	BuildStrategyOptions map[string]string `json:"strategyOptions,omitempty"`
	// Registry the registry where to publish the built image
	Registry RegistrySpec `json:"registry,omitempty"`
}

Describes the configuration for building in the given platform

func (*BuildPlatformConfig) DeepCopy

func (in *BuildPlatformConfig) DeepCopy() *BuildPlatformConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildPlatformConfig.

func (*BuildPlatformConfig) DeepCopyInto

func (in *BuildPlatformConfig) DeepCopyInto(out *BuildPlatformConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BuildPlatformConfig) GetTimeout

func (b *BuildPlatformConfig) GetTimeout() metav1.Duration

GetTimeout returns the specified duration or a default one

func (*BuildPlatformConfig) IsStrategyOptionEmpty

func (b *BuildPlatformConfig) IsStrategyOptionEmpty(option string) bool

func (*BuildPlatformConfig) IsStrategyOptionEnabled

func (b *BuildPlatformConfig) IsStrategyOptionEnabled(option string) bool

IsStrategyOptionEnabled return whether the BuildStrategyOptions is enabled or not

type BuildPlatformSpec

type BuildPlatformSpec struct {
	// Describes a build template for building workflows. Base for the internal SonataFlowBuild resource.
	Template BuildTemplate `json:"template,omitempty"`
	// Describes the platform configuration for building workflows.
	Config BuildPlatformConfig `json:"config,omitempty"`
}

Describes the general build specification for this platform. Specific for build scenarios.

func (*BuildPlatformSpec) DeepCopy

func (in *BuildPlatformSpec) DeepCopy() *BuildPlatformSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildPlatformSpec.

func (*BuildPlatformSpec) DeepCopyInto

func (in *BuildPlatformSpec) DeepCopyInto(out *BuildPlatformSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BuildStrategy

type BuildStrategy string
const (
	// OperatorBuildStrategy uses the operator builder to perform the workflow build
	// E.g. on Minikube or Kubernetes the container-builder strategies
	OperatorBuildStrategy BuildStrategy = "operator"
	// PlatformBuildStrategy uses the cluster to perform the build.
	// E.g. on OpenShift, BuildConfig.
	PlatformBuildStrategy BuildStrategy = "platform"
)

type BuildTemplate

type BuildTemplate struct {
	// 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.
	// +kubebuilder:validation:Format=duration
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Timeout"
	Timeout metav1.Duration `json:"timeout,omitempty"`
	// Resources optional compute resource requirements for the builder
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources"
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
	// 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.
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Arguments"
	Arguments []string `json:"arguments,omitempty"`
	// Optional build arguments that can be set to the internal build (e.g. Docker ARG)
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="BuildArgs"
	BuildArgs []corev1.EnvVar `json:"buildArgs,omitempty"`
	// Optional environment variables to add to the internal build
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Envs"
	Envs []corev1.EnvVar `json:"envs,omitempty"`
}

BuildTemplate an abstraction over the actual build process performed by the platform. +k8s:openapi-gen=true

func (*BuildTemplate) DeepCopy

func (in *BuildTemplate) DeepCopy() *BuildTemplate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildTemplate.

func (*BuildTemplate) DeepCopyInto

func (in *BuildTemplate) DeepCopyInto(out *BuildTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConfigMapWorkflowResource

type ConfigMapWorkflowResource struct {
	// ConfigMap the given configMap name in the same workflow context to find the resource
	// +kubebuilder:validation:Required
	ConfigMap corev1.LocalObjectReference `json:"configMap"`
	// WorkflowPath path relative to the workflow application root file system within the pod (/<application path>/src/main/resources).
	// Starting trailing slashes will be removed.
	WorkflowPath string `json:"workflowPath,omitempty"`
}

ConfigMapWorkflowResource ConfigMap local reference holding one or more workflow resources, such as OpenAPI files that will be mounted in the workflow application.

func (*ConfigMapWorkflowResource) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapWorkflowResource.

func (*ConfigMapWorkflowResource) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ContainerSpec

type ContainerSpec struct {
	// Container image name.
	// More info: https://kubernetes.io/docs/concepts/containers/images
	// This field is optional to allow higher level config management to default or override
	// container images in workload controllers like Deployments and StatefulSets.
	// +optional
	Image string `json:"image,omitempty" protobuf:"bytes,2,opt,name=image"`
	// Entrypoint array. Not executed within a shell.
	// The container image's ENTRYPOINT is used if this is not provided.
	// Variable references $(VAR_NAME) are expanded using the container's environment. 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. Cannot be updated.
	// More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
	// +optional
	Command []string `json:"command,omitempty" protobuf:"bytes,3,rep,name=command"`
	// Arguments to the entrypoint.
	// The container image's CMD is used if this is not provided.
	// Variable references $(VAR_NAME) are expanded using the container's environment. 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. Cannot be updated.
	// More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
	// +optional
	Args []string `json:"args,omitempty" protobuf:"bytes,4,rep,name=args"`
	// List of ports to expose from the container. Not specifying a port here
	// DOES NOT prevent that port from being exposed. Any port which is
	// listening on the default "0.0.0.0" address inside a container will be
	// accessible from the network.
	// Modifying this array with strategic merge patch may corrupt the data.
	// For more information See https://github.com/kubernetes/kubernetes/issues/108255.
	// Cannot be updated.
	// +optional
	// +patchMergeKey=containerPort
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=containerPort
	// +listMapKey=protocol
	Ports []corev1.ContainerPort `json:"ports,omitempty" patchStrategy:"merge" patchMergeKey:"containerPort" protobuf:"bytes,6,rep,name=ports"`
	// List of sources to populate environment variables in the container.
	// The keys defined within a source must be a C_IDENTIFIER. All invalid keys
	// will be reported as an event when the container is starting. When a key exists in multiple
	// sources, the value associated with the last source will take precedence.
	// Values defined by an Env with a duplicate key will take precedence.
	// Cannot be updated.
	// +optional
	EnvFrom []corev1.EnvFromSource `json:"envFrom,omitempty" protobuf:"bytes,19,rep,name=envFrom"`
	// List of environment variables to set in the container.
	// Cannot be updated.
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	Env []corev1.EnvVar `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,7,rep,name=env"`
	// Compute Resources required by this container.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty" protobuf:"bytes,8,opt,name=resources"`
	// Resources resize policy for the container.
	// +featureGate=InPlacePodVerticalScaling
	// +optional
	// +listType=atomic
	ResizePolicy []corev1.ContainerResizePolicy `json:"resizePolicy,omitempty" protobuf:"bytes,23,rep,name=resizePolicy"`
	// Pod volumes to mount into the container's filesystem.
	// Cannot be updated.
	// +optional
	// +patchMergeKey=mountPath
	// +patchStrategy=merge
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty" patchStrategy:"merge" patchMergeKey:"mountPath" protobuf:"bytes,9,rep,name=volumeMounts"`
	// volumeDevices is the list of block devices to be used by the container.
	// +patchMergeKey=devicePath
	// +patchStrategy=merge
	// +optional
	VolumeDevices []corev1.VolumeDevice `json:"volumeDevices,omitempty" patchStrategy:"merge" patchMergeKey:"devicePath" protobuf:"bytes,21,rep,name=volumeDevices"`
	// Periodic probe of container liveness.
	// Container will be restarted if the probe fails.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty" protobuf:"bytes,10,opt,name=livenessProbe"`
	// Periodic probe of container service readiness.
	// Container will be removed from service endpoints if the probe fails.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty" protobuf:"bytes,11,opt,name=readinessProbe"`
	// StartupProbe indicates that the Pod has successfully initialized.
	// If specified, no other probes are executed until this completes successfully.
	// If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.
	// This can be used to provide different probe parameters at the beginning of a Pod's lifecycle,
	// when it might take a long time to load data or warm a cache, than during steady-state operation.
	// This cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	StartupProbe *corev1.Probe `json:"startupProbe,omitempty" protobuf:"bytes,22,opt,name=startupProbe"`
	// Actions that the management system should take in response to container lifecycle events.
	// Cannot be updated.
	// +optional
	Lifecycle *corev1.Lifecycle `json:"lifecycle,omitempty" protobuf:"bytes,12,opt,name=lifecycle"`
	// Optional: Path at which the file to which the container's termination message
	// will be written is mounted into the container's filesystem.
	// Message written is intended to be brief final status, such as an assertion failure message.
	// Will be truncated by the node if greater than 4096 bytes. The total message length across
	// all containers will be limited to 12kb.
	// Defaults to /dev/termination-log.
	// Cannot be updated.
	// +optional
	TerminationMessagePath string `json:"terminationMessagePath,omitempty" protobuf:"bytes,13,opt,name=terminationMessagePath"`
	// Indicate how the termination message should be populated. File will use the contents of
	// terminationMessagePath to populate the container status message on both success and failure.
	// FallbackToLogsOnError will use the last chunk of container log output if the termination
	// message file is empty and the container exited with an error.
	// The log output is limited to 2048 bytes or 80 lines, whichever is smaller.
	// Defaults to File.
	// Cannot be updated.
	// +optional
	TerminationMessagePolicy corev1.TerminationMessagePolicy `` /* 129-byte string literal not displayed */
	// Image pull policy.
	// One of Always, Never, IfNotPresent.
	// Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
	// +optional
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty" protobuf:"bytes,14,opt,name=imagePullPolicy,casttype=PullPolicy"`
	// SecurityContext defines the security options the container should be run with.
	// If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
	// More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
	// +optional
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty" protobuf:"bytes,15,opt,name=securityContext"`

	// Whether this container should allocate a buffer for stdin in the container runtime. If this
	// is not set, reads from stdin in the container will always result in EOF.
	// Default is false.
	// +optional
	Stdin bool `json:"stdin,omitempty" protobuf:"varint,16,opt,name=stdin"`
	// Whether the container runtime should close the stdin channel after it has been opened by
	// a single attach. When stdin is true the stdin stream will remain open across multiple attach
	// sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the
	// first client attaches to stdin, and then remains open and accepts data until the client disconnects,
	// at which time stdin is closed and remains closed until the container is restarted. If this
	// flag is false, a container processes that reads from stdin will never receive an EOF.
	// Default is false
	// +optional
	StdinOnce bool `json:"stdinOnce,omitempty" protobuf:"varint,17,opt,name=stdinOnce"`
	// Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.
	// Default is false.
	// +optional
	TTY bool `json:"tty,omitempty" protobuf:"varint,18,opt,name=tty"`
}

ContainerSpec is the container for the internal deployments based on the default Kubernetes Container API

func (*ContainerSpec) DeepCopy

func (in *ContainerSpec) DeepCopy() *ContainerSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerSpec.

func (*ContainerSpec) DeepCopyInto

func (in *ContainerSpec) DeepCopyInto(out *ContainerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ContainerSpec) ToContainer

func (f *ContainerSpec) ToContainer() corev1.Container

ToContainer converts to Kubernetes Container API.

type DevModePlatformSpec

type DevModePlatformSpec struct {
	// Base image to run the Workflow in dev mode instead of the operator's default.
	BaseImage string `json:"baseImage,omitempty"`
}

DevModePlatformSpec describes the devmode configuration for the given platform.

func (*DevModePlatformSpec) DeepCopy

func (in *DevModePlatformSpec) DeepCopy() *DevModePlatformSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DevModePlatformSpec.

func (*DevModePlatformSpec) DeepCopyInto

func (in *DevModePlatformSpec) DeepCopyInto(out *DevModePlatformSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Flow

type Flow struct {
	// Workflow start definition.
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	Start *cncfmodel.Start `json:"start,omitempty"`
	// Annotations List of helpful terms describing the workflows intended purpose, subject areas, or other important
	// qualities.
	// +optional
	Annotations []string `json:"annotations,omitempty"`
	// DataInputSchema URI of the JSON Schema used to validate the workflow data input
	// +optional
	DataInputSchema *cncfmodel.DataInputSchema `json:"dataInputSchema,omitempty"`
	// Secrets allow you to access sensitive information, such as passwords, OAuth tokens, ssh keys, etc,
	// inside your Workflow Expressions.
	// +optional
	Secrets cncfmodel.Secrets `json:"secrets,omitempty"`
	// Constants Workflow constants are used to define static, and immutable, data which is available to
	// Workflow Expressions.
	// +optional
	Constants *cncfmodel.Constants `json:"constants,omitempty"`
	// Defines the workflow default timeout settings.
	// +optional
	Timeouts *cncfmodel.Timeouts `json:"timeouts,omitempty"`
	// Defines checked errors that can be explicitly handled during workflow execution.
	// +optional
	Errors cncfmodel.Errors `json:"errors,omitempty"`
	// 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"
	// +optional
	KeepActive bool `json:"keepActive,omitempty"`
	// Metadata custom information shared with the runtime.
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	Metadata cncfmodel.Metadata `json:"metadata,omitempty"`
	// AutoRetries If set to true, actions should automatically be retried on unchecked errors. Default is false
	// +optional
	AutoRetries bool `json:"autoRetries,omitempty"`
	// 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.
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	Auth cncfmodel.Auths `json:"auth,omitempty" validate:"omitempty"`
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:pruning:PreserveUnknownFields
	States []cncfmodel.State `json:"states" validate:"required,min=1,dive"`
	// +optional
	Events cncfmodel.Events `json:"events,omitempty"`
	// +optional
	Functions cncfmodel.Functions `json:"functions,omitempty"`
	// +optional
	Retries cncfmodel.Retries `json:"retries,omitempty" validate:"dive"`
}

Flow describes the contents of the Workflow definition following the CNCF Serverless Workflow Specification. The attributes not part of the flow are defined by the Custom Resource metadata information, as follows:

- Id, name, and key are replaced by the Custom Resource's name. Must follow the Kubernetes naming patterns (RFC1123).

- Description can be added in the CR's annotation field sonataflow.org/description

- Version is also defined in the CR's annotation, field sonataflow.org/version

- SpecVersion is in the CR's apiVersion, for example v1alpha08 means that it follows the specification version 0.8.

func (*Flow) DeepCopy

func (in *Flow) DeepCopy() *Flow

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Flow.

func (*Flow) DeepCopyInto

func (in *Flow) DeepCopyInto(out *Flow)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PersistenceOptionsSpec

type PersistenceOptionsSpec struct {
	// Connect configured services to a postgresql database.
	// +optional
	PostgreSQL *PersistencePostgreSQL `json:"postgresql,omitempty"`
}

PersistenceOptionsSpec configures the DataBase support for both platform services and workflows. For services, it allows configuring a generic database connectivity if the service does not come with its own configured. In case of workflows, the operator will add the necessary JDBC properties to in the workflow's application.properties so that it can communicate with the persistence service based on the spec provided here. +optional +kubebuilder:validation:MaxProperties=1

func (*PersistenceOptionsSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistenceOptionsSpec.

func (*PersistenceOptionsSpec) DeepCopyInto

func (in *PersistenceOptionsSpec) DeepCopyInto(out *PersistenceOptionsSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PersistencePostgreSQL

type PersistencePostgreSQL struct {
	// Secret reference to the database user credentials
	SecretRef PostgreSQLSecretOptions `json:"secretRef"`
	// Service reference to postgresql datasource. Mutually exclusive to jdbcUrl.
	// +optional
	ServiceRef *PostgreSQLServiceOptions `json:"serviceRef,omitempty"`
	// PostgreSql JDBC URL. Mutually exclusive to serviceRef.
	// e.g. "jdbc:postgresql://host:port/database?currentSchema=data-index-service"
	// +optional
	JdbcUrl string `json:"jdbcUrl,omitempty"`
}

PersistencePostgreSQL configure postgresql connection for service(s). +kubebuilder:validation:MinProperties=2 +kubebuilder:validation:MaxProperties=2

func (*PersistencePostgreSQL) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistencePostgreSQL.

func (*PersistencePostgreSQL) DeepCopyInto

func (in *PersistencePostgreSQL) DeepCopyInto(out *PersistencePostgreSQL)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PlatformCluster

type PlatformCluster string

PlatformCluster is the kind of orchestration cluster the platform is installed into +kubebuilder:validation:Enum=kubernetes;openshift

const (
	// PlatformClusterOpenShift is used when targeting an OpenShift cluster
	PlatformClusterOpenShift PlatformCluster = "openshift"
	// PlatformClusterKubernetes is used when targeting a Kubernetes cluster
	PlatformClusterKubernetes PlatformCluster = "kubernetes"
)

type PlatformPersistenceOptionsSpec

type PlatformPersistenceOptionsSpec struct {
	// Connect configured services to a postgresql database.
	// +optional
	PostgreSQL *PlatformPersistencePostgreSQL `json:"postgresql,omitempty"`
}

PlatformPersistenceOptionsSpec configures the DataBase in the platform spec. This specification can be used by workflows and platform services when they don't provide one of their own. +optional +kubebuilder:validation:MaxProperties=1

func (*PlatformPersistenceOptionsSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlatformPersistenceOptionsSpec.

func (*PlatformPersistenceOptionsSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PlatformPersistencePostgreSQL

type PlatformPersistencePostgreSQL struct {
	// Secret reference to the database user credentials
	SecretRef PostgreSQLSecretOptions `json:"secretRef"`
	// Service reference to postgresql datasource. Mutually exclusive to jdbcUrl.
	// +optional
	ServiceRef *SQLServiceOptions `json:"serviceRef,omitempty"`
	// PostgreSql JDBC URL. Mutually exclusive to serviceRef.
	// e.g. "jdbc:postgresql://host:port/database?currentSchema=data-index-service"
	// +optional
	JdbcUrl string `json:"jdbcUrl,omitempty"`
}

PlatformPersistencePostgreSQL configure postgresql connection in a platform to be shared by platform services and workflows when required. +kubebuilder:validation:MinProperties=2 +kubebuilder:validation:MaxProperties=2

func (*PlatformPersistencePostgreSQL) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlatformPersistencePostgreSQL.

func (*PlatformPersistencePostgreSQL) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PlatformServiceRefStatus

type PlatformServiceRefStatus struct {
	// Url displays the base url of the service
	Url string `json:"url,omitempty"`
}

PlatformServiceRefStatus displays information on a cluster-wide service +k8s:openapi-gen=true

func (*PlatformServiceRefStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlatformServiceRefStatus.

func (*PlatformServiceRefStatus) DeepCopyInto

func (in *PlatformServiceRefStatus) DeepCopyInto(out *PlatformServiceRefStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PlatformServicesStatus

type PlatformServicesStatus struct {
	// DataIndexRef displays information on the cluster-wide Data Index service
	DataIndexRef *PlatformServiceRefStatus `json:"dataIndexRef,omitempty"`
	// JobServiceRef displays information on the cluster-wide Job Service
	JobServiceRef *PlatformServiceRefStatus `json:"jobServiceRef,omitempty"`
}

PlatformServicesStatus displays which cluster-wide services are being used by a SonataFlowPlatform +k8s:openapi-gen=true

func (*PlatformServicesStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlatformServicesStatus.

func (*PlatformServicesStatus) DeepCopyInto

func (in *PlatformServicesStatus) DeepCopyInto(out *PlatformServicesStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PodSpec

type PodSpec struct {
	// List of volumes that can be mounted by containers belonging to the pod.
	// More info: https://kubernetes.io/docs/concepts/storage/volumes
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge,retainKeys
	Volumes []corev1.Volume `json:"volumes,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"name" protobuf:"bytes,1,rep,name=volumes"`
	// List of initialization containers belonging to the pod.
	// Init containers are executed in order prior to containers being started. If any
	// init container fails, the pod is considered to have failed and is handled according
	// to its restartPolicy. The name for an init container or normal container must be
	// unique among all containers.
	// Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.
	// The resourceRequirements of an init container are taken into account during scheduling
	// by finding the highest request/limit for each resource type, and then using the max of
	// of that value or the sum of the normal containers. Limits are applied to init containers
	// in a similar fashion.
	// Init containers cannot currently be added or removed.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
	// +patchMergeKey=name
	// +patchStrategy=merge
	InitContainers []corev1.Container `json:"initContainers,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,20,rep,name=initContainers"`
	// List of containers belonging to the pod.
	// Containers cannot currently be added or removed.
	// There must be at least one container in a Pod.
	// Cannot be updated.
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	Containers []corev1.Container `json:"containers,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=containers"`
	// Restart policy for all containers within the pod.
	// One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted.
	// Default to Always.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
	// +optional
	RestartPolicy corev1.RestartPolicy `json:"restartPolicy,omitempty" protobuf:"bytes,3,opt,name=restartPolicy,casttype=RestartPolicy"`
	// Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.
	// Value must be non-negative integer. The value zero indicates stop immediately via
	// the kill signal (no opportunity to shut down).
	// If this value is nil, the default grace period will be used instead.
	// The grace period is the duration in seconds after the processes running in the pod are sent
	// a termination signal and the time when the processes are forcibly halted with a kill signal.
	// Set this value longer than the expected cleanup time for your process.
	// Defaults to 30 seconds.
	// +optional
	TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty" protobuf:"varint,4,opt,name=terminationGracePeriodSeconds"`
	// 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.
	// +optional
	ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty" protobuf:"varint,5,opt,name=activeDeadlineSeconds"`
	// Set DNS policy for the pod.
	// Defaults to "ClusterFirst".
	// Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
	// DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
	// To have DNS options set along with hostNetwork, you have to specify DNS policy
	// explicitly to 'ClusterFirstWithHostNet'.
	// +optional
	DNSPolicy corev1.DNSPolicy `json:"dnsPolicy,omitempty" protobuf:"bytes,6,opt,name=dnsPolicy,casttype=DNSPolicy"`
	// NodeSelector is a selector which must be true for the pod to fit on a node.
	// Selector which must match a node's labels for the pod to be scheduled on that node.
	// More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
	// +optional
	// +mapType=atomic
	NodeSelector map[string]string `json:"nodeSelector,omitempty" protobuf:"bytes,7,rep,name=nodeSelector"`

	// ServiceAccountName is the name of the ServiceAccount to use to run this pod.
	// More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty" protobuf:"bytes,8,opt,name=serviceAccountName"`
	// AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.
	// +optional
	AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty" protobuf:"varint,21,opt,name=automountServiceAccountToken"`

	// NodeName is a request to schedule this pod onto a specific node. If it is non-empty,
	// the scheduler simply schedules this pod onto that node, assuming that it fits resource
	// requirements.
	// +optional
	NodeName string `json:"nodeName,omitempty" protobuf:"bytes,10,opt,name=nodeName"`
	// Host networking requested for this pod. Use the host's network namespace.
	// If this option is set, the ports that will be used must be specified.
	// Default to false.
	// +k8s:conversion-gen=false
	// +optional
	HostNetwork bool `json:"hostNetwork,omitempty" protobuf:"varint,11,opt,name=hostNetwork"`
	// Use the host's pid namespace.
	// Optional: Default to false.
	// +k8s:conversion-gen=false
	// +optional
	HostPID bool `json:"hostPID,omitempty" protobuf:"varint,12,opt,name=hostPID"`
	// Use the host's ipc namespace.
	// Optional: Default to false.
	// +k8s:conversion-gen=false
	// +optional
	HostIPC bool `json:"hostIPC,omitempty" protobuf:"varint,13,opt,name=hostIPC"`
	// Share a single process namespace between all of the containers in a pod.
	// When this is set containers will be able to view and signal processes from other containers
	// in the same pod, and the first process in each container will not be assigned PID 1.
	// HostPID and ShareProcessNamespace cannot both be set.
	// Optional: Default to false.
	// +k8s:conversion-gen=false
	// +optional
	ShareProcessNamespace *bool `json:"shareProcessNamespace,omitempty" protobuf:"varint,27,opt,name=shareProcessNamespace"`
	// SecurityContext holds pod-level security attributes and common container settings.
	// Optional: Defaults to empty.  See type description for default values of each field.
	// +optional
	SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty" protobuf:"bytes,14,opt,name=securityContext"`
	// ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
	// If specified, these secrets will be passed to individual puller implementations for them to use.
	// More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,15,rep,name=imagePullSecrets"`
	// Specifies the hostname of the Pod
	// If not specified, the pod's hostname will be set to a system-defined value.
	// +optional
	Hostname string `json:"hostname,omitempty" protobuf:"bytes,16,opt,name=hostname"`
	// If specified, the fully qualified Pod hostname will be "<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>".
	// If not specified, the pod will not have a domainname at all.
	// +optional
	Subdomain string `json:"subdomain,omitempty" protobuf:"bytes,17,opt,name=subdomain"`
	// If specified, the pod's scheduling constraints
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty" protobuf:"bytes,18,opt,name=affinity"`
	// If specified, the pod will be dispatched by specified scheduler.
	// If not specified, the pod will be dispatched by default scheduler.
	// +optional
	SchedulerName string `json:"schedulerName,omitempty" protobuf:"bytes,19,opt,name=schedulerName"`
	// If specified, the pod's tolerations.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty" protobuf:"bytes,22,opt,name=tolerations"`
	// HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
	// file if specified. This is only valid for non-hostNetwork pods.
	// +optional
	// +patchMergeKey=ip
	// +patchStrategy=merge
	HostAliases []corev1.HostAlias `json:"hostAliases,omitempty" patchStrategy:"merge" patchMergeKey:"ip" protobuf:"bytes,23,rep,name=hostAliases"`
	// If specified, indicates the pod's priority. "system-node-critical" and
	// "system-cluster-critical" are two special keywords which indicate the
	// highest priorities with the former being the highest priority. Any other
	// name must be defined by creating a PriorityClass object with that name.
	// If not specified, the pod priority will be default or zero if there is no
	// default.
	// +optional
	PriorityClassName string `json:"priorityClassName,omitempty" protobuf:"bytes,24,opt,name=priorityClassName"`
	// The priority value. Various system components use this field to find the
	// priority of the pod. When Priority Admission Controller is enabled, it
	// prevents users from setting this field. The admission controller populates
	// this field from PriorityClassName.
	// The higher the value, the higher the priority.
	// +optional
	Priority *int32 `json:"priority,omitempty" protobuf:"bytes,25,opt,name=priority"`
	// Specifies the DNS parameters of a pod.
	// Parameters specified here will be merged to the generated DNS
	// configuration based on DNSPolicy.
	// +optional
	DNSConfig *corev1.PodDNSConfig `json:"dnsConfig,omitempty" protobuf:"bytes,26,opt,name=dnsConfig"`
	// If specified, all readiness gates will be evaluated for pod readiness.
	// A pod is ready when all its containers are ready AND
	// all conditions specified in the readiness gates have status equal to "True"
	// More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates
	// +optional
	ReadinessGates []corev1.PodReadinessGate `json:"readinessGates,omitempty" protobuf:"bytes,28,opt,name=readinessGates"`
	// RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used
	// to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run.
	// If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an
	// empty definition that uses the default runtime handler.
	// More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
	// +optional
	RuntimeClassName *string `json:"runtimeClassName,omitempty" protobuf:"bytes,29,opt,name=runtimeClassName"`
	// EnableServiceLinks indicates whether information about services should be injected into pod's
	// environment variables, matching the syntax of Docker links.
	// Optional: Defaults to true.
	// +optional
	EnableServiceLinks *bool `json:"enableServiceLinks,omitempty" protobuf:"varint,30,opt,name=enableServiceLinks"`
	// PreemptionPolicy is the Policy for preempting pods with lower priority.
	// One of Never, PreemptLowerPriority.
	// Defaults to PreemptLowerPriority if unset.
	// +optional
	PreemptionPolicy *corev1.PreemptionPolicy `json:"preemptionPolicy,omitempty" protobuf:"bytes,31,opt,name=preemptionPolicy"`
	// Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.
	// This field will be autopopulated at admission time by the RuntimeClass admission controller. If
	// the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests.
	// The RuntimeClass admission controller will reject Pod create requests which have the overhead already
	// set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value
	// defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero.
	// More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md
	// +optional
	Overhead corev1.ResourceList `json:"overhead,omitempty" protobuf:"bytes,32,opt,name=overhead"`
	// TopologySpreadConstraints describes how a group of pods ought to spread across topology
	// domains. Scheduler will schedule pods in a way which abides by the constraints.
	// All topologySpreadConstraints are ANDed.
	// +optional
	// +patchMergeKey=topologyKey
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=topologyKey
	// +listMapKey=whenUnsatisfiable
	TopologySpreadConstraints []corev1.TopologySpreadConstraint `` /* 147-byte string literal not displayed */
	// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).
	// In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).
	// In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN.
	// If a pod does not have FQDN, this has no effect.
	// Default to false.
	// +optional
	SetHostnameAsFQDN *bool `json:"setHostnameAsFQDN,omitempty" protobuf:"varint,35,opt,name=setHostnameAsFQDN"`
	// Specifies the OS of the containers in the pod.
	// Some pod and container fields are restricted if this is set.
	//
	// If the OS field is set to linux, the following fields must be unset:
	// -securityContext.windowsOptions
	//
	// If the OS field is set to windows, following fields must be unset:
	// - spec.hostPID
	// - spec.hostIPC
	// - spec.hostUsers
	// - spec.securityContext.seLinuxOptions
	// - spec.securityContext.seccompProfile
	// - spec.securityContext.fsGroup
	// - spec.securityContext.fsGroupChangePolicy
	// - spec.securityContext.sysctls
	// - spec.shareProcessNamespace
	// - spec.securityContext.runAsUser
	// - spec.securityContext.runAsGroup
	// - spec.securityContext.supplementalGroups
	// - spec.containers[*].securityContext.seLinuxOptions
	// - spec.containers[*].securityContext.seccompProfile
	// - spec.containers[*].securityContext.capabilities
	// - spec.containers[*].securityContext.readOnlyRootFilesystem
	// - spec.containers[*].securityContext.privileged
	// - spec.containers[*].securityContext.allowPrivilegeEscalation
	// - spec.containers[*].securityContext.procMount
	// - spec.containers[*].securityContext.runAsUser
	// - spec.containers[*].securityContext.runAsGroup
	// +optional
	OS *corev1.PodOS `json:"os,omitempty" protobuf:"bytes,36,opt,name=os"`

	// Use the host's user namespace.
	// Optional: Default to true.
	// If set to true or not present, the pod will be run in the host user namespace, useful
	// for when the pod needs a feature only available to the host user namespace, such as
	// loading a kernel module with CAP_SYS_MODULE.
	// When set to false, a new userns is created for the pod. Setting false is useful for
	// mitigating container breakout vulnerabilities even allowing users to run their
	// containers as root without actually having root privileges on the host.
	// This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.
	// +k8s:conversion-gen=false
	// +optional
	HostUsers *bool `json:"hostUsers,omitempty" protobuf:"bytes,37,opt,name=hostUsers"`

	// SchedulingGates is an opaque list of values that if specified will block scheduling the pod.
	// If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the
	// scheduler will not attempt to schedule the pod.
	//
	// SchedulingGates can only be set at pod creation time, and be removed only afterwards.
	//
	// This is a beta feature enabled by the PodSchedulingReadiness feature gate.
	//
	// +patchMergeKey=name
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=name
	// +featureGate=PodSchedulingReadiness
	// +optional
	SchedulingGates []corev1.PodSchedulingGate `json:"schedulingGates,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,38,opt,name=schedulingGates"`
	// ResourceClaims defines which ResourceClaims must be allocated
	// and reserved before the Pod is allowed to start. The resources
	// will be made available to those containers which consume them
	// by name.
	//
	// This is an alpha field and requires enabling the
	// DynamicResourceAllocation feature gate.
	//
	// This field is immutable.
	//
	// +patchMergeKey=name
	// +patchStrategy=merge,retainKeys
	// +listType=map
	// +listMapKey=name
	// +featureGate=DynamicResourceAllocation
	// +optional
	ResourceClaims []corev1.PodResourceClaim `` /* 129-byte string literal not displayed */
}

PodSpec describes the PodSpec for the internal deployments based on the default Kubernetes PodSpec API

func (*PodSpec) DeepCopy

func (in *PodSpec) DeepCopy() *PodSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSpec.

func (*PodSpec) DeepCopyInto

func (in *PodSpec) DeepCopyInto(out *PodSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PodSpec) ToPodSpec

func (f *PodSpec) ToPodSpec() corev1.PodSpec

type PodTemplateSpec

type PodTemplateSpec struct {
	// Container is the Kubernetes container where the application should run.
	// One can change this attribute in order to override the defaults provided by the operator.
	// +optional
	Container ContainerSpec `json:"container,omitempty"`
	// +optional
	PodSpec `json:",inline"`
	// +optional
	Replicas *int32 `json:"replicas,omitempty"`
}

PodTemplateSpec describes the desired custom Kubernetes PodTemplate definition for the deployed flow or service.

The ContainerSpec describes the container where the actual flow or service is running. It will override any default definitions. For example, to override the image one can use `.spec.podTemplate.container.image = my/image:tag`.

func (*PodTemplateSpec) DeepCopy

func (in *PodTemplateSpec) DeepCopy() *PodTemplateSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplateSpec.

func (*PodTemplateSpec) DeepCopyInto

func (in *PodTemplateSpec) DeepCopyInto(out *PodTemplateSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PostgreSQLSecretOptions

type PostgreSQLSecretOptions struct {
	// Name of the postgresql credentials secret.
	Name string `json:"name"`
	// Defaults to POSTGRESQL_USER
	// +optional
	UserKey string `json:"userKey,omitempty"`
	// Defaults to POSTGRESQL_PASSWORD
	// +optional
	PasswordKey string `json:"passwordKey,omitempty"`
}

PostgreSQLSecretOptions use credential secret for postgresql connection.

func (*PostgreSQLSecretOptions) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgreSQLSecretOptions.

func (*PostgreSQLSecretOptions) DeepCopyInto

func (in *PostgreSQLSecretOptions) DeepCopyInto(out *PostgreSQLSecretOptions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PostgreSQLServiceOptions

type PostgreSQLServiceOptions struct {
	*SQLServiceOptions `json:",inline"`
	// Schema of postgresql database to be used. Defaults to "data-index-service"
	// +optional
	DatabaseSchema string `json:"databaseSchema,omitempty"`
}

PostgreSQLServiceOptions use k8s service to configure postgresql jdbc url.

func (*PostgreSQLServiceOptions) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgreSQLServiceOptions.

func (*PostgreSQLServiceOptions) DeepCopyInto

func (in *PostgreSQLServiceOptions) DeepCopyInto(out *PostgreSQLServiceOptions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PropertyPlatformSpec

type PropertyPlatformSpec struct {
	// Properties that will be added to the SonataFlow managed configMaps in the current context.
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	Flow []PropertyVar `json:"flow,omitempty" patchStrategy:"merge" patchMergeKey:"name"`
}

PropertyPlatformSpec defines the struct for global managed properties in the SonataFlowPlatform. These properties are ignored in the SonataFlowClusterPlatform since a source of a property (PropertyVarSource) can only be local.

func (*PropertyPlatformSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PropertyPlatformSpec.

func (*PropertyPlatformSpec) DeepCopyInto

func (in *PropertyPlatformSpec) DeepCopyInto(out *PropertyPlatformSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PropertyVar

type PropertyVar struct {
	// The property name
	Name string `json:"name"`

	// Defaults to "".
	// +optional
	Value string `json:"value,omitempty"`
	// Source for the property's value. Cannot be used if value is not empty.
	// +optional
	ValueFrom *PropertyVarSource `json:"valueFrom,omitempty"`
}

PropertyVar is the entry for a property set derived from the Kubernetes API EnvVar. Note that the name doesn't have to match C_IDENTIFIER.

func (*PropertyVar) DeepCopy

func (in *PropertyVar) DeepCopy() *PropertyVar

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PropertyVar.

func (*PropertyVar) DeepCopyInto

func (in *PropertyVar) DeepCopyInto(out *PropertyVar)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PropertyVarSource

type PropertyVarSource struct {
	// Selects a key of a ConfigMap.
	// +optional
	ConfigMapKeyRef *v1.ConfigMapKeySelector `json:"configMapKeyRef,omitempty"`
	// Selects a key of a secret in the flow's namespace
	// +optional
	SecretKeyRef *v1.SecretKeySelector `json:"secretKeyRef,omitempty"`
}

PropertyVarSource is the definition of a property source derived from the Kubernetes API EnvVarSource.

func (*PropertyVarSource) DeepCopy

func (in *PropertyVarSource) DeepCopy() *PropertyVarSource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PropertyVarSource.

func (*PropertyVarSource) DeepCopyInto

func (in *PropertyVarSource) DeepCopyInto(out *PropertyVarSource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RegistrySpec

type RegistrySpec struct {
	// if the container registry is insecure (ie, http only)
	Insecure bool `json:"insecure,omitempty"`
	// the URI to access
	Address string `json:"address,omitempty"`
	// the secret where credentials are stored
	Secret string `json:"secret,omitempty"`
	// the configmap which stores the Certificate Authority
	CA string `json:"ca,omitempty"`
	// the registry organization
	Organization string `json:"organization,omitempty"`
}

RegistrySpec provides the configuration for the container registry

func (*RegistrySpec) DeepCopy

func (in *RegistrySpec) DeepCopy() *RegistrySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistrySpec.

func (*RegistrySpec) DeepCopyInto

func (in *RegistrySpec) DeepCopyInto(out *RegistrySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SQLServiceOptions

type SQLServiceOptions struct {
	// Name of the postgresql k8s service.
	Name string `json:"name"`
	// Namespace of the postgresql k8s service. Defaults to the SonataFlowPlatform's local namespace.
	// +optional
	Namespace string `json:"namespace,omitempty"`
	// Port to use when connecting to the postgresql k8s service. Defaults to 5432.
	// +optional
	Port *int `json:"port,omitempty"`
	// Name of postgresql database to be used. Defaults to "sonataflow"
	// +optional
	DatabaseName string `json:"databaseName,omitempty"`
}

func (*SQLServiceOptions) DeepCopy

func (in *SQLServiceOptions) DeepCopy() *SQLServiceOptions

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SQLServiceOptions.

func (*SQLServiceOptions) DeepCopyInto

func (in *SQLServiceOptions) DeepCopyInto(out *SQLServiceOptions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceSpec

type ServiceSpec struct {
	// Determines whether workflows without the `sonataflow.org/profile: dev` annotation should be configured to use this service
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
	// Persists service to a datasource of choice. Ephemeral by default.
	// +optional
	Persistence *PersistenceOptionsSpec `json:"persistence,omitempty"`
	// PodTemplate describes the deployment details of this platform service instance.
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="podTemplate"
	PodTemplate PodTemplateSpec `json:"podTemplate,omitempty"`
}

ServiceSpec defines the desired state of a platform service +k8s:openapi-gen=true

func (*ServiceSpec) DeepCopy

func (in *ServiceSpec) DeepCopy() *ServiceSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSpec.

func (*ServiceSpec) DeepCopyInto

func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServicesPlatformSpec

type ServicesPlatformSpec struct {
	// Deploys the Data Index service for use by workflows without the `sonataflow.org/profile: dev` annotation.
	// +optional
	DataIndex *ServiceSpec `json:"dataIndex,omitempty"`
	// Deploys the Job service for use by workflows without the `sonataflow.org/profile: dev` annotation.
	// +optional
	JobService *ServiceSpec `json:"jobService,omitempty"`
}

ServicesPlatformSpec describes the desired service configuration for workflows without the `sonataflow.org/profile: dev` annotation.

func (*ServicesPlatformSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServicesPlatformSpec.

func (*ServicesPlatformSpec) DeepCopyInto

func (in *ServicesPlatformSpec) DeepCopyInto(out *ServicesPlatformSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SonataFlow

type SonataFlow struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   SonataFlowSpec   `json:"spec,omitempty"`
	Status SonataFlowStatus `json:"status,omitempty"`
}

SonataFlow is the descriptor representation for a workflow application based on the CNCF Serverless Workflow specification. +kubebuilder:object:root=true +kubebuilder:object:generate=true +kubebuilder:subresource:status +kubebuilder:resource:shortName={"sf", "workflow", "workflows"} +k8s:openapi-gen=true +kubebuilder:printcolumn:name="Profile",type=string,JSONPath=`.metadata.annotations.sonataflow\.org\/profile` +kubebuilder:printcolumn:name="Version",type=string,JSONPath=`.metadata.annotations.sonataflow\.org\/version` +kubebuilder:printcolumn:name="URL",type=string,JSONPath=`.status.endpoint` +kubebuilder:printcolumn:name="Ready",type=string,JSONPath=`.status.conditions[?(@.type=='Running')].status` +kubebuilder:printcolumn:name="Reason",type=string,JSONPath=`.status.conditions[?(@.type=='Running')].reason` +operator-sdk:csv:customresourcedefinitions:resources={{SonataFlowBuild,sonataflow.org/v1alpha08,"A SonataFlow Build"}} +operator-sdk:csv:customresourcedefinitions:resources={{Deployment,apps/v1,"A Deployment for the Flow"}} +operator-sdk:csv:customresourcedefinitions:resources={{Service,v1,"A Service for the Flow"}} +operator-sdk:csv:customresourcedefinitions:resources={{Route,route.openshift.io/v1,"An OpenShift Route for the Flow"}} +operator-sdk:csv:customresourcedefinitions:resources={{ConfigMap,v1,"The ConfigMaps with Flow definition and additional configuration files"}}

func FromCNCFWorkflow

func FromCNCFWorkflow(cncfWorkflow *cncfmodel.Workflow, context context.Context) (*SonataFlow, error)

FromCNCFWorkflow converts the given CNCF Serverless Workflow instance in a new SonataFlow Custom Resource.

func (*SonataFlow) DeepCopy

func (in *SonataFlow) DeepCopy() *SonataFlow

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SonataFlow.

func (*SonataFlow) DeepCopyInto

func (in *SonataFlow) DeepCopyInto(out *SonataFlow)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SonataFlow) DeepCopyObject

func (in *SonataFlow) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*SonataFlow) HasContainerSpecImage

func (s *SonataFlow) HasContainerSpecImage() bool

type SonataFlowBuild

type SonataFlowBuild struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   SonataFlowBuildSpec   `json:"spec,omitempty"`
	Status SonataFlowBuildStatus `json:"status,omitempty"`
}

SonataFlowBuild is an internal custom resource to control workflow build instances in the target platform +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:object:generate=true +kubebuilder:subresource:status +k8s:openapi-gen=true +kubebuilder:printcolumn:name="Image",type=string,JSONPath=`.status.imageTag` +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.buildPhase` +kubebuilder:resource:shortName={"sfb", "sfbuild", "sfbuilds"} +operator-sdk:csv:customresourcedefinitions:resources={{BuildConfig,build.openshift.io/v1,"An Openshift Build Config"}}

func (*SonataFlowBuild) DeepCopy

func (in *SonataFlowBuild) DeepCopy() *SonataFlowBuild

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SonataFlowBuild.

func (*SonataFlowBuild) DeepCopyInto

func (in *SonataFlowBuild) DeepCopyInto(out *SonataFlowBuild)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SonataFlowBuild) DeepCopyObject

func (in *SonataFlowBuild) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SonataFlowBuildList

type SonataFlowBuildList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SonataFlowBuild `json:"items"`
}

SonataFlowBuildList is the Schema for the sonataflowbuildsList API +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:object:generate=true

func (*SonataFlowBuildList) DeepCopy

func (in *SonataFlowBuildList) DeepCopy() *SonataFlowBuildList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SonataFlowBuildList.

func (*SonataFlowBuildList) DeepCopyInto

func (in *SonataFlowBuildList) DeepCopyInto(out *SonataFlowBuildList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SonataFlowBuildList) DeepCopyObject

func (in *SonataFlowBuildList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SonataFlowBuildSpec

type SonataFlowBuildSpec struct {
	BuildTemplate `json:",inline"`
}

SonataFlowBuildSpec define the desired state of th SonataFlowBuild. +k8s:openapi-gen=true

func (*SonataFlowBuildSpec) DeepCopy

func (in *SonataFlowBuildSpec) DeepCopy() *SonataFlowBuildSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SonataFlowBuildSpec.

func (*SonataFlowBuildSpec) DeepCopyInto

func (in *SonataFlowBuildSpec) DeepCopyInto(out *SonataFlowBuildSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SonataFlowBuildStatus

type SonataFlowBuildStatus struct {
	// ImageTag The final image tag produced by this build instance
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="ImageTag"
	ImageTag string `json:"imageTag,omitempty"`
	// BuildPhase Current phase of the build
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="BuildPhase"
	BuildPhase BuildPhase `json:"buildPhase,omitempty"`
	// Error Last error found during build
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="Error"
	Error string `json:"error,omitempty"`
	// InnerBuild is a reference to an internal build object, which can be anything known only to internal builders.
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="InnerBuild"
	InnerBuild runtime.RawExtension `json:"innerBuild,omitempty" patchStrategy:"replace"`
}

SonataFlowBuildStatus defines the observed state of SonataFlowBuild +k8s:openapi-gen=true

func (*SonataFlowBuildStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SonataFlowBuildStatus.

func (*SonataFlowBuildStatus) DeepCopyInto

func (in *SonataFlowBuildStatus) DeepCopyInto(out *SonataFlowBuildStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SonataFlowBuildStatus) GetInnerBuild

func (k *SonataFlowBuildStatus) GetInnerBuild(innerBuild interface{}) error

GetInnerBuild fetch into the given inner build the value from unstructured.

func (*SonataFlowBuildStatus) SetInnerBuild

func (k *SonataFlowBuildStatus) SetInnerBuild(innerBuilder interface{}) error

SetInnerBuild use to define a new object pointer to the inner build.

type SonataFlowClusterPlatform

type SonataFlowClusterPlatform struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   SonataFlowClusterPlatformSpec   `json:"spec,omitempty"`
	Status SonataFlowClusterPlatformStatus `json:"status,omitempty"`
}

SonataFlowClusterPlatform is the Schema for the sonataflowclusterplatforms API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster +kubebuilder:printcolumn:name="Platform_Name",type=string,JSONPath=`.spec.platformRef.name` +kubebuilder:printcolumn:name="Platform_NS",type=string,JSONPath=`.spec.platformRef.namespace` +kubebuilder:printcolumn:name="Ready",type=string,JSONPath=`.status.conditions[?(@.type=='Succeed')].status` +kubebuilder:printcolumn:name="Reason",type=string,JSONPath=`.status.conditions[?(@.type=='Succeed')].reason` +operator-sdk:csv:customresourcedefinitions:resources={{SonataFlowPlatform,sonataflow.org/v1alpha08,"A SonataFlow Platform"}}

func (*SonataFlowClusterPlatform) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SonataFlowClusterPlatform.

func (*SonataFlowClusterPlatform) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SonataFlowClusterPlatform) DeepCopyObject

func (in *SonataFlowClusterPlatform) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SonataFlowClusterPlatformCapSpec

type SonataFlowClusterPlatformCapSpec struct {
	// Workflows defines which platform capabilities should be applied to workflows cluster-wide.
	Workflows []WorkFlowCapability `json:"workflows,omitempty"`
}

SonataFlowClusterPlatformCapSpec defines which platform capabilities should be applied cluster-wide

func (*SonataFlowClusterPlatformCapSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SonataFlowClusterPlatformCapSpec.

func (*SonataFlowClusterPlatformCapSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SonataFlowClusterPlatformList

type SonataFlowClusterPlatformList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SonataFlowClusterPlatform `json:"items"`
}

SonataFlowClusterPlatformList contains a list of SonataFlowClusterPlatform

func NewSonataFlowClusterPlatformList

func NewSonataFlowClusterPlatformList() SonataFlowClusterPlatformList

NewSonataFlowClusterPlatformList returns an empty list of ClusterPlatform objects

func (*SonataFlowClusterPlatformList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SonataFlowClusterPlatformList.

func (*SonataFlowClusterPlatformList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SonataFlowClusterPlatformList) DeepCopyObject

func (in *SonataFlowClusterPlatformList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SonataFlowClusterPlatformRefStatus

type SonataFlowClusterPlatformRefStatus struct {
	// Name of the active SonataFlowClusterPlatform
	Name string `json:"name,omitempty"`
	// PlatformRef displays which SonataFlowPlatform has been referenced by the active SonataFlowClusterPlatform
	PlatformRef SonataFlowPlatformRef `json:"platformRef,omitempty"`
	// Services displays which cluster-wide services are being used by this SonataFlowPlatform
	Services *PlatformServicesStatus `json:"services,omitempty"`
}

SonataFlowClusterPlatformRefStatus information related to the (optional) active SonataFlowClusterPlatform +k8s:openapi-gen=true

func (*SonataFlowClusterPlatformRefStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SonataFlowClusterPlatformRefStatus.

func (*SonataFlowClusterPlatformRefStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SonataFlowClusterPlatformSpec

type SonataFlowClusterPlatformSpec struct {
	// PlatformRef defines which existing SonataFlowPlatform's supporting services should be used cluster-wide.
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="PlatformRef"
	PlatformRef SonataFlowPlatformRef `json:"platformRef"`
	// Capabilities defines which platform capabilities should be applied cluster-wide. If nil, defaults to `capabilities.workflows["services"]`
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Capabilities"
	Capabilities *SonataFlowClusterPlatformCapSpec `json:"capabilities,omitempty"`
}

SonataFlowClusterPlatformSpec defines the desired state of SonataFlowClusterPlatform

func (*SonataFlowClusterPlatformSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SonataFlowClusterPlatformSpec.

func (*SonataFlowClusterPlatformSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SonataFlowClusterPlatformStatus

type SonataFlowClusterPlatformStatus struct {
	api.Status `json:",inline"`
	// Version the operator version controlling this ClusterPlatform
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="version"
	Version string `json:"version,omitempty"`
}

SonataFlowClusterPlatformStatus defines the observed state of SonataFlowClusterPlatform

func (*SonataFlowClusterPlatformStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SonataFlowClusterPlatformStatus.

func (*SonataFlowClusterPlatformStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SonataFlowClusterPlatformStatus) GetTopLevelCondition

func (in *SonataFlowClusterPlatformStatus) GetTopLevelCondition() *api.Condition

func (*SonataFlowClusterPlatformStatus) GetTopLevelConditionType

func (in *SonataFlowClusterPlatformStatus) GetTopLevelConditionType() api.ConditionType

func (*SonataFlowClusterPlatformStatus) IsDuplicated

func (in *SonataFlowClusterPlatformStatus) IsDuplicated() bool

func (*SonataFlowClusterPlatformStatus) IsReady

func (in *SonataFlowClusterPlatformStatus) IsReady() bool

func (*SonataFlowClusterPlatformStatus) Manager

type SonataFlowList

type SonataFlowList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SonataFlow `json:"items"`
}

SonataFlowList contains a list of SonataFlow +kubebuilder:object:root=true +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*SonataFlowList) DeepCopy

func (in *SonataFlowList) DeepCopy() *SonataFlowList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SonataFlowList.

func (*SonataFlowList) DeepCopyInto

func (in *SonataFlowList) DeepCopyInto(out *SonataFlowList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SonataFlowList) DeepCopyObject

func (in *SonataFlowList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SonataFlowPlatform

type SonataFlowPlatform struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   SonataFlowPlatformSpec   `json:"spec,omitempty"`
	Status SonataFlowPlatformStatus `json:"status,omitempty"`
}

SonataFlowPlatform is the descriptor for the workflow platform infrastructure. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:object:generate=true +kubebuilder:subresource:status +kubebuilder:resource:shortName={"sfp", "sfplatform", "sfplatforms"} +kubebuilder:printcolumn:name="Cluster",type=string,JSONPath=`.status.cluster` +kubebuilder:printcolumn:name="Ready",type=string,JSONPath=`.status.conditions[?(@.type=='Succeed')].status` +kubebuilder:printcolumn:name="Reason",type=string,JSONPath=`.status.conditions[?(@.type=='Succeed')].reason` +operator-sdk:csv:customresourcedefinitions:resources={{Namespace,v1,"The Namespace controlled by the platform"}}

func (*SonataFlowPlatform) DeepCopy

func (in *SonataFlowPlatform) DeepCopy() *SonataFlowPlatform

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SonataFlowPlatform.

func (*SonataFlowPlatform) DeepCopyInto

func (in *SonataFlowPlatform) DeepCopyInto(out *SonataFlowPlatform)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SonataFlowPlatform) DeepCopyObject

func (in *SonataFlowPlatform) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SonataFlowPlatformList

type SonataFlowPlatformList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SonataFlowPlatform `json:"items"`
}

SonataFlowPlatformList contains a list of SonataFlowPlatform +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:object:generate=true

func NewSonataFlowPlatformList

func NewSonataFlowPlatformList() SonataFlowPlatformList

NewSonataFlowPlatformList returns an empty list of Platform objects

func (*SonataFlowPlatformList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SonataFlowPlatformList.

func (*SonataFlowPlatformList) DeepCopyInto

func (in *SonataFlowPlatformList) DeepCopyInto(out *SonataFlowPlatformList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SonataFlowPlatformList) DeepCopyObject

func (in *SonataFlowPlatformList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SonataFlowPlatformRef

type SonataFlowPlatformRef struct {
	// Name of the SonataFlowPlatform
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Platform_Name"
	Name string `json:"name"`
	// Namespace of the SonataFlowPlatform
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Platform_NS"
	Namespace string `json:"namespace"`
}

SonataFlowPlatformRef defines which existing SonataFlowPlatform's supporting services should be used cluster-wide.

func (*SonataFlowPlatformRef) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SonataFlowPlatformRef.

func (*SonataFlowPlatformRef) DeepCopyInto

func (in *SonataFlowPlatformRef) DeepCopyInto(out *SonataFlowPlatformRef)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SonataFlowPlatformSpec

type SonataFlowPlatformSpec struct {
	// Build Attributes for building workflows in the target platform
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Build"
	Build BuildPlatformSpec `json:"build,omitempty"`
	// DevMode Attributes for running workflows in devmode (immutable, no build required)
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="DevMode"
	DevMode DevModePlatformSpec `json:"devMode,omitempty"`
	// Services attributes for deploying supporting applications like Data Index & Job Service.
	// Only workflows without the `sonataflow.org/profile: dev` annotation will be configured to use these service(s).
	// Setting this will override the use of any cluster-scoped services that might be defined via `SonataFlowClusterPlatform`.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Services"
	Services *ServicesPlatformSpec `json:"services,omitempty"`
	// Persistence defines the platform persistence configuration. When this field is set,
	// the configuration is used as the persistence for platform services and SonataFlow instances
	// that don't provide one of their own.
	// +optional
	Persistence *PlatformPersistenceOptionsSpec `json:"persistence,omitempty"`
	// Properties defines the property set for a given actor in the current context.
	// For example, the workflow managed properties. One can define here a set of properties for SonataFlow deployments
	// that will be reused across every workflow deployment.
	//
	// These properties MAY NOT be propagated to a SonataFlowClusterPlatform since PropertyVarSource can only refer local context sources.
	// +optional
	Properties *PropertyPlatformSpec `json:"properties,omitempty"`
}

SonataFlowPlatformSpec defines the desired state of SonataFlowPlatform +k8s:openapi-gen=true

func (*SonataFlowPlatformSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SonataFlowPlatformSpec.

func (*SonataFlowPlatformSpec) DeepCopyInto

func (in *SonataFlowPlatformSpec) DeepCopyInto(out *SonataFlowPlatformSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SonataFlowPlatformStatus

type SonataFlowPlatformStatus struct {
	api.Status `json:",inline"`
	// Cluster what kind of cluster you're running (ie, plain Kubernetes or OpenShift)
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="cluster"
	Cluster PlatformCluster `json:"cluster,omitempty"`
	// Version the operator version controlling this Platform
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="version"
	Version string `json:"version,omitempty"`
	// Info generic information related to the build
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="info"
	Info map[string]string `json:"info,omitempty"`
	// ClusterPlatformRef information related to the (optional) active SonataFlowClusterPlatform
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="clusterPlatformRef"
	ClusterPlatformRef *SonataFlowClusterPlatformRefStatus `json:"clusterPlatformRef,omitempty"`
}

SonataFlowPlatformStatus defines the observed state of SonataFlowPlatform +k8s:openapi-gen=true

func (*SonataFlowPlatformStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SonataFlowPlatformStatus.

func (*SonataFlowPlatformStatus) DeepCopyInto

func (in *SonataFlowPlatformStatus) DeepCopyInto(out *SonataFlowPlatformStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SonataFlowPlatformStatus) GetTopLevelCondition

func (in *SonataFlowPlatformStatus) GetTopLevelCondition() *api.Condition

func (*SonataFlowPlatformStatus) GetTopLevelConditionType

func (in *SonataFlowPlatformStatus) GetTopLevelConditionType() api.ConditionType

func (*SonataFlowPlatformStatus) IsCreating

func (in *SonataFlowPlatformStatus) IsCreating() bool

func (*SonataFlowPlatformStatus) IsDuplicated

func (in *SonataFlowPlatformStatus) IsDuplicated() bool

func (*SonataFlowPlatformStatus) IsFailure

func (in *SonataFlowPlatformStatus) IsFailure() bool

func (*SonataFlowPlatformStatus) IsReady

func (in *SonataFlowPlatformStatus) IsReady() bool

func (*SonataFlowPlatformStatus) IsWarming

func (in *SonataFlowPlatformStatus) IsWarming() bool

func (*SonataFlowPlatformStatus) Manager

type SonataFlowSpec

type SonataFlowSpec struct {
	// Flow the workflow definition.
	// +kubebuilder:validation:Required
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="flow"
	Flow Flow `json:"flow"`
	// Resources workflow resources that are linked to this workflow definition.
	// For example, a collection of OpenAPI specification files.
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="resources"
	Resources WorkflowResources `json:"resources,omitempty"`
	// PodTemplate describes the deployment details of this SonataFlow instance.
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="podTemplate"
	PodTemplate PodTemplateSpec `json:"podTemplate,omitempty"`
	// Persistence defines the database persistence configuration for the workflow
	Persistence *PersistenceOptionsSpec `json:"persistence,omitempty"`
	// Sink describes the sinkBinding details of this SonataFlow instance.
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="sink"
	Sink *duckv1.Destination `json:"sink,omitempty"`
}

SonataFlowSpec defines the desired state of SonataFlow +k8s:openapi-gen=true

func (*SonataFlowSpec) DeepCopy

func (in *SonataFlowSpec) DeepCopy() *SonataFlowSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SonataFlowSpec.

func (*SonataFlowSpec) DeepCopyInto

func (in *SonataFlowSpec) DeepCopyInto(out *SonataFlowSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SonataFlowStatus

type SonataFlowStatus struct {
	api.Status `json:",inline"`
	// Address is used as a part of Addressable interface (status.address.url) for knative
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="address"
	Address duckv1.Addressable `json:"address,omitempty"`
	// keeps track of how many failure recovers a given workflow had so far
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="recoverFailureAttempts"
	RecoverFailureAttempts int `json:"recoverFailureAttempts,omitempty"`
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="lastTimeRecoverAttempt"
	LastTimeRecoverAttempt metav1.Time `json:"lastTimeRecoverAttempt,omitempty"`
	// Endpoint is an externally accessible URL of the workflow
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="endpoint"
	Endpoint *apis.URL `json:"endpoint,omitempty"`
	// Services displays which platform services are being used by this workflow
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="services"
	Services *PlatformServicesStatus `json:"services,omitempty"`
}

SonataFlowStatus defines the observed state of SonataFlow +k8s:openapi-gen=true

func (*SonataFlowStatus) DeepCopy

func (in *SonataFlowStatus) DeepCopy() *SonataFlowStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SonataFlowStatus.

func (*SonataFlowStatus) DeepCopyInto

func (in *SonataFlowStatus) DeepCopyInto(out *SonataFlowStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SonataFlowStatus) GetTopLevelCondition

func (s *SonataFlowStatus) GetTopLevelCondition() *api.Condition

func (*SonataFlowStatus) GetTopLevelConditionType

func (s *SonataFlowStatus) GetTopLevelConditionType() api.ConditionType

func (*SonataFlowStatus) IsBuildFailed

func (s *SonataFlowStatus) IsBuildFailed() bool

func (*SonataFlowStatus) IsBuildRunning

func (s *SonataFlowStatus) IsBuildRunning() bool

func (*SonataFlowStatus) IsBuildRunningOrUnknown

func (s *SonataFlowStatus) IsBuildRunningOrUnknown() bool

func (*SonataFlowStatus) IsChildObjectsProblem

func (s *SonataFlowStatus) IsChildObjectsProblem() bool

IsChildObjectsProblem indicates a problem during objects creation during reconciliation For example, a deployment that couldn't be created or a referenced object not found.

func (*SonataFlowStatus) IsReady

func (s *SonataFlowStatus) IsReady() bool

func (*SonataFlowStatus) IsWaitingForBuild

func (s *SonataFlowStatus) IsWaitingForBuild() bool

func (*SonataFlowStatus) IsWaitingForDeployment

func (s *SonataFlowStatus) IsWaitingForDeployment() bool

func (*SonataFlowStatus) IsWaitingForPlatform

func (s *SonataFlowStatus) IsWaitingForPlatform() bool

func (*SonataFlowStatus) Manager

func (s *SonataFlowStatus) Manager() api.ConditionsManager

type WorkFlowCapability

type WorkFlowCapability string

+kubebuilder:validation:Enum=services

type WorkflowResources

type WorkflowResources struct {
	ConfigMaps []ConfigMapWorkflowResource `json:"configMaps,omitempty"`
}

WorkflowResources collection of local objects holding workflow resources, such as OpenAPI files that will be mounted in the workflow application.

func (*WorkflowResources) DeepCopy

func (in *WorkflowResources) DeepCopy() *WorkflowResources

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowResources.

func (*WorkflowResources) DeepCopyInto

func (in *WorkflowResources) DeepCopyInto(out *WorkflowResources)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL