CRD Reference

API Reference #

Packages #

temporal.bmor10.com/v1alpha1 #

Conversion / hub-and-spoke notes:

v1alpha1 is currently the one and only API version, and is marked as the storage version (see the +kubebuilder:storageversion markers on the root types). When a v1beta1 is introduced, v1alpha1 will become the conversion “hub”: all spoke versions convert to and from it, and conversion webhooks will be wired in here (via the conversion.Convertible / conversion.Hub interfaces from sigs.k8s.io/controller-runtime). Keeping this groundwork explicit now ensures the storage version is unambiguous and that adding a new version later is a localized change.

Package v1alpha1 contains API Schema definitions for the temporal v1alpha1 API group.

Resource Types #

ArchivalSpec #

ArchivalSpec is a passthrough for cluster-wide archival configuration.

Appears in:

FieldDescriptionDefaultValidation
history RawExtensionOptional: {}
visibility RawExtensionOptional: {}

AuthorizationSpec #

AuthorizationSpec configures the frontend authorizer, claim mapper, and JWT key provider used to validate inbound bearer tokens.

Appears in:

FieldDescriptionDefaultValidation
authorizer stringAuthorizer selects the Temporal authorizer plugin. If unset, it defaults
to “default” (per-namespace RBAC) when JWT validation is configured.
Set it to "" to select the no-op (allow-all) authorizer for
authenticate-only mode.
Optional: {}
claimMapper stringClaimMapper is the Temporal claim mapper. Defaults to “default” when JWT
validation is configured.
Optional: {}
permissionsClaimName stringPermissionsClaimName maps to global.authorization.permissionsClaimName.
Defaults to “roles” when Entra is set, otherwise “permissions”.
Optional: {}
jwtKeyProvider JWTKeyProviderSpecJWTKeyProvider configures JWKS-based token signature validation.Optional: {}
entra EntraAuthSpecEntra derives the Entra JWKS keySourceURI from a tenant ID and applies
sensible JWT defaults.
Optional: {}
config RawExtensionConfig is a passthrough merged into the authorization block for any knob
not modeled above.
Optional: {}

AzureWorkloadIdentitySpec #

AzureWorkloadIdentitySpec configures passwordless Microsoft Entra auth for a cluster’s SQL datastores via Azure Workload Identity. The operator expands it into a ServiceAccount, token sidecar/initContainers, and passwordCommand wiring in the cluster’s namespace.

Appears in:

FieldDescriptionDefaultValidation
clientId stringClientID is the Azure managed-identity / app-registration client ID used
for the ServiceAccount’s azure.workload.identity/client-id annotation.
scope stringScope is the Entra token scope requested for the database. Defaults to
https://ossrdbms-aad.database.windows.net/.default".
Optional: {}
serviceAccountName stringServiceAccountName overrides the generated ServiceAccount name
(default “-azure”).
Optional: {}
image stringImage overrides the azure-cli image used by the token sidecar /
initContainers (default “mcr.microsoft.com/azure-cli:2.87.0”).
Optional: {}
refreshInterval DurationRefreshInterval is how often the server-pod sidecar refreshes the token
(default 30m).
Optional: {}

CalendarRange #

CalendarRange is an inclusive [Start,End] range with an optional Step.

Appears in:

FieldDescriptionDefaultValidation
start integer
end integerOptional: {}
step integer1Optional: {}

CassandraDatastoreSpec #

CassandraDatastoreSpec configures a Cassandra datastore.

Appears in:

FieldDescriptionDefaultValidation
hosts string arrayMinItems: 1
port integer9042Maximum: 65535
Minimum: 1
keyspace string
user stringOptional: {}
passwordSecretRef SecretKeyReferenceOptional: {}
datacenter stringOptional: {}
replicationFactor integer1Minimum: 1
Optional: {}
tls DatastoreTLSSpecOptional: {}

CertificateAuthoritySpec #

CertificateAuthoritySpec configures a certificate authority.

Appears in:

FieldDescriptionDefaultValidation
secretName stringOptional: {}
duration DurationOptional: {}

ClusterConnectionPeer #

ClusterConnectionPeer identifies one cluster in a replication group. Exactly one of ClusterRef or FrontendAddress must be set.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the replication-group cluster name (== clusterMetadata.currentClusterName).
clusterRef ClusterReferenceClusterRef points at a local TemporalCluster CR. The operator resolves its
frontend address and reuses its CA automatically.
Optional: {}
frontendAddress stringFrontendAddress is an external peer’s gRPC frontend address (host:port).Optional: {}
tlsSecretRef SecretReferenceTLSSecretRef supplies mTLS material for an external peer. Ignored for
ClusterRef peers (the cluster CA is reused).
Optional: {}
enableConnection booleanEnableConnection toggles replication traffic without removing the peer.trueOptional: {}

