v1alpha1

package
v0.0.0-...-eeb7f52 Latest Latest
Warning

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

Go to latest
Published: Mar 5, 2025 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the temporal.io v1alpha1 API group +kubebuilder:object:generate=true +groupName=temporal.io

Index

Constants

This section is empty.

Variables

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

	// 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

This section is empty.

Types

type AllAtOnceRolloutStrategy

type AllAtOnceRolloutStrategy struct{}

func (*AllAtOnceRolloutStrategy) DeepCopy

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

func (*AllAtOnceRolloutStrategy) DeepCopyInto

func (in *AllAtOnceRolloutStrategy) DeepCopyInto(out *AllAtOnceRolloutStrategy)

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

type DefaultVersionUpdateStrategy

type DefaultVersionUpdateStrategy string

DefaultVersionUpdateStrategy describes how to cut over new workflow executions to the target worker deployment version. +kubebuilder:validation:Enum=Manual;AllAtOnce;Progressive

const (
	UpdateManual DefaultVersionUpdateStrategy = "Manual"

	UpdateAllAtOnce DefaultVersionUpdateStrategy = "AllAtOnce"

	UpdateProgressive DefaultVersionUpdateStrategy = "Progressive"
)

type GateWorkflowConfig

type GateWorkflowConfig struct {
	WorkflowType string `json:"workflowType"`
}

func (*GateWorkflowConfig) DeepCopy

func (in *GateWorkflowConfig) DeepCopy() *GateWorkflowConfig

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

func (*GateWorkflowConfig) DeepCopyInto

func (in *GateWorkflowConfig) DeepCopyInto(out *GateWorkflowConfig)

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

type ManualRolloutStrategy

type ManualRolloutStrategy struct{}

func (*ManualRolloutStrategy) DeepCopy

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

func (*ManualRolloutStrategy) DeepCopyInto

func (in *ManualRolloutStrategy) DeepCopyInto(out *ManualRolloutStrategy)

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

type QueueStatistics

type QueueStatistics struct {
	// The approximate number of tasks backlogged in this task queue. May count expired tasks but eventually converges
	// to the right value.
	ApproximateBacklogCount int64 `json:"approximateBacklogCount,omitempty"`
	// Approximate age of the oldest task in the backlog based on the creation timestamp of the task at the head of the queue.
	ApproximateBacklogAge metav1.Duration `json:"approximateBacklogAge,omitempty"`
	// Approximate tasks per second added to the task queue based on activity within a fixed window. This includes both backlogged and
	// sync-matched tasks.
	TasksAddRate float32 `json:"tasksAddRate,omitempty"`
	// Approximate tasks per second dispatched to workers based on activity within a fixed window. This includes both backlogged and
	// sync-matched tasks.
	TasksDispatchRate float32 `json:"tasksDispatchRate,omitempty"`
}

func (*QueueStatistics) DeepCopy

func (in *QueueStatistics) DeepCopy() *QueueStatistics

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

func (*QueueStatistics) DeepCopyInto

func (in *QueueStatistics) DeepCopyInto(out *QueueStatistics)

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

type RolloutStep

type RolloutStep struct {
	// RampPercentage indicates what percentage of new workflow executions should be
	// routed to the new worker deployment version while this step is active.
	//
	// Acceptable range is [0,100].
	RampPercentage float32 `json:"rampPercentage"`

	// PauseDuration indicates how long to pause before progressing to the next step.
	PauseDuration metav1.Duration `json:"pauseDuration"`
}

func (*RolloutStep) DeepCopy

func (in *RolloutStep) DeepCopy() *RolloutStep

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

func (*RolloutStep) DeepCopyInto

func (in *RolloutStep) DeepCopyInto(out *RolloutStep)

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

type RolloutStrategy

type RolloutStrategy struct {
	// Specifies how to treat concurrent executions of a Job.
	// Valid values are:
	// - "Manual": do not automatically update the default worker deployment version;
	// - "AllAtOnce": start 100% of new workflow executions on the new worker deployment version as soon as it's healthy;
	// - "Progressive": ramp up the percentage of new workflow executions targeting the new worker deployment version over time.
	Strategy DefaultVersionUpdateStrategy `json:"strategy"`

	// Gate specifies a workflow type that must run once to completion on the new worker deployment version before
	// any traffic is directed to the new version.
	Gate *GateWorkflowConfig `json:"gate,omitempty"`

	// Steps to execute progressive rollouts. Only required when strategy is "Progressive".
	// +optional
	Steps []RolloutStep `json:"steps,omitempty" protobuf:"bytes,3,rep,name=steps"`
}

RolloutStrategy defines strategy to apply during next rollout

func (*RolloutStrategy) DeepCopy

