Automation orchestrator system requirements

Review the cluster requirements, external dependencies, and credentials you must prepare before you install automation orchestrator.

Supported platforms

Automation orchestrator requires Red Hat OpenShift Container Platform. The operator creates a Route for external access automatically.

Automation orchestrator supports both x86_64 and ARM64 architectures. No elevated cluster permissions are required.

Internal service communication

Automation orchestrator secures all internal communication between backend components using mutual TLS (mTLS). The operator generates a self-signed certificate authority (CA) and per-service certificates automatically during installation. No additional configuration is required for the default path.

If your organization requires certificates from a specific CA, you can provide your own CA certificate and per-service TLS certificates. For details, see Provide your own internal TLS certificates

Cluster requirements

  • Red Hat OpenShift Container Platform 4.14 or later.
  • Operator Lifecycle Manager (OLM) installed on the cluster.
  • Sufficient cluster resources to run the automation orchestrator components. For default CPU and memory requirements per component, see Default resource requirements
Table 1. Minimum cluster sizing for automation orchestrator
Topology Worker nodes CPU per node RAM per node Disk per node
Growth / Single Node OpenShift (non-production) 1 8 32 GB 128 GB, 3000 IOPS
Enterprise (co-located, independent, or air-gapped) 2 8 16 GB 128 GB, 3000 IOPS

External dependencies

  1. PostgreSQL 15 (required): Provide your own PostgreSQL 15 instance. This is the supported production configuration. Create the following databases:

    • A database for the automation orchestrator backend (for example, orchestrator).
    • A database for the Temporal workflow engine (for example, temporal). The automation orchestrator operator automatically creates an additional temporal_visibility database using the same connection credentials.
    • A PostgreSQL user with permissions to create tables and run migrations on all three databases (backend, temporal, and temporal_visibility).
    • Use TLS connections for production deployments. The default SSL mode is require.
    • For high-availability setups, provide a single connection endpoint (for example, through Patroni VIP, PgBouncer, or a Kubernetes Service fronting an HA cluster).
    • If all databases share one PostgreSQL instance, increase max_connections above the default of 100. Each component replica opens up to poolSize + maxOverflow connections (default: 30) across each database. The background worker also opens database connections and is included in the recommendations below. Set max_connections based on your total replica count:

      Table 2. Recommended max_connections by replica count
      Backend replicas Worker replicas Recommendedmax_connections
      2 2 230
      2 4 330
      4 8 530

      These values assume 1 background worker replica and default pool settings (poolSize=20, maxOverflow=10). The background worker scales automatically based on CPU usage, up to 5 replicas by default. Add 30 connections per additional background worker replica when you calculate max_connections for your peak load. With the default maximum of 5 replicas, plan for up to 150 background worker connections at peak load. If you increase pool settings in the custom resource, increase max_connections proportionally. Each connection slot adds approximately 5-10 MB of memory overhead on the PostgreSQL server. If you host databases on separate PostgreSQL instances, adjust each instance's max_connections accordingly.

    • If you do not have an existing PostgreSQL provider, you can use the aapctl CLI to provision PostgreSQL with CloudNativePG. Red Hat does not provide support for CloudNativePG. The aapctl CloudNativePG template sets max_connections to 200 by default, so no manual adjustment is required. See Alternative: Provision PostgreSQL with CloudNativePG.
  2. S3-compatible object storage (optional): Provide an S3-compatible endpoint for file uploads. Automation orchestrator stores uploaded files in S3-compatible object storage. If you do not configure S3, file upload requests return HTTP 503. Configure the endpoint and credentials in spec.fileStorage on the AutomationOrchestrator custom resource. See File storage (S3) for the full field reference.

  3. Red Hat OpenTelemetry operator (optional): Install the Red Hat build of the OpenTelemetry operator to collect audit events and telemetry data from automation orchestrator. The aapctl CLI can install the OpenTelemetry operator and deploy a collector automatically. See Enable OpenTelemetry collection with aapctl.

  4. Network connectivity: Outbound HTTPS access is required if you configure large language model (LLM) provider integrations. Inbound HTTPS is handled by the Route that exposes the application.