ClusterMetadataSpec #

ClusterMetadataSpec configures multi-cluster replication.

Appears in:

FieldDescriptionDefaultValidation
enableGlobalNamespace booleanOptional: {}
failoverVersionIncrement integerMinimum: 1
Optional: {}
currentClusterName stringMinLength: 1
Optional: {}
initialFailoverVersion integerMinimum: 1
Optional: {}
masterClusterName stringMinLength: 1
Optional: {}

ClusterReference #

ClusterReference points at a Temporal frontend in the same Kubernetes namespace: either a TemporalCluster (default) or a TemporalDevServer.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the name of the referenced object.
kind stringKind selects the referenced object type.TemporalClusterEnum: [TemporalCluster TemporalDevServer]
Optional: {}

DatastoreSpec #

DatastoreSpec configures a single datastore. Exactly one backend should be set.

Appears in:

FieldDescriptionDefaultValidation
sql SQLDatastoreSpecOptional: {}
cassandra CassandraDatastoreSpecOptional: {}
elasticsearch ElasticsearchDatastoreSpecOptional: {}
schemaVersion stringSchemaVersion is either “auto” (operator-managed migrations) or a pinned
schema version string.
autoOptional: {}

DatastoreTLSSpec #

DatastoreTLSSpec configures TLS for a datastore connection.

Appears in:

FieldDescriptionDefaultValidation
enabled booleantrue
caSecretRef SecretKeyReferenceOptional: {}
certSecretRef SecretKeyReferenceOptional: {}
keySecretRef SecretKeyReferenceOptional: {}
enableHostVerification booleanOptional: {}
serverName stringOptional: {}

DevServerEndpoints #

DevServerEndpoints reports the dev server’s resolved endpoints.

Appears in:

FieldDescriptionDefaultValidation
frontend stringFrontend is the gRPC frontend endpoint (host:7233).Optional: {}
ui stringUI is the Web UI endpoint (host:8233).Optional: {}

DevServerStorageSpec #

DevServerStorageSpec configures SQLite storage.

Appears in:

FieldDescriptionDefaultValidation
type stringType selects ephemeral (emptyDir, wiped on restart) or Persistent (PVC).EphemeralEnum: [Ephemeral Persistent]
Optional: {}
size QuantitySize is the PVC size when Type=Persistent. Default “1Gi”.Optional: {}
storageClassName stringStorageClassName is the PVC storage class when Type=Persistent.Optional: {}

DevServerUISpec #

DevServerUISpec controls the bundled Web UI.

Appears in:

FieldDescriptionDefaultValidation
enabled booleanEnabled toggles the bundled Web UI. Default true.true

DynamicConfigConstraints #

DynamicConfigConstraints scopes a dynamic config value.

Appears in:

FieldDescriptionDefaultValidation
namespace stringOptional: {}
taskQueueName stringOptional: {}
taskQueueType stringOptional: {}

DynamicConfigSpec #

DynamicConfigSpec is a passthrough for Temporal’s dynamic configuration.

Appears in:

FieldDescriptionDefaultValidation
values object (keys:string, values:DynamicConfigValue)Values maps a dynamic config key to one or more constrained values.Optional: {}

DynamicConfigValue #

DynamicConfigValue is a single dynamic config value with optional constraints.

Appears in:

FieldDescriptionDefaultValidation
value JSONValue is an arbitrary JSON value for the dynamic config key. It may be a
scalar (bool, number, string), object, or array.
Schemaless: {}
constraints DynamicConfigConstraintsOptional: {}

ElasticsearchDatastoreSpec #

ElasticsearchDatastoreSpec configures an Elasticsearch visibility store.

Appears in:

FieldDescriptionDefaultValidation
url string
version stringv8Enum: [v7 v8]
username stringOptional: {}
passwordSecretRef SecretKeyReferenceOptional: {}
indices object (keys:string, values:string)Optional: {}
tls DatastoreTLSSpecOptional: {}

EndpointsStatus #

EndpointsStatus reports resolved cluster endpoints.

Appears in:

FieldDescriptionDefaultValidation
frontend stringOptional: {}
ui stringOptional: {}
metrics stringOptional: {}

EntraAuthSpec #

EntraAuthSpec is a Microsoft Entra convenience for server JWT validation.

Appears in:

FieldDescriptionDefaultValidation
tenantID stringTenantID is the Entra (Azure AD) tenant. Derives the JWKS keySourceURI
https://login.microsoftonline.com/{tenantID}/discovery/v2.0/keys.
MinLength: 1

EntraUIAuthSpec #

EntraUIAuthSpec is a Microsoft Entra convenience for UI OIDC login.

Appears in:

FieldDescriptionDefaultValidation
tenantID stringMinLength: 1

FrontendMTLSSpec #

FrontendMTLSSpec configures the frontend certificate.

Appears in:

FieldDescriptionDefaultValidation
secretName stringOptional: {}
dnsNames string arrayOptional: {}

InternalFrontendSpec #

InternalFrontendSpec configures the optional internal-frontend service.

Appears in:

FieldDescriptionDefaultValidation
enabled booleanfalse
replicas integer1Minimum: 1
Optional: {}
resources ResourceRequirementsOptional: {}

IntervalSpec #

IntervalSpec matches times of epoch + n*Every + Offset.

Appears in:

FieldDescriptionDefaultValidation
every Duration
offset DurationOptional: {}

IssuerReference #

IssuerReference references a cert-manager Issuer or ClusterIssuer.

Appears in:

FieldDescriptionDefaultValidation
name string
kind stringIssuerEnum: [Issuer ClusterIssuer]
Optional: {}
group stringcert-manager.ioOptional: {}

JWTKeyProviderSpec #

JWTKeyProviderSpec configures JWKS-based JWT validation.

Appears in:

FieldDescriptionDefaultValidation
keySourceURIs string arrayKeySourceURIs are JWKS endpoints used to validate token signatures.Optional: {}
refreshInterval DurationRefreshInterval controls how often keys are refreshed, e.g. “1m”.Optional: {}

MTLSSpec #

MTLSSpec configures mutual TLS for the cluster.

Appears in:

FieldDescriptionDefaultValidation
provider stringProvider selects the certificate provider.cert-managerEnum: [cert-manager]
issuerRef IssuerReferenceIssuerRef references the cert-manager issuer used to mint certificates.
Required when provider is cert-manager.
Optional: {}
internodeCA CertificateAuthoritySpecInternodeCA configures the internode certificate authority.Optional: {}
frontend FrontendMTLSSpecFrontend configures the frontend certificate.Optional: {}
refreshInterval DurationRefreshInterval is the certificate refresh interval.720hOptional: {}
renewBefore DurationRenewBefore is how long before expiry a certificate is renewed.240hOptional: {}

MetricsSpec #

MetricsSpec configures Prometheus integration.

Appears in:

FieldDescriptionDefaultValidation
enabled booleantrue
port integer9090Maximum: 65535
Minimum: 1
Optional: {}
serviceMonitor ServiceMonitorSpecOptional: {}

NamespaceReplicationStatus #

NamespaceReplicationStatus reports the observed replication state.

Appears in:

FieldDescriptionDefaultValidation
isGlobal booleanOptional: {}
activeCluster stringOptional: {}
clusters string arrayOptional: {}
failoverInProgress booleanOptional: {}
lastFailoverTime TimeOptional: {}

PeerConnectionStatus #

PeerConnectionStatus reports the observed state of one peer.

Appears in:

FieldDescriptionDefaultValidation
name string
reachable booleanReachable is true when the operator could connect to this peer’s frontend.Optional: {}
connected booleanConnected is true when this peer appears as an enabled remote cluster on
the other reachable peers.
Optional: {}
message stringOptional: {}

PersistenceSpec #

PersistenceSpec configures the default and visibility datastores.

Appears in:

FieldDescriptionDefaultValidation
defaultStore DatastoreSpecDefaultStore holds workflow execution state. Exactly one of sql or
cassandra must be set.
visibilityStore DatastoreSpecVisibilityStore holds visibility records. One of sql, cassandra, or
elasticsearch must be set.
schemaJob SchemaJobSpecSchemaJob customizes the schema setup/update Jobs the operator runs.Optional: {}
azureWorkloadIdentity AzureWorkloadIdentitySpecAzureWorkloadIdentity, when set, makes this cluster authenticate to its
SQL datastore(s) passwordlessly using Azure Workload Identity. The operator
generates a ServiceAccount, token sidecar/initContainers, and the
passwordCommand wiring in the cluster’s namespace; the operator itself
holds no database credential. SQL stores only.
Optional: {}

PersistenceStatus #

PersistenceStatus reports datastore reachability and schema state.

Appears in:

FieldDescriptionDefaultValidation
schemaVersions object (keys:string, values:string)SchemaVersions maps a store name to its observed schema version.Optional: {}
history SchemaUpgradeRecord arrayHistory records schema upgrades applied by the operator.Optional: {}
reachable booleanReachable indicates whether the datastores were reachable at last reconcile.Optional: {}

PodTemplateOverride #

PodTemplateOverride carries metadata and a strategic-merge pod spec override.

Appears in:

FieldDescriptionDefaultValidation
labels object (keys:string, values:string)Optional: {}
annotations object (keys:string, values:string)Optional: {}
spec RawExtensionSpec is a partial PodSpec (strategic-merge patch) merged onto the
generated pod template. It is stored as an opaque object to keep the
CRD schema small.
Optional: {}

RetryPolicySpec #

RetryPolicySpec is the retry policy for the started workflow.

Appears in:

FieldDescriptionDefaultValidation
initialInterval DurationOptional: {}
backoffCoefficient stringBackoffCoefficient is a decimal string (e.g. “2.0”) parsed to float64.Optional: {}
maximumInterval DurationOptional: {}
maximumAttempts integerOptional: {}
nonRetryableErrorTypes string arrayOptional: {}

SQLDatastoreSpec #

SQLDatastoreSpec configures a SQL (Postgres/MySQL) datastore.

Appears in:

FieldDescriptionDefaultValidation
pluginName stringPluginName selects the SQL driver.postgres12Enum: [postgres12 postgres12_pgx mysql8]
host string
port integer5432Maximum: 65535
Minimum: 1
database string
user string
passwordSecretRef SecretKeyReferencePasswordSecretRef references a secret containing the password. Required
for password authentication.
Optional: {}
passwordCommandSecretRef SecretKeyReferencePasswordCommandSecretRef references a secret holding a command that emits
a short-lived credential (Temporal 1.31+ IAM auth).
Optional: {}
connectAttributes object (keys:string, values:string)Optional: {}
maxConns integerMinimum: 1
Optional: {}
maxIdleConns integerMinimum: 1
Optional: {}
maxConnLifetime DurationOptional: {}
tls DatastoreTLSSpecOptional: {}

ScheduleActionSpec #

ScheduleActionSpec is the action taken when the schedule fires.

Appears in:

FieldDescriptionDefaultValidation
startWorkflow StartWorkflowAction

SchedulePoliciesSpec #

SchedulePoliciesSpec tunes overlap/catchup behavior.

Appears in:

FieldDescriptionDefaultValidation
overlapPolicy stringEnum: [Skip BufferOne BufferAll CancelOther TerminateOther AllowAll]
Optional: {}
catchupWindow DurationOptional: {}
pauseOnFailure booleanOptional: {}
keepOriginalWorkflowID booleanOptional: {}

ScheduleSpec #

ScheduleSpec is the set of times an action should occur at.

Appears in:

FieldDescriptionDefaultValidation
calendars string arrayCalendars holds cron strings (5/6/7 field, or @daily etc).Optional: {}
intervals IntervalSpec arrayIntervals fire every Every (plus optional Offset/phase).Optional: {}
structuredCalendar StructuredCalendarSpec arrayStructuredCalendar gives field-level control without cron syntax.Optional: {}
excludeStructuredCalendar StructuredCalendarSpec arrayExcludeStructuredCalendar subtracts matching times.Optional: {}
startTime TimeStartTime bounds the schedule start (inclusive).Optional: {}
endTime TimeEndTime bounds the schedule end (inclusive).Optional: {}
jitter DurationJitter randomizes each action time by 0..Jitter.Optional: {}
timezoneName stringTimezoneName interprets calendar specs (IANA name; defaults to UTC).Optional: {}

ScheduleStateSpec #

ScheduleStateSpec controls pause and action-limit state.

Appears in:

FieldDescriptionDefaultValidation
paused booleanOptional: {}
notes stringOptional: {}
limitedActions booleanOptional: {}
remainingActions integerOptional: {}

SchemaJobSpec #

SchemaJobSpec customizes the schema management Jobs (setup-schema / update-schema) the operator runs against SQL and Cassandra datastores.

Appears in:

FieldDescriptionDefaultValidation
podTemplate PodTemplateOverridePodTemplate overrides metadata and the pod spec of the schema Job pods.
Use it to attach a ServiceAccount, pod labels (e.g. Azure Workload
Identity), and a token initContainer so the Job can authenticate with a
passwordCommand instead of a static password.
Optional: {}

SchemaUpgradeRecord #

