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 authorizer and claim mapper.

Appears in:

FieldDescriptionDefaultValidation
authorizer stringOptional: {}
claimMapper stringOptional: {}
config RawExtensionConfig is a passthrough for authorization provider configuration.Optional: {}

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: {}

ClusterMetadataSpec #

ClusterMetadataSpec is a passthrough for multi-cluster metadata.

Appears in:

FieldDescriptionDefaultValidation
raw RawExtensionOptional: {}

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: {}

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 RawExtensionValue is an arbitrary JSON value for the dynamic config key.
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: {}

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: {}

IssuerReference #

IssuerReference references a cert-manager Issuer or ClusterIssuer.

Appears in:

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

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: {}

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.

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: {}

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: {}

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: {}

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: {}

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 LocalObjectReferenceClusterRef references the TemporalCluster to generate client credentials for.
secretName stringSecretName is the name of the Secret to write generated client credentials into.
Defaults to the resource name when empty.
Optional: {}

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 is a passthrough for multi-cluster setup.Optional: {}
preventDeletion booleanPreventDeletion, when true, blocks deletion of the cluster via the
validating webhook as a safety measure.
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 LocalObjectReferenceClusterRef references the TemporalCluster 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: {}

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 LocalObjectReferenceClusterRef references the TemporalCluster 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: {}

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 RawExtensionAuth is a passthrough for temporal-ui authentication config.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: {}