Install in an air-gapped environment
You can install self-service automation portal in a disconnected OpenShift Container Platform environment.
Installing the self-service automation portal in a disconnected or air-gapped OpenShift Container Platform environment requires preparation and configuration to ensure all necessary container images and assets are available locally without internet access.
Prerequisites Copy linkLink copied!
Gather the required tools and access credentials necessary for air-gapped installation. This includes the OpenShift CLI, Helm, Podman, and required registry secrets.
- You have installed the OpenShift CLI (
oc). - You have installed Helm 3.10 or newer.
- You have installed and configured Podman for pulling and pushing container images.
- You have internet access. This is required to pull images and charts from public repositories, including
registry.redhat.ioandcharts.openshift.io. - A Red Hat pull secret, for exmaple
pull-secret.jsonor similar credentials file that allows you to pull images fromregistry.redhat.io. - Sufficient disk space to store downloaded images and chart packages.
- Access to public registries: Docker Hub,
quay.io,registry.redhat.io, and your disconnected OpenShift cluster’s internal registry.
Prepare for air-gapped installation Copy linkLink copied!
Before you can install self-service automation portal in a disconnected OpenShift Container Platform environment, you must complete some processes on a connected bastion host.
Mirror container images Copy linkLink copied!
Mirror the required container images from the Red Hat registry to your local disconnected registry. This step prepares the images for installing self-service automation portal in an isolated environment.
About this task Copy linkLink copied!
If you mirror registry.redhat.io content to a different registry host (or to a registry prefix such as quay.io/<org>), you can set redhat-developer-hub.global.imageRegistry so the Helm chart pulls all of its images from that mirrored location. imageRegistry is a single override that controls the registry for the base application image, PostgreSQL image, OCI plug-in artifacts, and Ansible Dev Tools sidecar.
The dynamic plug-in init container does not use cluster-level image mirror configuration (for example, ImageDigestMirrorSet or ImageTagMirrorSet). You must set imageRegistry even if your cluster redirects registry.redhat.io pulls.
Procedure Copy linkLink copied!
Download the helm chart package Copy linkLink copied!
Download the Helm chart package and modify the internal image references to point to your disconnected registry. This prepares the installation package for the air-gapped environment.
Procedure Copy linkLink copied!
Transfer assets to the disconnected environment Copy linkLink copied!
Transfer the modified Helm chart package from the connected bastion host to a machine inside your disconnected network. This action stages the installation assets for deployment within the isolated OpenShift environment.
Procedure Copy linkLink copied!
.tgz file or files (for example, redhat-rhaap-portal-1.0.1.tgz) from your connected bastion host to a machine or jump box within your disconnected OpenShift network.
Install the Helm chart in the disconnected OpenShift environment Copy linkLink copied!
You can install the modified Helm chart using the helm install command in your disconnected OpenShift environment. This deploys the self-service automation portal using the locally available assets.
After preparing the disconnected environment with mirrored images and transferred assets, install the Helm chart to deploy the self-service automation portal.
Access the disconnected OpenShift environment Copy linkLink copied!
Ensure your disconnected OpenShift cluster is configured to trust the private registry containing the mirrored container images. This step is crucial for successful image pulling during installation.
Before you begin Copy linkLink copied!
- You have the necessary kubeconfig and permissions. For example
cluster-admin, for setting up image pull secrets or insecure registries.
About this task Copy linkLink copied!
Procedure Copy linkLink copied!
Configure plug-in delivery for disconnected environments Copy linkLink copied!
Complete one of the plug-in delivery methods for disconnected environments.
Procedure Copy linkLink copied!
<release-name>-dynamic-plugins-registry-auth secret with credentials for your disconnected registry that hosts the mirrored Ansible plug-ins OCI artifacts.
Install the Helm chart Copy linkLink copied!
Install self-service automation portal by using the helm install command. You must reference the local Helm chart file and include the required configuration using a values file (-f) or --set flags.
Procedure Copy linkLink copied!
Configure CA certificates for private registries Copy linkLink copied!
If your private registry uses a certificate signed by an internal or self-signed CA, the install-dynamic-plugins init container fails with x509: certificate signed by unknown authority. Mount the CA certificate into the init container so that skopeo trusts the registry.
Procedure Copy linkLink copied!
Verify the deployment Copy linkLink copied!
Verify the successful installation of the Helm chart in the disconnected environment. Check the Helm release status, monitor the pods, and verify that the application routes are accessible.
Procedure Copy linkLink copied!
Troubleshooting disconnected installations Copy linkLink copied!
Use this reference to troubleshoot common issues that occur during disconnected self-service automation portal installations.
| Symptom | Cause | Solution |
|---|---|---|
authentication required or unauthorized in install-dynamic-plugins init container logs |
Auth secret missing or malformed. The init container uses skopeo and does not use cluster pull secrets. |
Create <release-name>-dynamic-plugins-registry-auth secret. Use base64 -w0 to avoid multiline values that corrupt auth.json. |
Duplicate path in OCI URL (for example, .../ansible-automation-platform/ansible-automation-platform/...) |
imageRegistry includes a repository path instead of the registry host only. |
Set imageRegistry to the registry host only. If your mirror uses a different repository structure, use ociPluginImage to set the full image path. |
x509: certificate signed by unknown authority in init container logs |
Private registry uses a self-signed or internal CA certificate. | Mount the CA certificate into the init container. See Configure CA certificates for private registries. |