SchemaUpgradeRecord records a single schema migration.

Appears in:

FieldDescriptionDefaultValidation
store string
fromVersion string
toVersion string
time Time

SecretKeyReference #

SecretKeyReference references a single key within a Secret in the same namespace.

Appears in:

FieldDescriptionDefaultValidation
name string
key stringpasswordOptional: {}

SecretReference #

SecretReference points at a Secret in the same namespace holding TLS material for connecting to an external Temporal peer. Keys default to the conventional “ca.crt”, “tls.crt”, “tls.key” when the overrides are empty.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the Secret name.
caKey stringCAKey is the Secret key holding the CA bundle. Defaults to “ca.crt”.Optional: {}
certKey stringCertKey is the Secret key holding the client certificate. Defaults to “tls.crt”.Optional: {}
keyKey stringKeyKey is the Secret key holding the client private key. Defaults to “tls.key”.Optional: {}

ServiceExposureSpec #

ServiceExposureSpec configures how a service is exposed.

Appears in:

FieldDescriptionDefaultValidation
type ServiceTypeClusterIPEnum: [ClusterIP NodePort LoadBalancer]
Optional: {}
annotations object (keys:string, values:string)Optional: {}

ServiceMonitorSpec #

ServiceMonitorSpec configures a Prometheus Operator ServiceMonitor.

Appears in:

FieldDescriptionDefaultValidation
enabled booleanfalse
interval DurationOptional: {}
labels object (keys:string, values:string)Optional: {}

ServiceOverrides #

ServiceOverrides are shared defaults applied across services.

Appears in:

FieldDescriptionDefaultValidation
podTemplate PodTemplateOverrideOptional: {}

ServiceSpec #

ServiceSpec configures a single Temporal service deployment.

Appears in:

FieldDescriptionDefaultValidation
replicas integer1Minimum: 1
Optional: {}
resources ResourceRequirementsOptional: {}
podTemplate PodTemplateOverrideOptional: {}
service ServiceExposureSpecOptional: {}
nodeSelector object (keys:string, values:string)Optional: {}
tolerations Toleration arrayOptional: {}
affinity AffinityOptional: {}
topologySpreadConstraints TopologySpreadConstraint arrayOptional: {}

ServiceStatus #

ServiceStatus reports the readiness of a single service.

Appears in:

FieldDescriptionDefaultValidation
ready integerOptional: {}
desired integerOptional: {}
version stringOptional: {}

ServicesSpec #

ServicesSpec configures each Temporal service plus shared overrides.

Appears in:

FieldDescriptionDefaultValidation
frontend ServiceSpecOptional: {}
history ServiceSpecOptional: {}
matching ServiceSpecOptional: {}
worker ServiceSpecOptional: {}
internalFrontend InternalFrontendSpecOptional: {}
overrides ServiceOverridesOverrides are applied to every service unless overridden per-service.Optional: {}

StartWorkflowAction #

StartWorkflowAction starts a workflow when the schedule fires.

Appears in:

FieldDescriptionDefaultValidation
workflowType string
taskQueue string
workflowID stringOptional: {}
args RawExtension arrayArgs are JSON-serializable workflow inputs (one json/plain payload each).Optional: {}
workflowExecutionTimeout DurationOptional: {}
workflowRunTimeout DurationOptional: {}
workflowTaskTimeout DurationOptional: {}
workflowIDReusePolicy stringEnum: [AllowDuplicate AllowDuplicateFailedOnly RejectDuplicate TerminateIfRunning]
Optional: {}
retryPolicy RetryPolicySpecOptional: {}
memo object (keys:string, values:RawExtension)Optional: {}
searchAttributes object (keys:string, values:RawExtension)Optional: {}

StructuredCalendarSpec #

StructuredCalendarSpec describes calendar times as field ranges.

Appears in:

FieldDescriptionDefaultValidation
second CalendarRange arrayOptional: {}
minute CalendarRange arrayOptional: {}
hour CalendarRange arrayOptional: {}
dayOfMonth CalendarRange arrayOptional: {}
month CalendarRange arrayOptional: {}
year CalendarRange arrayOptional: {}
dayOfWeek CalendarRange arrayOptional: {}
comment stringOptional: {}

TemporalCluster #

TemporalCluster is the Schema for the temporalclusters API.

FieldDescriptionDefaultValidation
apiVersion stringtemporal.bmor10.com/v1alpha1
kind stringTemporalCluster
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec TemporalClusterSpecspec defines the desired state of TemporalClusterRequired: {}

TemporalClusterClient #

