Understand the air-gapped topology

In an air-gapped deployment, automation orchestrator runs in a disconnected environment with no outbound internet access from the cluster.

Understand how this topology works

You deploy automation orchestrator on an OpenShift cluster that has no outbound internet access. You mirror container images from a connected environment to an internal registry by using oc-mirror. Automation orchestrator is delivered through the Red Hat operators catalog provided by OpenShift Container Platform, so no product-specific offline configuration is required.

This topology is an extension of the independent deployment model. The same component architecture, authentication flow, and job dispatch mechanism apply. The key difference is how container images and operator catalogs reach the cluster.

Understand disconnected considerations

The following services behave differently in a disconnected environment.

LLM providers

Automation orchestrator supports any OpenAI-compliant API host. In a disconnected environment, you can use a locally hosted LLM provider that is network-reachable from the cluster. Cloud-hosted LLM providers are not available without outbound internet access.

Business telemetry

Automation orchestrator sends anonymous usage telemetry to Red Hat. In a disconnected environment, this telemetry is unavailable. Automation orchestrator continues to operate normally without it.

Operator catalog

Automation Orchestrator is part of the Red Hat operators catalog provided by OpenShift Container Platform. In a disconnected environment, you mirror this catalog to an internal registry by using oc-mirror. No additional catalog sources are required.

Understand authentication and job dispatch

Authentication and job dispatch work the same way as in the independent topology. Automation orchestrator connects to automation gateway on port 443 for OpenID Connect (OIDC) authentication and job dispatch to automation controller. The Ansible Automation Platform cluster must be network-reachable from the automation orchestrator cluster within the disconnected network.

Identify component boundaries

The component boundaries are the same as the independent topology, with the addition of image mirroring infrastructure.

Automation orchestrator cluster

The automation orchestrator operator manages all automation orchestrator application services, internal mutual TLS (mTLS) certificates, and the OpenShift Route for external access. Container images are pulled from the internal registry.

Ansible Automation Platform cluster

The Ansible Automation Platform operator manages automation gateway, automation controller, and their associated services. Both clusters must be within the same disconnected network.

Customer-managed

Internal container registry (required), external PostgreSQL 15 database (required), S3-compatible storage (optional), and a connected workstation with oc-mirror for image mirroring. All external dependencies must be within the disconnected network.

Air-gapped infrastructure topology

Review the infrastructure topology for an air-gapped deployment to understand how automation orchestrator components connect within a disconnected environment.

Review the infrastructure topology

The following diagram shows all automation orchestrator components on a disconnected OpenShift cluster, the image mirroring path from a connected environment, and the customer-managed dependencies within the disconnected network.

Figure 1. Air-gapped infrastructure topology
Infrastructure topology diagram showing automation orchestrator on a disconnected OpenShift cluster with an internal container registry, image mirroring path from a connected workstation, and all dependencies within the disconnected network boundary.

Read the diagram

The diagram uses the following conventions.

Disconnected network boundary

The outer boundary that separates the disconnected environment from the internet. No outbound internet access is available from within this boundary.

Automation orchestrator cluster

A disconnected OpenShift cluster containing all automation orchestrator components. Container images are pulled from the internal registry instead of external registries.

Internal container registry

A customer-managed registry within the disconnected network that stores mirrored container images. The OpenShift cluster pulls all images from this registry.

Image mirroring path

The path from a connected workstation through an air gap to the internal registry. You use oc-mirror on a connected workstation to download images, transfer them across the air gap, and push them to the internal registry.

Ansible Automation Platform cluster

A separate cluster within the disconnected network running automation gateway and automation controller. Automation orchestrator connects on port 443 for OpenID Connect (OIDC) authentication and job dispatch.

External dependencies

Customer-managed services within the disconnected network: PostgreSQL 15 database (required), S3-compatible storage (optional), and locally hosted LLM provider (optional).

Review key connections

All connections in this topology are within the disconnected network. No outbound internet access is required after the initial image mirroring.

  • Automation orchestrator connects to automation gateway on port 443 for OIDC authentication and job dispatch.
  • Automation orchestrator connects to its own external PostgreSQL 15 database on port 5432.
  • The OpenShift cluster pulls container images from the internal registry.
  • If you configure a locally hosted LLM provider, automation orchestrator backend pods connect to the provider endpoint over HTTPS.

Air-gapped topology components

Review the components that make up an air-gapped deployment, including automation orchestrator pods, image mirroring infrastructure, and customer-managed dependencies within the disconnected network.

Review automation orchestrator components

The automation orchestrator operator deploys and manages the following components on the disconnected cluster. All internal communication is secured with mutual TLS (mTLS). Container images are pulled from the internal registry.

Table 1. Automation orchestrator components
Count Component Description
1 Backend service Processes API requests and coordinates communication with external services.
1 Worker Runs workflow tasks.
1 Background worker Runs scheduled jobs and maintenance tasks.
1 Temporal workflow engine Coordinates workflow execution and scheduling.
1 Web UI Serves the automation orchestrator browser interface.
1 Redis Provides internal caching and message passing.

Identify image mirroring infrastructure

