Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ResolveGateInput ¶ added in v1.1.1
func ResolveGateInput(gate *temporaliov1alpha1.GateWorkflowConfig, namespace string, configMapData map[string]string, configMapBinaryData map[string][]byte, secretData map[string][]byte) ([]byte, bool, error)
ResolveGateInput resolves the gate input from inline JSON or from a referenced ConfigMap/Secret Returns the input bytes and a boolean indicating whether the input came from a Secret
Types ¶
type Config ¶
type Config struct {
// RolloutStrategy to use
RolloutStrategy temporaliov1alpha1.RolloutStrategy
}
Config holds the configuration for planning
type Plan ¶
type Plan struct {
// Which actions to take
DeleteDeployments []*appsv1.Deployment
ScaleDeployments map[*corev1.ObjectReference]uint32
UpdateDeployments []*appsv1.Deployment
ShouldCreateDeployment bool
VersionConfig *VersionConfig
TestWorkflows []WorkflowConfig
// ApplyWorkerResources holds resources to apply via SSA, one per (WRT × Build ID) pair.
ApplyWorkerResources []WorkerResourceApply
// DeleteWorkerResources lists rendered WRT resource copies to delete explicitly.
// Populated when a versioned Deployment is being deleted (version sunset) and for
// WRT status entries whose build ID no longer has a Deployment (retry of a delete
// that was not confirmed). Rendered resources are owned by the WRT (not the
// Deployment) and therefore are not GC'd automatically when the Deployment is
// removed. See getDeleteWorkerResources.
DeleteWorkerResources []WorkerResourceRef
// EnsureWRTOwnerRefs holds (base, patched) pairs for WRTs that need a
// controller owner reference added, ready for client.MergeFrom patching.
// These point from each WRT → the TWD, so the WRT is GC'd when the TWD is
// deleted. The controller sets this (rather than the webhook) because the owner
// ref requires the TWD's UID, resolved from spec.temporalWorkerDeploymentRef.
EnsureWRTOwnerRefs []WRTOwnerRefPatch
}
Plan holds the actions to execute during reconciliation
func GeneratePlan ¶
func GeneratePlan( l logr.Logger, k8sState *k8s.DeploymentState, status *temporaliov1alpha1.WorkerDeploymentStatus, spec *temporaliov1alpha1.WorkerDeploymentSpec, temporalState *temporal.TemporalWorkerState, connection temporaliov1alpha1.ConnectionSpec, config *Config, workerDeploymentName string, maxVersionsIneligibleForDeletion int32, gateInput []byte, isGateInputSecret bool, wrts []temporaliov1alpha1.WorkerResourceTemplate, twdName string, twdUID types.UID, ) (*Plan, error)
GeneratePlan creates a plan for updating the worker deployment
type VersionConfig ¶
type VersionConfig struct {
// Token to use for conflict detection
ConflictToken []byte
// Build ID for the version
BuildID string
// Set this as the build ID for all new executions
SetCurrent bool
// Acceptable values [0,100]
RampPercentage int32
// ManagerIdentity is the current manager identity of the worker deployment in Temporal.
// An empty string indicates the controller should claim the identity before applying
// any routing config changes.
ManagerIdentity string
}
VersionConfig defines version configuration for Temporal
type WRTOwnerRefPatch ¶ added in v1.5.0
type WRTOwnerRefPatch struct {
Base *temporaliov1alpha1.WorkerResourceTemplate
Patched *temporaliov1alpha1.WorkerResourceTemplate
}
WRTOwnerRefPatch holds a WRT pair for a single merge-patch: Base is the unmodified object (used as the patch base), Patched has the controller owner reference already appended.
type WorkerResourceApply ¶ added in v1.5.0
type WorkerResourceApply struct {
Resource *unstructured.Unstructured
WRTName string
WRTNamespace string
BuildID string
// RenderError is set when rendering spec.template failed. No SSA apply is attempted;
// the error is recorded in the per-BuildID status entry and reflected in the Ready condition.
RenderError error
// RenderedHash is the hash of the rendered Resource object (see k8s.ComputeRenderedObjectHash).
// Empty string means hashing failed; the apply will proceed unconditionally.
RenderedHash string
// LastAppliedHash is the hash recorded in the WRT status from the last successful apply.
// If RenderedHash == LastAppliedHash (and both are non-empty), the controller skips the
// SSA apply because the rendered output is identical to what is already on the cluster.
LastAppliedHash string
}
WorkerResourceApply holds a rendered worker resource template to apply via Server-Side Apply. If RenderError is non-nil, Resource is nil and the apply must be skipped; the error is surfaced in the WRT status and Ready condition just like an SSA apply failure.
type WorkerResourceRef ¶ added in v1.5.0
type WorkerResourceRef struct {
Namespace string
Name string
APIVersion string
Kind string
WRTName string
BuildID string
}
WorkerResourceRef identifies a single rendered WRT resource copy to delete. WRTName and BuildID identify the WorkerResourceTemplate status entry that tracks the resource, so the controller can prune the entry once the delete succeeds. (Namespace is shared: rendered resources live in the WRT's namespace.)
type WorkflowConfig ¶
type WorkflowConfig struct {
WorkflowType string
WorkflowID string
BuildID string
TaskQueue string
GateInput string
// IsInputSecret indicates whether the GateInput came from a Secret reference
// and should be treated as sensitive (not logged)
IsInputSecret bool
// GateEncoding is the payload encoding to declare for GateInput when starting the
// workflow. Empty means the SDK will use json/plain encoding.
GateEncoding string
// GateMessageType is the fully-qualified protobuf message name to record alongside
// GateInput. Empty means no message type is declared.
GateMessageType string
}
WorkflowConfig defines a workflow to be started