TemporalClusterClient is the Schema for the temporalclusterclients API.

FieldDescriptionDefaultValidation
apiVersion stringtemporal.bmor10.com/v1alpha1
kind stringTemporalClusterClient
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec TemporalClusterClientSpecspec defines the desired state of TemporalClusterClientRequired: {}

TemporalClusterClientSpec #

TemporalClusterClientSpec defines the desired state of TemporalClusterClient.

Appears in:

FieldDescriptionDefaultValidation
clusterRef ClusterReferenceClusterRef references the cluster to generate client credentials for.
Client credentials are only available for mTLS-enabled TemporalClusters.
secretName stringSecretName is the name of the Secret to write generated client credentials into.
Defaults to the resource name when empty.
Optional: {}

TemporalClusterConnection #

TemporalClusterConnection is the Schema for the temporalclusterconnections API.

FieldDescriptionDefaultValidation
apiVersion stringtemporal.bmor10.com/v1alpha1
kind stringTemporalClusterConnection
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec TemporalClusterConnectionSpecRequired: {}

TemporalClusterConnectionSpec #

TemporalClusterConnectionSpec defines a multi-cluster replication group and drives automatic remote-cluster connection registration between its peers.

Appears in:

FieldDescriptionDefaultValidation
peers ClusterConnectionPeer arrayPeers participating in replication. At least two are required. Each peer’s
Name must equal that cluster’s clusterMetadata.currentClusterName.
MinItems: 2

TemporalClusterSpec #

TemporalClusterSpec defines the desired state of TemporalCluster.

Appears in:

FieldDescriptionDefaultValidation
version stringVersion is the Temporal server version, e.g. “1.31.1”.Pattern: ^\d+\.\d+\.\d+$
numHistoryShards integerNumHistoryShards is the number of history shards. IMMUTABLE after creation.
Choose carefully: 512 small prod, 4096 large prod.
512Maximum: 16384
Minimum: 1
image stringImage is the Temporal server image. Default: temporalio/server:.Optional: {}
imagePullSecrets LocalObjectReference arrayImagePullSecrets references secrets for pulling the server image.Optional: {}
services ServicesSpecServices configures each Temporal service.Optional: {}
persistence PersistenceSpecPersistence configures the default and visibility datastores. Required.
mtls MTLSSpecMTLS configures mutual TLS (cert-manager-driven by default).Optional: {}
dynamicConfig DynamicConfigSpecDynamicConfig is a passthrough for Temporal’s dynamic config.Optional: {}
ui UISpecUI configures temporal-ui as part of this cluster.Optional: {}
metrics MetricsSpecMetrics configures Prometheus integration.Optional: {}
archival ArchivalSpecArchival configures cluster-wide archival enablement.Optional: {}
authorization AuthorizationSpecAuthorization configures the authorizer and claim mapper.Optional: {}
clusterMetadata ClusterMetadataSpecClusterMetadata configures multi-cluster replication.Optional: {}
preventDeletion booleanPreventDeletion, when true, blocks deletion of the cluster via the
validating webhook as a safety measure.
Optional: {}
workflowRunPolicy WorkflowRunPolicyWorkflowRunPolicy gates operator-initiated TemporalWorkflowRun executions
against this cluster. Absent means disabled (closed by default).
Optional: {}

TemporalDevServer #

TemporalDevServer is the Schema for the temporaldevservers API.

FieldDescriptionDefaultValidation
apiVersion stringtemporal.bmor10.com/v1alpha1
kind stringTemporalDevServer
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec TemporalDevServerSpecspec defines the desired state of TemporalDevServerRequired: {}

TemporalDevServerSpec #

TemporalDevServerSpec defines the desired state of TemporalDevServer.

A TemporalDevServer runs a single-pod, disposable temporal server start-dev instance backed by SQLite. It is NOT for production use.

Appears in:

FieldDescriptionDefaultValidation
version stringVersion is the Temporal server version to run, e.g. “1.31.1”. The operator
maps it to the matching temporalio/temporal CLI image via the supported
version matrix. When empty, the latest supported server version is used.
Use Image to pin a specific CLI image directly.
Optional: {}
image stringImage overrides the full image reference. Default
temporalio/temporal:.
Optional: {}
imagePullSecrets LocalObjectReference arrayImagePullSecrets references secrets for pulling the image.Optional: {}
namespaces string arrayNamespaces are extra Temporal namespaces created at startup, in addition
to the always-present “default” namespace. These are created once at boot
with no drift management; use TemporalNamespace CRs for managed namespaces.
Optional: {}
ui DevServerUISpecUI controls the bundled Temporal Web UI (port 8233).Optional: {}
storage DevServerStorageSpecStorage selects ephemeral (default) or PVC-backed SQLite storage.Optional: {}
service ServiceExposureSpecService configures how the frontend/UI Service is exposed.Optional: {}
resources ResourceRequirementsResources sets the dev server container resource requirements.Optional: {}
nodeSelector object (keys:string, values:string)NodeSelector constrains the dev server pod to matching nodes.Optional: {}
tolerations Toleration arrayTolerations applied to the dev server pod.Optional: {}
affinity AffinityAffinity applied to the dev server pod.Optional: {}
workflowRunPolicy WorkflowRunPolicyWorkflowRunPolicy gates operator-initiated TemporalWorkflowRun executions
against this dev server. Absent means enabled with no allowlist.
Optional: {}

TemporalNamespace #

TemporalNamespace is the Schema for the temporalnamespaces API.

FieldDescriptionDefaultValidation
apiVersion stringtemporal.bmor10.com/v1alpha1
kind stringTemporalNamespace
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec TemporalNamespaceSpecspec defines the desired state of TemporalNamespaceRequired: {}

TemporalNamespaceSpec #

TemporalNamespaceSpec defines the desired state of TemporalNamespace.

Appears in:

FieldDescriptionDefaultValidation
clusterRef ClusterReferenceClusterRef references the TemporalCluster or TemporalDevServer that owns
this namespace.
retentionPeriod DurationRetentionPeriod is how long closed workflows are retained.72hOptional: {}
description stringDescription is a human-friendly description of the namespace.Optional: {}
ownerEmail stringOwnerEmail is the owner contact for the namespace.Optional: {}
allowDeletion booleanAllowDeletion permits the operator to delete the Temporal namespace when
the CR is deleted. When false, the namespace is left in place.
Optional: {}
driftDetection stringDriftDetection controls whether the operator reconciles drift between the
spec and the live namespace.
reconcileEnum: [reconcile ignore]
Optional: {}
isGlobal booleanIsGlobal marks the namespace as global for multi-cluster replication.Optional: {}
clusters string arrayClusters lists the cluster names this namespace is replicated to. Only
meaningful when IsGlobal is true.
Optional: {}
activeCluster stringActiveCluster is the authoritative cluster for this namespace. Changing it
triggers an operator-executed failover. Only meaningful when IsGlobal.
Optional: {}

TemporalSchedule #

TemporalSchedule is the Schema for the temporalschedules API.

FieldDescriptionDefaultValidation
apiVersion stringtemporal.bmor10.com/v1alpha1
kind stringTemporalSchedule
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec TemporalScheduleSpecRequired: {}

TemporalScheduleSpec #

TemporalScheduleSpec defines the desired state of TemporalSchedule.

Appears in:

FieldDescriptionDefaultValidation
clusterRef ClusterReferenceClusterRef references the TemporalCluster or TemporalDevServer that hosts this schedule.
namespace stringNamespace is the Temporal namespace the schedule lives in.
scheduleID stringScheduleID is the Temporal schedule ID. Defaults to metadata.name.
Immutable once set.
Optional: {}
allowDeletion booleanAllowDeletion permits the operator to delete the Temporal schedule when
the CR is deleted. When false, the schedule is left in place.
Optional: {}
schedule ScheduleSpecSchedule describes when the action fires.
action ScheduleActionSpecAction describes what to do when the schedule fires.
policies SchedulePoliciesSpecPolicies tunes overlap/catchup/pause-on-failure behavior.Optional: {}
state ScheduleStateSpecState controls pause and action-limit state.Optional: {}

TemporalSearchAttribute #

TemporalSearchAttribute is the Schema for the temporalsearchattributes API.

FieldDescriptionDefaultValidation
apiVersion stringtemporal.bmor10.com/v1alpha1
kind stringTemporalSearchAttribute
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec TemporalSearchAttributeSpecspec defines the desired state of TemporalSearchAttributeRequired: {}

TemporalSearchAttributeSpec #

TemporalSearchAttributeSpec defines the desired state of TemporalSearchAttribute.

Appears in:

FieldDescriptionDefaultValidation
clusterRef ClusterReferenceClusterRef references the TemporalCluster or TemporalDevServer this search attribute belongs to.
namespace stringNamespace is the Temporal namespace to register the attribute in.
name stringName is the search attribute name.
type stringType is the search attribute type. Immutable once created.Enum: [Keyword Text Int Double Bool Datetime KeywordList]
allowDeletion booleanAllowDeletion permits the operator to remove the search attribute from the
namespace when the CR is deleted.
Optional: {}

