Prepare the installation environment
Complete these steps before you install the automation orchestrator operator. You must provision PostgreSQL and create database Secrets regardless of the installation method you choose.
Procedure
Kubernetes Secrets for automation orchestrator
Use this reference to look up the format of each Kubernetes Secret that the automation orchestrator operator reads. Create these Secrets in the target namespace before you deploy the AutomationOrchestrator custom resource.
Overview
The automation orchestrator operator auto-generates optional secrets when you do not provide them. These include JWT signing keys, the credential encryption key, the Redis password, and the initial admin password. If your security policy requires you to provide your own, create the Secrets listed below. Reference them in the spec.secrets section of the AutomationOrchestrator custom resource.
The automation orchestrator operator watches all Secrets and ConfigMaps referenced by the custom resource. When you update a referenced Secret or ConfigMap, the operator detects the change. It triggers a rolling restart of affected pods.
Required: PostgreSQL credentials for the backend database
apiVersion: v1
kind: Secret
metadata:
name: orchestrator-pg-credentials
namespace: automation-orchestrator
type: Opaque
stringData:
database: "orchestrator"
username: "orchestrator_user"
password: "your-secure-password"Required: PostgreSQL credentials for the Temporal database
apiVersion: v1
kind: Secret
metadata:
name: temporal-pg-credentials
namespace: automation-orchestrator
type: Opaque
stringData:
database: "temporal"
username: "temporal_user"
password: "your-secure-password"Optional: PostgreSQL CA certificate
Required when sslMode is verify-ca or verify-full:
apiVersion: v1
kind: Secret
metadata:
name: orchestrator-pg-ca
namespace: automation-orchestrator
type: Opaque
data:
ca.crt: base64-encoded-CA-certificateOptional: PostgreSQL client certificate for mutual TLS
Required when the PostgreSQL server enforces mutual TLS (mTLS) client certificate authentication. Only valid when sslMode is require, verify-ca, or verify-full.
apiVersion: v1
kind: Secret
metadata:
name: orchestrator-pg-client-cert
namespace: automation-orchestrator
type: kubernetes.io/tls
data:
tls.crt: base64-encoded-client-certificate
tls.key: base64-encoded-client-private-keyThe automation orchestrator operator mounts this certificate into the backend, worker, and Temporal components.
Optional: S3 access credentials
If your S3-compatible endpoint requires authentication, create a Secret with the access credentials. Reference this Secret in spec.fileStorage.credentialSecretRef on the AutomationOrchestrator custom resource.
apiVersion: v1
kind: Secret
metadata:
name: s3-credentials
namespace: automation-orchestrator
type: Opaque
stringData:
access-key-id: "your-access-key-id"
secret-access-key: "your-secret-access-key"Optional: S3 endpoint CA certificate
Required when the S3 endpoint uses a private CA:
apiVersion: v1
kind: Secret
metadata:
name: s3-ca-cert
namespace: automation-orchestrator
type: Opaque
data:
ca.crt: base64-encoded-CA-certificateOptional: JWT primary signing key
ES256 (ECDSA P-256). For details on the signing algorithm and key rotation, see Authentication security.
apiVersion: v1
kind: Secret
metadata:
name: my-jwt-primary
namespace: automation-orchestrator
type: Opaque
data:
jwt-primary.pem: base64-encoded-PKCS8-EC-private-keyOptional: JWT backup signing key
Same format as the primary key, for key rotation:
apiVersion: v1
kind: Secret
metadata:
name: my-jwt-backup
namespace: automation-orchestrator
type: Opaque
data:
jwt-backup.pem: base64-encoded-PKCS8-EC-private-keyOptional: Credential encryption key
64-character hex string (32 bytes) for AES-256-GCM:
apiVersion: v1
kind: Secret
metadata:
name: my-encryption-key
namespace: automation-orchestrator
type: Opaque
stringData:
secret-encryption-key: "64-character-hex-string"To generate a valid encryption key:
$ openssl rand -hex 32Optional: Redis password
apiVersion: v1
kind: Secret
metadata:
name: my-redis-password
namespace: automation-orchestrator
type: Opaque
stringData:
password: "your-secure-redis-password"Optional: Initial admin password
Set the password for the admin user that the operator creates during the first deployment. When you omit this Secret, the automation orchestrator operator generates a random password. You can retrieve the auto-generated password after deployment completes. See Retrieve the initial admin password.
apiVersion: v1
kind: Secret
metadata:
name: my-admin-password
namespace: automation-orchestrator
type: Opaque
stringData:
password: "your-secure-admin-password"The operator uses the initial admin password only during the first deployment. After the admin user exists, changing or deleting this Secret has no effect.