Secrets and credentials

Create the following Kubernetes Secrets in the target namespace and reference them in the AutomationOrchestrator custom resource. If you use aapctl with CloudNativePG enabled, aapctl creates the PostgreSQL secrets automatically (see Provision PostgreSQL with CloudNativePG).

Required secrets (customer-provided):

Table 3. Required Kubernetes Secrets
Custom resource (CR) field Secret keys Required
spec.postgres.backendDatabase.secretRef database,username,password Yes
spec.postgres.temporalDatabase.secretRef database,username,password Yes (also used for the temporal_visibility database)
spec.postgres.caCertSecretRef ca.crt Only whensslMode isverify-ca orverify-full
spec.postgres.clientCertSecretRef tls.crt,tls.key Only for mutual TLS (mTLS) with PostgreSQL. RequiressslMode set torequire,verify-ca, orverify-full.
spec.imagePullSecrets[].name .dockerconfigjson Only when pulling images from private registries
spec.otel.apiKeySecretRef api-key Only when using API key authentication with the OpenTelemetry endpoint
spec.otel.caCertSecretRef ca.crt Only when the OpenTelemetry endpoint uses a private CA
spec.otel.clientCertSecretRef tls.crt,tls.key Only for mTLS authentication with the OpenTelemetry collector
spec.tls.caSecretRef ca.crt Only when providing your own internal TLS certificates
spec.tls.backendCertSecretRef tls.crt,tls.key Only when providing your own internal TLS certificates
spec.tls.workerCertSecretRef tls.crt,tls.key Only when providing your own internal TLS certificates
spec.tls.backgroundWorkerCertSecretRef tls.crt,tls.key Only when providing your own internal TLS certificates
spec.tls.temporalCertSecretRef tls.crt,tls.key Only when providing your own internal TLS certificates
spec.tls.uiCertSecretRef tls.crt,tls.key Only when providing your own internal TLS certificates
spec.fileStorage.credentialSecretRef access-key-id,secret-access-key Only when S3 file storage requires authentication
spec.fileStorage.caCertSecretRef ca.crt Only when the S3 endpoint uses a private CA

Application secrets (auto-generated or customer-provided):

The automation orchestrator operator auto-generates the following secrets when you do not provide them. Auto-generated secrets are automatically deleted when you delete the custom resource.

Table 4. Auto-generated application secrets
CR field Secret keys Default generated name Description
spec.secrets.jwtPrimaryKeySecretRef jwt-primary.pem {cr-name}-jwt-primary ES256 (ECDSA P-256) private key for JWT signing
spec.secrets.jwtBackupKeySecretRef jwt-backup.pem {cr-name}-jwt-backup ES256 (ECDSA P-256) backup private key for JWT key rotation
spec.secrets.secretEncryptionKeySecretRef secret-encryption-key {cr-name}-secret-encryption-key 64-character hex string (32 bytes) for AES-256-GCM credential encryption
spec.secrets.redisPasswordSecretRef password {cr-name}-redis-password Redis authentication password. Redis always runs with authentication enabled.
spec.secrets.initialAdminPasswordSecretRef password {cr-name}-initial-admin-password Initial password for the built-in admin user account.
spec.tls.caSecretRef ca.crt {cr-name}-internal-ca Internal CA certificate for service-to-service mTLS
spec.tls.backendCertSecretRef tls.crt,tls.key {cr-name}-backend-tls Backend service TLS certificate
spec.tls.workerCertSecretRef tls.crt,tls.key {cr-name}-worker-tls Worker service TLS certificate
spec.tls.backgroundWorkerCertSecretRef tls.crt,tls.key {cr-name}-background-worker-tls Background worker service TLS certificate
spec.tls.temporalCertSecretRef tls.crt,tls.key {cr-name}-temporal-tls Temporal server TLS certificate
spec.tls.uiCertSecretRef tls.crt,tls.key {cr-name}-ui-tls UI service TLS certificate

For details on how internal TLS works and certificate requirements, see Understand internal TLS. For the full spec.tls field reference, see Installation reference.