You provision and manage the following infrastructure to deliver container images to the disconnected cluster.

Table 2. Image mirroring components
Component Description
Internal container registry A registry within the disconnected network that stores mirrored container images. The OpenShift cluster pulls all images from this registry.
Connected workstation A workstation with internet access andoc-mirror installed. You use this workstation to download images and transfer them across the air gap.
OLM CatalogSource A CatalogSource custom resource that points Operator Lifecycle Manager (OLM) to the mirrored Red Hat operators catalog in the internal registry.

Review external Ansible Automation Platform components

The following Ansible Automation Platform components run on a separate cluster within the disconnected network.

Table 3. Ansible Automation Platform components used by automation orchestrator
Component Role in this topology
Automation gateway Provides OIDC authentication and serves as the API entry point for job dispatch. Automation orchestrator connects on port 443 within the disconnected network.
automation controller Executes automation jobs dispatched by automation orchestrator through automation gateway.

Automation orchestrator does not connect to automation hub or Event-Driven Ansible.

Identify customer-managed external dependencies

You provision and manage the following services within the disconnected network.

Table 4. External dependencies
Component Required Description
PostgreSQL 15 database Yes Stores automation orchestrator application data. Must be within the disconnected network.
S3-compatible storage No Provides persistent storage for workflow artifacts. Must be within the disconnected network.
LLM provider No A locally hosted OpenAI-compliant API provider within the disconnected network. Cloud-hosted providers are not available without outbound internet access.

Air-gapped tested system configurations

Review the tested system configurations for an air-gapped deployment to verify that your disconnected environment meets the requirements before you install.

Review tested configurations

The following table lists the infrastructure components and versions tested with automation orchestrator in an air-gapped deployment.

Table 5. Tested system configurations
Type Description Notes
Subscription Valid Red Hat Ansible Automation Platform subscription Required for the automation orchestrator cluster.
Red Hat OpenShift Container Platform Red Hat OpenShift Container Platform 4.14 - 4.22. The OpenShift Container Platform version must be within the Red Hat supported lifecycle. For details on which versions are supported, see the OpenShift Container Platform Life Cycle Policy Supports x86_64 and ARM64 architectures. The cluster must be configured for disconnected operation. For minimum cluster sizing, seeCluster requirements.
Ansible Automation Platform Deployed on a separate cluster within the disconnected network Review theRed Hat Ansible Automation Platform system requirements for the minimum supported version. Must be reachable on port 443 within the disconnected network.
Database PostgreSQL 15 Customer-provided, within the disconnected network. Sizemax_connections based on the number of backend replicas.
Internal container registry Any container registry accessible from the OpenShift cluster Required. Stores mirrored container images and the Red Hat operators catalog.
oc-mirror OpenShift CLI plugin for mirroring images Required on a connected workstation. SeeMirroring images for a disconnected installation using the oc-mirror plugin for version compatibility.
S3-compatible storage Any S3-compatible object storage provider Optional. Must be within the disconnected network.
LLM provider Any locally hosted OpenAI-compliant API provider Optional. Must be within the disconnected network. Cloud-hosted providers are not available.

Air-gapped network ports and protocols

Review the network ports and protocols used by automation orchestrator in an air-gapped deployment to configure firewall rules within the disconnected network.

Review network ports within the disconnected network

All traffic in this topology stays within the disconnected network. No outbound internet access is required after the initial image mirroring.

Table 6. Network ports
Port Protocol Source Destination Purpose
443 HTTPS External clients OpenShift Route All external user and API traffic to automation orchestrator. TLS terminates at the Route.
443 HTTPS Automation orchestrator backend Automation gateway OIDC authentication and job dispatch to automation controller within the disconnected network.
5432 TCP Automation orchestrator backend PostgreSQL database Application data storage within the disconnected network.
443 or 5000 HTTPS OpenShift cluster nodes Internal container registry Container image pulls. Port depends on your registry configuration.
443 HTTPS Automation orchestrator backend S3-compatible storage Workflow artifact storage. Required only if S3 storage is configured within the disconnected network.
443 HTTPS Automation orchestrator backend Local LLM provider Large language model API requests. Required only if a locally hosted LLM provider is configured.

Review internal network ports

The following ports handle traffic between automation orchestrator components within the cluster. All internal traffic is secured with mutual TLS (mTLS) using operator-generated certificates.

Table 7. Internal network ports
Port Protocol Source Destination Purpose
6379 TCP Automation orchestrator backend Redis Caching and internal message queuing.
8443 TCP OpenShift monitoring Automation orchestrator metrics endpoint

Prometheus metrics scraping for the operator pod. The operator creates an allow-metrics-traffic NetworkPolicy to allow cross-namespace traffic on this port. For workload pod metrics and the full list of operator-managed NetworkPolicies, see Automation orchestrator operator-managed NetworkPolicies.

For the complete list of NetworkPolicy resources that the operator creates for each component, see Automation orchestrator operator-managed NetworkPolicies.

Air-gapped example custom resource

Use this example AutomationOrchestrator custom resource as a starting point for an air-gapped deployment in a disconnected environment.

Review the example custom resource