func (in *RolloutStrategy) DeepCopy() *RolloutStrategy

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

func (*RolloutStrategy) DeepCopyInto

func (in *RolloutStrategy) DeepCopyInto(out *RolloutStrategy)

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

type SunsetStrategy

type SunsetStrategy struct {
	// ScaledownDelay specifies how long to wait after a version is drained before scaling its Deployment to zero.
	// Defaults to 1 hour.
	// +optional
	ScaledownDelay *metav1.Duration `json:"scaledownDelay"`

	// DeleteDelay specifies how long to wait after a version is drained before deleting its Deployment.
	// Defaults to 24 hours.
	// +optional
	DeleteDelay *metav1.Duration `json:"deleteDelay"`
}

SunsetStrategy defines strategy to apply when sunsetting k8s deployments of drained versions.

func (*SunsetStrategy) DeepCopy

func (in *SunsetStrategy) DeepCopy() *SunsetStrategy

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

func (*SunsetStrategy) DeepCopyInto

func (in *SunsetStrategy) DeepCopyInto(out *SunsetStrategy)

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

type TaskQueue

type TaskQueue struct {
	// Name is the name of the task queue.
	Name string `json:"name"`
}

func (*TaskQueue) DeepCopy

func (in *TaskQueue) DeepCopy() *TaskQueue

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

func (*TaskQueue) DeepCopyInto

func (in *TaskQueue) DeepCopyInto(out *TaskQueue)

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

type TemporalConnection

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

	Spec   TemporalConnectionSpec   `json:"spec,omitempty"`
	Status TemporalConnectionStatus `json:"status,omitempty"`
}

TemporalConnection is the Schema for the temporalconnections API

func (*TemporalConnection) DeepCopy

func (in *TemporalConnection) DeepCopy() *TemporalConnection

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

func (*TemporalConnection) DeepCopyInto

func (in *TemporalConnection) DeepCopyInto(out *TemporalConnection)

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

func (*TemporalConnection) DeepCopyObject

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

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

type TemporalConnectionList

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

TemporalConnectionList contains a list of TemporalConnection

func (*TemporalConnectionList) DeepCopy

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

func (*TemporalConnectionList) DeepCopyInto

func (in *TemporalConnectionList) DeepCopyInto(out *TemporalConnectionList)

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

func (*TemporalConnectionList) DeepCopyObject

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

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

type TemporalConnectionSpec

type TemporalConnectionSpec struct {
	// The host and port of the Temporal server.
	HostPort string `json:"hostPort"`

	// MutualTLSSecret is the name of the Secret that contains the TLS certificate and key
	// for mutual TLS authentication. The secret must be `type: kubernetes.io/tls` and exist
	// in the same Kubernetes namespace as the TemporalConnection resource.
	//
	// More information about creating a TLS secret:
	// https://kubernetes.io/docs/concepts/configuration/secret/#tls-secrets
	MutualTLSSecret string `json:"mutualTLSSecret,omitempty"`
}

TemporalConnectionSpec defines the desired state of TemporalConnection

func (*TemporalConnectionSpec) DeepCopy

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

func (*TemporalConnectionSpec) DeepCopyInto

func (in *TemporalConnectionSpec) DeepCopyInto(out *TemporalConnectionSpec)

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

type TemporalConnectionStatus

type TemporalConnectionStatus struct {
}

TemporalConnectionStatus defines the observed state of TemporalConnection

func (*TemporalConnectionStatus) DeepCopy

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

func (*TemporalConnectionStatus) DeepCopyInto

func (in *TemporalConnectionStatus) DeepCopyInto(out *TemporalConnectionStatus)

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

type TemporalWorkerDeployment

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

	Spec   TemporalWorkerDeploymentSpec   `json:"spec,omitempty"`
	Status TemporalWorkerDeploymentStatus `json:"status,omitempty"`
}

TemporalWorkerDeployment is the Schema for the temporalworkerdeployments API

TODO(jlegrone): Implement default/validate interface https://book.kubebuilder.io/cronjob-tutorial/webhook-implementation.html

func (*TemporalWorkerDeployment) DeepCopy

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

func (*TemporalWorkerDeployment) DeepCopyInto

func (in *TemporalWorkerDeployment) DeepCopyInto(out *TemporalWorkerDeployment)

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

func (*TemporalWorkerDeployment) DeepCopyObject

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

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

func (*TemporalWorkerDeployment) Default

func (r *TemporalWorkerDeployment) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*TemporalWorkerDeployment) SetupWebhookWithManager

func (r *TemporalWorkerDeployment) SetupWebhookWithManager(mgr ctrl.Manager) error

type TemporalWorkerDeploymentList

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

