In Red Hat Developer Hub 1.9 and later, dynamic plug-ins are distributed as OCI artifacts referenced by a plug-in catalog index. In a disconnected environment, mirror these artifacts and rebuild the catalog index with updated registry references.
Before you begin
skopeo 1.20 or later is installed.
podman 5.6 or later is installed.
jq 1.7 or later is installed.
- GNU
tar 1.35 or later is installed.
- You have authenticated to
registry.redhat.io and your disconnected registry.
About this task
Without this step, the install-dynamic-plugins init container attempts to pull plug-ins from external registries and fails with i/o timeout errors.
Use the mirror-plugins.sh script from the Red Hat Developer Hub operator repository to mirror the plug-in artifacts.
Procedure
- Download the
mirror-plugins.sh script from the Red Hat Developer Hub operator repository:
$ curl -LO https://raw.githubusercontent.com/redhat-developer/rhdh-operator/release-<rhdh_version>/.rhdh/scripts/mirror-plugins.sh
$ chmod +x mirror-plugins.sh
Replace <rhdh_version> with the Red Hat Developer Hub version bundled with your Helm chart. See the Ansible Automation Portal Lifecycle page for version mappings.
- Mirror the plug-in catalog index and all referenced plug-in artifacts to your disconnected registry:
$ ./mirror-plugins.sh \
--plugin-index oci://registry.redhat.io/rhdh/rhdh-plugin-catalog-index-rhel9:<rhdh_version> \
--to-registry <disconnected_registry_url>
The script copies all OCI plug-in artifacts, rewrites the catalog index with your mirror registry URLs, and pushes the updated index to your disconnected registry.
- If your disconnected environment has no direct network path to the connected bastion host, use the export-then-import workflow.
- On the connected bastion host, export the plug-in artifacts to a directory:
$ ./mirror-plugins.sh \
--plugin-index oci://registry.redhat.io/rhdh/rhdh-plugin-catalog-index-rhel9:<rhdh_version> \
--to-dir /path/to/plugin-export
- Transfer the export directory to a host in the disconnected environment.
- On the disconnected host, import the artifacts into your mirror registry:
$ ./mirror-plugins.sh \
--from-dir /path/to/plugin-export \
--to-registry <disconnected_registry_url>
Results
- Check the
rhdh-plugin-mirroring-summary.txt file generated by the script. It lists all mirrored artifacts and their destination paths.
- Verify that the catalog index image exists in your disconnected registry:
$ skopeo inspect docker://<disconnected_registry_url>/rhdh/rhdh-plugin-catalog-index-rhel9:<rhdh_version>