TemporalWorkflowRun #

TemporalWorkflowRun is the Schema for the temporalworkflowruns API.

FieldDescriptionDefaultValidation
apiVersion stringtemporal.bmor10.com/v1alpha1
kind stringTemporalWorkflowRun
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec TemporalWorkflowRunSpecRequired: {}

TemporalWorkflowRunSpec #

TemporalWorkflowRunSpec defines the desired state of a one-off workflow run.

Appears in:

FieldDescriptionDefaultValidation
clusterRef ClusterReferenceClusterRef references the TemporalCluster or TemporalDevServer that runs
the workflow. Resolved in the same Kubernetes namespace as this CR.
namespace stringNamespace is the Temporal namespace to start the workflow in.
workflow StartWorkflowActionWorkflow describes the one-off workflow to start. Immutable after create.
ttlSecondsAfterFinished integerTTLSecondsAfterFinished, when set, deletes this CR that many seconds after
the workflow reaches a terminal state. Unset keeps the CR indefinitely.
Optional: {}
cancellationPolicy stringCancellationPolicy controls what happens to a still-running workflow when
this CR is deleted.
AbandonEnum: [Abandon Cancel Terminate]
Optional: {}

UIAuthSpec #

UIAuthSpec configures temporal-ui OIDC authentication.

Appears in:

FieldDescriptionDefaultValidation
enabled booleanfalse
entra EntraUIAuthSpecEntra derives ProviderURL from a Microsoft Entra tenant ID.Optional: {}
providerURL stringProviderURL is the OIDC issuer URL (set directly or via Entra).Optional: {}
clientID stringOptional: {}
clientSecretRef SecretKeyReferenceClientSecretRef references a Secret key holding the OIDC client secret.Optional: {}
scopes string arrayScopes default to [“openid”, “profile”, “email”].Optional: {}
callbackURL stringOptional: {}
extraEnv RawExtensionExtraEnv is a passthrough of additional temporal-ui auth env vars
(map of string to string).
Optional: {}

UICodecServerSpec #

UICodecServerSpec configures the temporal-ui codec server.

Appears in:

FieldDescriptionDefaultValidation
endpoint string
passAccessToken booleanOptional: {}
includeCredentials booleanOptional: {}

UIIngressSpec #

UIIngressSpec configures ingress for temporal-ui.

Appears in:

FieldDescriptionDefaultValidation
enabled booleanfalse
ingressClassName stringOptional: {}
host stringOptional: {}
annotations object (keys:string, values:string)Optional: {}
tlsSecretName stringOptional: {}

UISpec #

UISpec configures temporal-ui.

Appears in:

FieldDescriptionDefaultValidation
enabled booleanfalse
version stringOptional: {}
replicas integer1Minimum: 1
Optional: {}
ingress UIIngressSpecOptional: {}
auth UIAuthSpecAuth configures temporal-ui authentication (OIDC, e.g. Microsoft Entra).Optional: {}
codecServer UICodecServerSpecOptional: {}

UpgradeStatus #

UpgradeStatus reports the state of an in-progress version upgrade.

Appears in:

FieldDescriptionDefaultValidation
fromVersion stringOptional: {}
toVersion stringOptional: {}
phase stringOptional: {}
rollbackable booleanRollbackable is true until schema migration begins, after which a
rollback is no longer safe.
Optional: {}
startedAt TimeOptional: {}

WorkflowRunFailure #

WorkflowRunFailure carries failure detail for non-success terminal states.

Appears in:

FieldDescriptionDefaultValidation
message stringOptional: {}
type stringOptional: {}

WorkflowRunPolicy #

WorkflowRunPolicy is a per-target opt-in gate controlling operator-initiated workflow runs. It is declared on a TemporalCluster or TemporalDevServer by the cluster owner. Defaults differ per kind and are applied by the controller’s target resolver, not by kubebuilder defaults, so an absent policy is meaningful: disabled for TemporalCluster, enabled (no allowlist) for TemporalDevServer.

Appears in:

FieldDescriptionDefaultValidation
enabled booleanEnabled permits operator-initiated workflow runs against this target.Optional: {}
allowedNamespaces string arrayAllowedNamespaces optionally restricts which Temporal namespaces runs may
target. Empty means any namespace is allowed.
Optional: {}
allowedTaskQueues string arrayAllowedTaskQueues optionally restricts which task queues runs may use.
Empty means any task queue is allowed.
Optional: {}