TemporalWorkerDeploymentList contains a list of TemporalWorkerDeployment

func (*TemporalWorkerDeploymentList) DeepCopy

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

func (*TemporalWorkerDeploymentList) DeepCopyInto

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

func (*TemporalWorkerDeploymentList) DeepCopyObject

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

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

type TemporalWorkerDeploymentSpec

type TemporalWorkerDeploymentSpec struct {

	// Number of desired pods. This is a pointer to distinguish between explicit
	// zero and not specified. Defaults to 1.
	// This field makes TemporalWorkerDeploymentSpec implement the scale subresource, which is compatible with auto-scalers.
	// TODO(jlegrone): Configure min replicas per thousand workflow/activity tasks?
	// +optional
	Replicas *int32 `json:"replicas,omitempty" protobuf:"varint,1,opt,name=replicas"`

	// Label selector for pods. Existing ReplicaSets whose pods are
	// selected by this will be the ones affected by this deployment.
	// It must match the pod template's labels.
	// +optional
	Selector *metav1.LabelSelector `json:"selector" protobuf:"bytes,2,opt,name=selector"`

	// Template describes the pods that will be created.
	// The only allowed template.spec.restartPolicy value is "Always".
	Template v1.PodTemplateSpec `json:"template"`

	// Minimum number of seconds for which a newly created pod should be ready
	// without any of its container crashing, for it to be considered available.
	// Defaults to 0 (pod will be considered available as soon as it is ready)
	// +optional
	MinReadySeconds int32 `json:"minReadySeconds,omitempty"`

	// The maximum time in seconds for a deployment to make progress before it
	// is considered to be failed. The deployment controller will continue to
	// process failed deployments and a condition with a ProgressDeadlineExceeded
	// reason will be surfaced in the deployment status. Note that progress will
	// not be estimated during the time a deployment is paused. Defaults to 600s.
	ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty" protobuf:"varint,9,opt,name=progressDeadlineSeconds"`

	// How to cut over new workflow executions to the target version.
	RolloutStrategy RolloutStrategy `json:"cutover"`

	// How to manage sunsetting drained versions.
	SunsetStrategy SunsetStrategy `json:"sunset"`

	// TODO(jlegrone): add godoc
	WorkerOptions WorkerOptions `json:"workerOptions"`
}

TemporalWorkerDeploymentSpec defines the desired state of TemporalWorkerDeployment

func (*TemporalWorkerDeploymentSpec) DeepCopy

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

func (*TemporalWorkerDeploymentSpec) DeepCopyInto

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

type TemporalWorkerDeploymentStatus

type TemporalWorkerDeploymentStatus struct {

	// TargetVersion is the desired next version. If TargetVersion.Deployment is nil,
	// then the controller should create it. If not nil, the controller should
	// wait for it to become healthy and then move it to the DefaultVersion.
	TargetVersion *WorkerDeploymentVersion `json:"targetVersion"`

	// DefaultVersion is the version that is currently registered with
	// Temporal as the current version of its worker deployment. This must never be nil.
	//
	// RampPercentage should always be nil for this version.
	DefaultVersion *WorkerDeploymentVersion `json:"defaultVersion"`

	// DeprecatedVersions are deployment versions that are no longer the default. Any
	// deployment versions that are unreachable should be deleted by the controller.
	//
	// RampPercentage should only be set for DeprecatedVersions when rollout
	// strategy is set to manual.
	DeprecatedVersions []*WorkerDeploymentVersion `json:"deprecatedVersions,omitempty"`

	// TODO(jlegrone): Add description
	VersionConflictToken []byte `json:"versionConflictToken"`
}

TemporalWorkerDeploymentStatus defines the observed state of TemporalWorkerDeployment

func (*TemporalWorkerDeploymentStatus) DeepCopy

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

func (*TemporalWorkerDeploymentStatus) DeepCopyInto

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

type VersionStatus

type VersionStatus string

VersionStatus indicates the status of a version. +enum

const (
	// VersionStatusNotRegistered indicates that the version is not registered
	// with Temporal for any worker deployment.
	VersionStatusNotRegistered VersionStatus = "NotRegistered"

	// VersionStatusInactive indicates that the version is registered in a Temporal
	// worker deployment, but has not been set to current or ramping.
	// A version is registered in a worker deployment after a poller with appropriate
	// DeploymentOptions starts polling.
	VersionStatusInactive VersionStatus = "Inactive"

	// VersionStatusRamping indicates that the version is the ramping version of its
	// worker deployment. It is accepting some percentage of new workflow executions.
	VersionStatusRamping = "Ramping"

	// VersionStatusCurrent indicates that the version is the current version of its
	// worker deployment. It is accepting all new workflow executions except for the
	// percent that are sent to the ramping version, if one exists.
	VersionStatusCurrent = "Current"

	// VersionStatusDraining indicates that the version has stopped accepting new workflows
	// (is no longer ramping or current) and DOES have open workflows pinned to it.
	VersionStatusDraining VersionStatus = "Draining"

	// VersionStatusDrained indicates that the version has stopped accepting new workflows
	// (is no longer ramping or current) and does NOT have open workflows pinned to it.
	// This version MAY still receive query tasks associated with closed workflows.
	VersionStatusDrained VersionStatus = "Drained"
)