The following example shows an AutomationOrchestrator custom resource (CR) configured for an air-gapped deployment. All referenced services must be within the disconnected network. Edit the values to match your environment before you apply the CR.

apiVersion: aap.ansible.com/v1alpha1
  kind: AutomationOrchestrator
  metadata:
    name: my-orchestrator
    namespace: automation-orchestrator
  spec:
    postgres:
      host: pg.internal.example.com
      port: 5432
      sslMode: verify-full
      backendDatabase:
        secretRef:
          name: orchestrator-pg-credentials
      temporalDatabase:
        secretRef:
          name: temporal-pg-credentials
      temporalVisibilityDatabase:
        secretRef:
          name: temporal-visibility-pg-credentials
      caCertSecretRef:
        name: orchestrator-pg-ca
    ingress:
      host: orchestrator.apps.internal.example.com
    imagePullSecrets:
      - name: internal-registry-pull-secret
    backend:
      replicas: 2
    ui:
      replicas: 2
    worker:
      replicas: 2

Configure required fields

Configure the following fields for every air-gapped deployment.

postgres

Connection details for your external PostgreSQL 15 database host within the disconnected network. You must provide separate credential secrets for three databases: orchestrator (backend), temporal , and temporal_visibility . Use verify-full SSL mode with a CA certificate to secure the database connection. Automation orchestrator does not share Ansible Automation Platform databases.

ingress.host

The hostname for the OpenShift Route. Set this to a DNS name that resolves within the disconnected network.

imagePullSecrets

A reference to a Kubernetes secret containing credentials for your internal container registry. Required if the registry requires authentication.

Create the registry pull secret

Create a Kubernetes secret for the internal registry credentials before you apply the CR.

oc create secret docker-registry internal-registry-pull-secret
    --namespace automation-orchestrator
    --docker-server=registry.internal.example.com
    --docker-username=REPLACE_WITH_USERNAME
    --docker-password=REPLACE_WITH_PASSWORD

Configure optional fields

Uncomment and configure the following fields based on your requirements. In an air-gapped deployment, all optional services must be within the disconnected network.

fileStorage

S3-compatible object storage for workflow artifacts and context files used by agent task nodes. Must be within the disconnected network. If you omit this section, file upload operations return an error.

otel

OpenTelemetry export configuration for sending audit events to a collector. Requires a network-accessible OpenTelemetry Collector endpoint on port 4318 within the disconnected network.

secrets

References to pre-created secrets for JWT signing keys, the credential encryption key, the Redis password, and the initial admin password. The operator auto-generates these secrets if you do not provide them.

tls

References to customer-provided internal TLS certificates. The operator generates a self-signed CA and per-service certificates if you do not provide them.

Mirror images for a disconnected environment

Mirror the automation orchestrator container images and operator catalog to an internal registry so that you can install in an air-gapped environment.

Before you begin

  • A connected workstation with internet access and oc-mirror installed.
  • An internal container registry within the disconnected network that is accessible from the OpenShift cluster.
  • A method to transfer files across the air gap (removable media, one-way data transfer, or similar).
  • oc CLI access to the disconnected OpenShift cluster.

About this task

Automation orchestrator is delivered through the Red Hat operators catalog provided by OpenShift Container Platform. You mirror this catalog and the required container images to your internal registry by using oc-mirror. This follows the standard Red Hat operator mirroring procedure.

Procedure

  1. Create an ImageSetConfiguration file on the connected workstation that includes the Red Hat operators catalog.
    apiVersion: mirror.openshift.io/v1alpha2
    kind: ImageSetConfiguration
    mirror:
      operators:
        - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14
          packages:
            - name: ansible-automation-platform-operator

    Replace v4.14 with the version tag that matches your OpenShift cluster version.

  2. Run oc-mirror to download the images to a local directory on the connected workstation.
    oc mirror --config=imageset-config.yaml \
      file://output-dir
  3. Transfer the output directory across the air gap to a system that can reach the internal registry.
  4. Push the mirrored images from the transferred directory to the internal registry.
    oc mirror --from=file://output-dir \
      docker://registry.internal.example.com
  5. Apply the generated ImageContentSourcePolicy or ImageDigestMirrorSet to the disconnected OpenShift cluster.

    The oc-mirror command generates these resources in the output directory. Apply them to redirect image pulls to your internal registry.

    oc apply -f output-dir/results-*/
  6. Create or update the CatalogSource to point to the mirrored catalog in the internal registry.
    apiVersion: operators.coreos.com/v1alpha1
    kind: CatalogSource
    metadata:
      name: redhat-operators
      namespace: openshift-marketplace
    spec:
      sourceType: grpc
      image: registry.internal.example.com/redhat/redhat-operator-index:v4.14
      displayName: Red Hat Operators
      publisher: Red Hat
  7. Verify that the CatalogSource is ready.
    oc get catalogsource redhat-operators -n openshift-marketplace

    The output shows the CatalogSource with a status of READY.

Results

The automation orchestrator container images and operator catalog are available in the internal registry.

What to do next

Install the operator from the OpenShift CLI. The operator pulls images from the internal registry instead of external registries.