type WorkerDeploymentVersion

type WorkerDeploymentVersion struct {
	// Healthy indicates whether the deployment version is healthy.
	// +optional
	HealthySince *metav1.Time `json:"healthySince"`

	// The string representation of the deployment version.
	// Currently, this is always `deployment_name.build_id`.
	VersionID string `json:"versionID"`

	// Status indicates whether workers in this version may
	// be eligible to receive tasks from the Temporal server.
	Status VersionStatus `json:"status"`

	// RampPercentage is the percentage of new workflow executions that are
	// configured to start on this version.
	//
	// Acceptable range is [0,100].
	RampPercentage *float32 `json:"rampPercentage,omitempty"`

	// DrainedSince is the time at which the version
	// became drained.
	// +optional
	DrainedSince *metav1.Time `json:"drainedSince"`

	// RampingSince is time when the version first started ramping.
	// +optional
	RampingSince *metav1.Time `json:"rampingSince"`

	// A pointer to the version's managed k8s deployment.
	// +optional
	Deployment *v1.ObjectReference `json:"deployment"`

	// TaskQueues is a list of task queues that are associated with this version.
	TaskQueues []TaskQueue `json:"taskQueues,omitempty"`

	// A TestWorkflow is used to validate the deployment version before making it the default.
	// +optional
	TestWorkflows []WorkflowExecution `json:"testWorkflows,omitempty"`

	// ManagedBy is the identity of the client that is managing the rollout of this version.
	// +optional
	ManagedBy string `json:"managedBy,omitempty"`
}

func (*WorkerDeploymentVersion) DeepCopy

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

func (*WorkerDeploymentVersion) DeepCopyInto

func (in *WorkerDeploymentVersion) DeepCopyInto(out *WorkerDeploymentVersion)

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

type WorkerOptions

type WorkerOptions struct {
	// The name of a TemporalConnection in the same namespace as the TemporalWorkerDeployment.
	TemporalConnection string `json:"connection"`
	// The Temporal namespace for the worker to connect to.
	TemporalNamespace string `json:"temporalNamespace"`
}

func (*WorkerOptions) DeepCopy

func (in *WorkerOptions) DeepCopy() *WorkerOptions

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

func (*WorkerOptions) DeepCopyInto

func (in *WorkerOptions) DeepCopyInto(out *WorkerOptions)

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

type WorkflowExecution

type WorkflowExecution struct {
	WorkflowID string                  `json:"workflowID"`
	RunID      string                  `json:"runID"`
	Status     WorkflowExecutionStatus `json:"status"`
	TaskQueue  string                  `json:"taskQueue"`
}

func (*WorkflowExecution) DeepCopy

func (in *WorkflowExecution) DeepCopy() *WorkflowExecution

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

func (*WorkflowExecution) DeepCopyInto

func (in *WorkflowExecution) DeepCopyInto(out *WorkflowExecution)

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

type WorkflowExecutionStatus

type WorkflowExecutionStatus string

WorkflowExecutionStatus describes the current state of a workflow. +enum

const (
	// WorkflowExecutionStatusRunning indicates that the workflow is currently running.
	WorkflowExecutionStatusRunning WorkflowExecutionStatus = "Running"
	// WorkflowExecutionStatusCompleted indicates that the workflow has completed successfully.
	WorkflowExecutionStatusCompleted WorkflowExecutionStatus = "Completed"
	// WorkflowExecutionStatusFailed indicates that the workflow has failed.
	WorkflowExecutionStatusFailed WorkflowExecutionStatus = "Failed"
	// WorkflowExecutionStatusCanceled indicates that the workflow has been canceled.
	WorkflowExecutionStatusCanceled WorkflowExecutionStatus = "Canceled"
	// WorkflowExecutionStatusTerminated indicates that the workflow has been terminated.
	WorkflowExecutionStatusTerminated WorkflowExecutionStatus = "Terminated"
	// WorkflowExecutionStatusTimedOut indicates that the workflow has timed out.
	WorkflowExecutionStatusTimedOut WorkflowExecutionStatus = "TimedOut"
)

Jump to

Keyboard shortcuts

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