エアギャップ環境への Red Hat Developer Hub のインストール
Operator または Helm チャートを使用した、ネットワークが制限された環境における Red Hat OpenShift Container Platform 上での Red Hat Developer Hub の実行
概要
第1章 エアギャップ環境 リンクのコピーリンクがクリップボードにコピーされました!
エアギャップ環境は、エアギャップネットワークまたは分離ネットワークとも呼ばれ、システムまたはネットワークを物理的に分離することでセキュリティーを確保します。この分離は、エアギャップシステムと外部ソース間の不正なアクセス、データ転送、または通信を防止するために確立されます。
Red Hat Developer Hub は、セキュリティーを確保し、特定の規制要件を満たすために、エアギャップ環境にインストールできます。
第2章 Operator を使用したエアギャップ環境への Red Hat Developer Hub のインストール リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub Operator を使用して、完全な非接続環境または部分的な非接続環境に Red Hat Developer Hub をインストールできます。サポートされているプラットフォームのリストは、Red Hat Developer Hub のライフサイクルページ を参照してください。
2.1. Operator を使用した完全な非接続環境への Red Hat Developer Hub のインストール リンクのコピーリンクがクリップボードにコピーされました!
セキュリティー、コンプライアンス、または運用上の理由によりインターネットにアクセスできない環境では、完全な非接続インストールにより、外部の依存関係なしで Red Hat Developer Hub を確実に稼働させることができます。
ネットワークが踏み台ホストを介してレジストリーにアクセスできる場合は、ヘルパースクリプトを使用して、Operator 関連のイメージをディスクにミラーリングし、インターネットに接続せずにエアギャップ環境に転送することで、Red Hat Developer Hub をインストールできます。
前提条件
- Podman 5.3 以降がインストールされている。詳細は、Podman のインストール手順 を参照してください。
- Skopeo 1.17 以降がインストールされている。
-
yq4.44 以降がインストールされている。 -
GNU
sedコマンドラインテキストエディターがインストールされている。 -
umociCLI ツールがインストールされている。 -
registry.redhat.ioRed Hat Ecosystem Catalog へのアクティブなoc registry、podman、またはskopeoセッションがある。詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。 -
opmがインストールされている。詳細は、opm CLI のインストール を参照してください。
手順
次のコマンドを実行して、ミラーリングスクリプトをディスクにダウンロードします。
curl -sSLO https://raw.githubusercontent.com/redhat-developer/rhdh-operator/refs/heads/release-1.6/.rhdh/scripts/prepare-restricted-environment.sh適切なオプションのセットを指定した
bashコマンドを使用して、ミラーリングスクリプトを実行します。bash prepare-restricted-environment.sh --filter-versions "1.6" --to-dir _<my_pulled_image_location>_1 [--use-oc-mirror true]2 注記このスクリプトは複数のイメージをミラーレジストリーにコピーするため、完了までに数分かかる場合があります。
-
--to-dirオプションで指定したディレクトリーを非接続環境に転送します。 クラスターとターゲットミラーレジストリーの両方にアクセスできる非接続環境内のマシンから、適切なオプションのセットを指定した
bashコマンドを使用してミラーリングスクリプトを実行します。bash <my_pulled_image_location>/install.sh1 --from-dir <my_pulled_image_location>2 [--to-registry <my.registry.example.com>]3 [--use-oc-mirror true]4 重要oc-mirrorを使用してイメージをディスクにミラーリングした場合は、ディスクからイメージをミラーリングする際にもoc-mirrorを使用する必要があります。これはoc-mirrorが使用するフォルダーレイアウトによるものです。注記スクリプトは Red Hat Developer Hub Operator を自動的にインストールするため、完了するまでに数分かかる場合があります。
検証
- Red Hat OpenShift Container Platform を使用している場合は、Red Hat Developer Hub Operator が Web コンソールの Installed Operators リストに表示されます。
サポートされている Kubernetes プラットフォームを使用している場合は、ターミナルで次のコマンドを実行すると、
rhdh-operatornamespace で実行されている Pod のリストを確認できます。kubectl -n rhdh-operator get pods
次のステップ
Operator を使用して、サポートされているプラットフォーム上に Red Hat Developer Hub インスタンスを作成します。詳細は、使用するプラットフォームに応じて次のドキュメントを参照してください。
2.2. Operator を使用した部分的な非接続環境への Red Hat Developer Hub のインストール リンクのコピーリンクがクリップボードにコピーされました!
制限されたネットワーク上で動作する OpenShift Container Platform クラスターでは、パブリックリソースは使用できません。ただし、Red Hat Developer Hub Operator をデプロイして Developer Hub を実行するには、次のパブリックリソースが必要です。
- Operator イメージ (バンドル、Operator、カタログ)
- オペランドイメージ (RHDH、PostgreSQL)
これらのリソースを使用可能にするには、これらのリソースを、クラスターからアクセス可能なミラーレジストリー内の同等のリソースに置き換えます。
ヘルパースクリプトを使用すると、必要なイメージをミラーリングし、そのイメージを Red Hat Developer Hub Operator のインストール時と Developer Hub インスタンスの作成時に使用するのに必要な設定を指定できます。このスクリプトにはターゲットミラーレジストリーが必要です。クラスターがすでに非接続ネットワーク上で動作している場合は、ターゲットミラーレジストリーが存在するはずです。ターゲットレジストリーがまだ存在せず、OpenShift Container Platform クラスターがある場合は、内部クラスターレジストリーを公開して活用することを推奨します。
OpenShift Container Platform クラスターに接続すると、ヘルパースクリプトがそれを検出し、クラスターレジストリーを自動的に公開します。Kubernetes クラスターに接続する場合は、イメージをミラーリングするターゲットレジストリーを手動で指定できます。
前提条件
- Podman 5.3 以降がインストールされている。詳細は、Podman のインストール手順 を参照してください。
- Skopeo 1.17 以降がインストールされている。
-
yq4.44 以降がインストールされている。 -
GNU
sedコマンドラインテキストエディターがインストールされている。 -
umociCLI ツールがインストールされている。 -
registry.redhat.ioRed Hat Ecosystem Catalog へのアクティブなoc registry、podman、またはskopeoセッションがある。詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。 -
ターゲットミラーレジストリーへの管理アクセス権を持つアクティブな
skopeoセッションがある。詳細は、Authenticating to a registry を参照してください。 -
opmがインストールされている。詳細は、opm CLI のインストール を参照してください。 OpenShift Container Platform クラスターを使用している場合は、次の前提条件があります。
-
(オプション) イメージをミラーリングするために
oc-mirrorOpenShift Container Platform CLI プラグインを使用する場合は、このプラグインがインストールされている。
-
(オプション) イメージをミラーリングするために
サポートされている Kubernetes クラスターを使用している場合は、次の前提条件があります。
- 非接続クラスターに Operator Lifecycle Manager (OLM) をインストールした。
- 非接続クラスターからアクセス可能なミラーレジストリーがある。
手順
- ターミナルで、ミラーリングスクリプトを保存するディレクトリーに移動します。
次のコマンドを実行してミラーリングスクリプトをダウンロードします。
curl -sSLO https://raw.githubusercontent.com/redhat-developer/rhdh-operator/refs/heads/release-1.6/.rhdh/scripts/prepare-restricted-environment.sh適切なオプションのセットを指定した
bashコマンドを使用して、ミラーリングスクリプトを実行します。bash prepare-restricted-environment.sh \ --filter-versions "1.6" \ [--to-registry <my.registry.example.com>] \1 [--use-oc-mirror true]2 注記このスクリプトは複数のイメージをミラーレジストリーにコピーするため、完了までに数分かかる場合があります。
検証
- Red Hat OpenShift Container Platform を使用している場合は、Red Hat Developer Hub Operator が Web コンソールの Installed Operators リストに表示されます。
サポートされている Kubernetes プラットフォームを使用している場合は、ターミナルで次のコマンドを実行すると、
rhdh-operatornamespace で実行されている Pod のリストを確認できます。kubectl -n rhdh-operator get pods
次のステップ
Operator を使用して、サポートされているプラットフォーム上に Red Hat Developer Hub インスタンスを作成します。詳細は、使用するプラットフォームに応じて次のドキュメントを参照してください。
第3章 Helm チャートを使用したエアギャップ環境の OpenShift Container Platform への Red Hat Developer Hub のインストール リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub Helm チャートを使用して、完全な非接続環境または部分的な非接続環境に Red Hat Developer Hub をインストールできます。
3.1. Helm チャートを使用した完全な非接続環境の OpenShift Container Platform への Red Hat Developer Hub のインストール リンクのコピーリンクがクリップボードにコピーされました!
ネットワークが bastion ホストを介してレジストリーにアクセスできる場合は、Helm チャートを使用して、指定されたリソースをディスクにミラーリングし、インターネットに接続せずにエアギャップ環境に転送することで、Red Hat Developer Hub をインストールできます。
前提条件
ワークステーションを設定している。
- registry.redhat.io にアクセスできる。
- charts.openshift.io Helm チャートリポジトリーにアクセスできる。
-
ワークステーションに OpenShift CLI (
oc) がインストールされている。 -
oc-mirror OpenShift CLI (
oc) プラグインがインストールされている。詳細は、oc-mirror OpenShift CLI プラグインのインストール を参照してください。 - Red Hat Developer Portal にアカウントがある。
中間ホストを設定している。
- ホストは、非接続クラスターと、ターゲットミラーレジストリー (Red Hat OpenShift Container Platform イメージレジストリーなど) にアクセスできる。OpenShift Container Platform イメージレジストリーの公開の詳細は、レジストリーの公開 を参照してください。
-
oc-mirror OpenShift CLI (
oc) プラグインがインストールされている。詳細は、oc-mirror OpenShift CLI プラグインのインストール を参照してください。 - Red Hat OpenShift Container Platform 4.14 以降がインストールされている。
-
ワークステーションに OpenShift CLI (
oc) がインストールされている。
手順
ミラーリングするリソースを指定するには、
ImageSetConfigurationファイルを作成します。以下に例を示します。apiVersion: mirror.openshift.io/v1alpha2 kind: ImageSetConfiguration mirror: helm: repositories: - name: <repository_name> (1) url: <repository_url> (2) charts: - name: <chart_name> (3) version: "<rhdh_version>" (4)- ミラーリングするリポジトリーの名前 (例:
openshift-charts)。 - ミラーリングするリポジトリーの URL (例:
https://charts.openshift.io)。 - ミラーリングする Helm チャートの名前 (例:
redhat-developer-hub)。 - 使用する Red Hat Developer Hub のバージョン (例:
1.6)
oc-mirrorコマンドを実行して、ImageSetConfiguration.yamlファイルで指定されたリソースをミラーリングします。以下に例を示します。oc-mirror --config=<mirror_config_directory>/ImageSetConfiguration.yaml <mirror_archive_directory>/ここでは、以下のようになります。
<mirror_config_directory>-
システム上のイメージセット設定ファイルの場所を指定します (例:
.user)。 <mirror_configuration_file>-
ミラー設定 yaml ファイルの名前を指定します (例:
mirror-config.yaml) <mirror_archive_directory>-
ミラーアーカイブの作成先のディレクトリーの場所を指定します (例:
file://.user)。
注記oc-mirrorコマンドを実行すると、ミラーアーカイブファイル、Helm チャート、ImageContentSourcePolicy(ICSP) マニフェストを含むローカルワークスペースが生成されます。ICSP マニフェストには、後の手順でクラスターに適用する必要があるimageContentSourcePolicy.yamlファイルが含まれています。出力例
Creating archive /path/to/mirror-archive/mirror_seq1_000000.tar-
生成されたアーカイブファイル (例:
mirror_seq1_000000.tar) をエアギャップ環境に転送します。 エアギャップ環境に接続し、次のオブジェクトにも接続されていることを確認します。
- ローカルターゲットレジストリー
- ターゲット OpenShift Container Platform クラスター
エアギャップ環境から
oc-mirrorコマンドを実行して、アーカイブからターゲットレジストリーにミラーリングします。以下に例を示します。oc-mirror --from <mirror-archive-file> <target-registry>ここでは、以下のようになります。
<mirror_archive_file>-
ミラーリングするリソースを含むファイルの名前を指定します (例:
mirror_seq1_0000.tar)。 <target_registry>-
ミラーリングされたイメージをプッシュするターゲットレジストリーの名前を指定します (例:
docker://registry.localhost:5000)。
出力例
Wrote release signatures to oc-mirror-workspace/results-1738075410 Writing image mapping to oc-mirror-workspace/results-1738075410/mapping.txt Writing ICSP manifests to oc-mirror-workspace/results-1738075410ワークスペースで、
lsコマンドを実行してimageContentSourcePolicy.yamlファイルを見つけます。以下に例を示します。ls <workspace_directory>/<results_directory>ここでは、以下のようになります。
<workspace_directory>-
ワークスペースディレクトリーの名前を指定します (例:
oc-mirror-workspace)。 <results_directory>-
結果ディレクトリーの名前を指定します (例:
results-1738070846)。
Helm チャートをミラーリングするには、
oc applyコマンドを実行して、非接続クラスターにimageContentSourcePolicy.yamlファイルをデプロイします。以下に例を示します。oc apply -f <workspace_directory>/<results_directory>/ImageContentSourcePolicy.yamlここでは、以下のようになります。
<workspace-directory>-
ワークスペースディレクトリーの名前を指定します (例:
oc-mirror-workspace)。 <results-directory>-
結果ディレクトリーの名前を指定します (例:
results-1738070846)。
エアギャップ環境で、
namespaceとsetオプションを指定してhelm installコマンドを実行し、使用する namespace に Helm チャートをデプロイします。以下に例を示します。CLUSTER_ROUTER_BASE=$(oc get route console -n openshift-console -o=jsonpath='{.spec.host}' | sed 's/[.]*\.//') helm install <rhdh_instance> <workspace_directory>/<results_directory>/charts/<archive_file> --namespace <your_namespace> --create-namespace \ --set global.clusterRouterBase="$CLUSTER_ROUTER_BASE"ここでは、以下のようになります。
<rhdh_instance>-
Red Hat Developer Hub インスタンスの名前を指定します (例:
my-rhdh)。 <workspace_directory>-
ワークスペースディレクトリーの名前を指定します (例:
oc-mirror-workspace)。 <results_directory>-
結果ディレクトリーの名前を指定します (例:
results-1738070846)。 <archive_file>-
ミラーリングするリソースを含むアーカイブファイルの名前を指定します (例:
redhat-developer-hub-1.4.1.tgz)。 <your_namespace>-
Helm チャートをデプロイする namespace を指定します (例:
my-rhdh-project)。
3.2. Helm チャートを使用した部分的な非接続環境の OpenShift Container Platform への Red Hat Developer Hub のインストール リンクのコピーリンクがクリップボードにコピーされました!
ネットワークが registry.redhat.io レジストリーと charts.openshift.io Helm チャートリポジトリーにアクセスできる場合は、指定されたリソースをターゲットレジストリーに直接ミラーリングすることで、部分的に非接続環境に Red Hat Developer Hub インスタンスをデプロイできます。
前提条件
- Red Hat OpenShift Container Platform 4.14 以降がインストールされている。
-
charts.openshift.ioHelm チャートリポジトリーにアクセスできる。 -
registry.redhat.ioにアクセスできる。 - 非接続クラスターからアクセスできるミラーレジストリー (OpenShift Container Platform イメージレジストリーなど) にアクセスできる。OpenShift Container Platform イメージレジストリーの公開の詳細は、レジストリーの公開 を参照してください。
- ターゲットミラーレジストリーにログインしており、そこにイメージをプッシュする権限がある。詳細は、イメージのミラーリングを可能にする認証情報の設定 を参照してください。
-
ワークステーションに OpenShift CLI (
oc) がインストールされている。 -
oc-mirror OpenShift CLI (
oc) プラグインがインストールされている。詳細は、oc-mirror OpenShift CLI プラグインのインストール を参照してください。 - Red Hat Developer Portal にアカウントがある。
手順
次のコマンドを実行して、OpenShift CLI (
oc) を使用して OpenShift Container Platform アカウントにログインします。oc login -u <user> -p <password> https://api.<hostname>:6443- 非接続クラスターから、OpenShift Container Platform イメージレジストリーなど、ミラーリングするイメージレジストリーにログインします。
-
ImageSetConfiguration.yamlファイルを作成します。 ImageSetConfiguration.yamlファイルで、ミラーリングするリソースを指定します。以下に例を示します。apiVersion: mirror.openshift.io/v1alpha2 kind: ImageSetConfiguration mirror: helm: repositories: - name: <repository_name> (1) url: <repository_url> (2) charts: - name: <chart_name> (3) version: "<rhdh_version>" (4)- ミラーリングする Helm チャートを含むリポジトリーの名前 (例:
openshift-charts)。 - ミラーリングする Helm チャートを含むリポジトリーの URL (例:
https://charts.openshift.io)。 - ミラーリングするイメージを含む Helm チャートの名前 (例:
redhat-developer-hub)。 - 使用する Red Hat Developer Hub のバージョン (例:
1.6)
oc-mirrorコマンドを実行して、イメージセット設定ファイルで指定されたリソースをターゲットレジストリーに直接ミラーリングします。以下に例を示します。oc-mirror --config=<mirror_config_directory>/ImageSetConfiguration.yaml <target-mirror-registry>ここでは、以下のようになります。
<mirror_config_directory>-
システム上のイメージセット設定ファイルの場所を指定します (例:
.user)。 <target_mirror_registry>-
ターゲットミラーレジストリーの場所と名前を指定します (例:
docker://registry.example:5000)。
注記oc-mirrorコマンドを実行すると、Helm チャートとImageContentSourcePolicy(ICSP) マニフェストを含むローカルワークスペースが作成されます。ICSP マニフェストには、後の手順でクラスターに適用する必要がある、自動生成されたimageContentSourcePolicy.yamlファイルが含まれています。出力例
Writing image mapping to oc-mirror-workspace/results-1738070846/mapping.txt Writing ICSP manifests to oc-mirror-workspace/results-1738070846ワークスペースで、
lsコマンドを実行してimageContentSourcePolicy.yamlファイルを見つけます。以下に例を示します。ls <workspace_directory>/<results_directory>ここでは、以下のようになります。
<workspace_directory>-
ワークスペースディレクトリーの名前を指定します (例:
oc-mirror-workspace)。 <results_directory>-
結果ディレクトリーの名前を指定します (例:
results-1738070846)。
Helm チャートをミラーリングするには、
oc applyコマンドを実行して、非接続クラスターにimageContentSourcePolicy.yamlファイルをデプロイします。以下に例を示します。oc apply -f <workspace_directory>/<results_directory>/ImageContentSourcePolicy.yamlここでは、以下のようになります。
<workspace_directory>-
ワークスペースディレクトリーの名前を指定します (例:
oc-mirror-workspace)。 <results_directory>-
結果ディレクトリーの名前を指定します (例:
results-1738070846)。
エアギャップ環境で、
namespaceとsetオプションを指定してhelm installコマンドを実行し、使用する namespace に Helm チャートをデプロイします。以下に例を示します。CLUSTER_ROUTER_BASE=$(oc get route console -n openshift-console -o=jsonpath='{.spec.host}' | sed 's/[.]*\.//') helm install <rhdh_instance> <workspace_directory>/<results_directory>/charts/<archive_file> --namespace <your_namespace> --create-namespace \ --set global.clusterRouterBase="$CLUSTER_ROUTER_BASE"ここでは、以下のようになります。
<rhdh_instance>-
Red Hat Developer Hub インスタンスの名前を指定します (例:
my-rhdh)。 <workspace_directory>-
ワークスペースディレクトリーの名前を指定します (例:
oc-mirror-workspace)。 <results_directory>-
結果ディレクトリーの名前を指定します (例:
results-1738070846)。 <archive_file>-
ミラーリングするリソースを含むアーカイブファイルの名前を指定します (例:
redhat-developer-hub-1.4.1.tgz)。 <your_namespace>-
Helm チャートをデプロイする namespace を指定します (例:
my-rhdh-project)。
第4章 Helm チャートを使用して、エアギャップ環境内のサポートされている Kubernetes プラットフォームに Red Hat Developer Hub をインストールする リンクのコピーリンクがクリップボードにコピーされました!
完全な非接続環境または部分的な非接続環境でサポートされている Kubernetes プラットフォームを使用している場合は、Helm チャートを使用して Red Hat Developer Hub をインストールできます。サポートされている Kubernetes プラットフォームは次のとおりです。
- Microsoft Azure Kubernetes Service
- Amazon Elastic Kubernetes Service
- Google Kubernetes Engine
4.1. Helm チャートを使用して、完全な非接続環境でサポートされている Kubernetes プラットフォームに Red Hat Developer Hub をインストールする リンクのコピーリンクがクリップボードにコピーされました!
インターネットにアクセスできない環境では、完全な非接続環境でのインストールにより、Red Hat Developer Hub を外部の依存関係なしで確実に実行できるようになります。このアプローチでは、イメージをミラーリングし、手動でエアギャップ環境に転送する必要があります。
前提条件
- Skopeo 1.17 以降がインストールされている。
- Yq 4.4 以降がインストールされている。
-
skopeo loginコマンドを使用して、イメージをプルするために registry.redhat.io に認証している。 -
kubectlが設定された Kubernetes クラスターにアクセスできる。 - エアギャップホストに Helm 3.13 以降がインストールされている。
手順
ミラーリングホストのターミナルで、次のコマンドを実行して Helm チャートの値を取得します。
helm repo add <helm_chart_repo_name> https://charts.openshift.io/ helm repo update helm show values <helm_chart_repo_name>/redhat-developer-hub --version <rhdh_version> values.default.yaml helm pull <helm_chart_repo_name>/redhat-developer-hub --version <rhdh_version>以下は、
- <helm_chart_repo_name>
-
Helm チャートリポジトリーの名前を指定します (例:
openshift- helm -charts)。 - <rhdh_version>
使用する Red Hat Developer Hub のバージョンを指定します (例:
1.6.3)。注記helm pull <helm_chart_repo_name>/redhat-developer-hub --version <rhdh_version>コマンドは、Helm チャートアーカイブファイルを自動的に作成し、Helm チャートを現在の作業ディレクトリーにダウンロードします。
次のコマンドを実行して、イメージダイジェストを抽出します。
RHDH_IMAGE=$(yq '.upstream.backstage.image | .registry + "/" + .repository' values.default.yaml) RHDH_DIGEST=$(yq '.upstream.backstage.image.tag' values.default.yaml) PG_IMAGE=$(yq '.upstream.postgresql.image | .registry + "/" + .repository' values.default.yaml) PG_DIGEST=$(yq '.upstream.postgresql.image.tag' values.default.yaml)次のコマンドを実行して、イメージをローカルアーカイブにミラーリングします。
skopeo login registry.redhat.io skopeo copy --all docker://${RHDH_IMAGE}:${RHDH_DIGEST} dir:./rhdh-hub skopeo copy --all docker://${PG_IMAGE}:${PG_DIGEST} dir:./postgresql次のファイルとディレクトリーをエアギャップ環境に転送します。
- rhdh-hub
- postgresql
-
Helm チャートアーカイブファイル (例:
redhat-developer-hub-1.6.3.tgz)
次のコマンドを実行して、イメージをエアギャップホストにロードします。
skopeo copy --all dir:./rhdh-hub docker://<mirror_registry_name>/<rhdh_repo_name>:${RHDH_DIGEST} skopeo copy --all dir:./postgresql docker://<mirror_registry_name>/<postgresql_repo_name>:${PG_DIGEST}以下は、
- <mirror_registry_name>
-
イメージをプッシュするターゲットミラーレジストリーの名前を指定します (例:
registry.example.com)。 - <rhdh_repo_name>
-
Red Hat Developer Hub イメージが保存されているリポジトリーの名前を指定します (例:
rhdh/rhdh-hub-rhel9)。この値は、エアギャップホストにロードした Red Hat Developer Hub イメージの名前と一致する必要があります。 - <postgresql_repo_name>
-
PostgreSQL イメージが保存されているリポジトリーの名前を指定します (例:
rhdh/postgresql-15)。
使用する Kubernetes プラットフォームの
values.yamlファイルを作成し、ローカル使用を反映するために次のイメージ参照をファイルに追加します。upstream: backstage: image: registry: "<mirror_registry_name>" repository: <rhdh_repo_name> tag: "${RHDH_DIGEST}" postgresql: image: registry: "<mirror_registry_name>" repository: <postgresql_repo_name> tag: "${PG_DIGEST}"以下は、
- <mirror_registry_name>
-
イメージをプッシュするターゲットミラーレジストリーの名前を指定します (例:
registry.example.com)。 - <rhdh_repo_name>
-
Red Hat Developer Hub イメージが保存されているリポジトリーの名前を指定します (例:
rhdh/rhdh-hub-rhel9)。この値は、エアギャップホストにロードした Red Hat Developer Hub イメージの名前と一致する必要があります。 - <postgresql_repo_name>
PostgreSQL イメージが保存されているリポジトリーの名前を指定します (例:
rhdh/postgresql-15)。AKS の場合は、次の
values.yamlファイルテンプレートを使用します。global: host: <app_address> route: enabled: false upstream: ingress: enabled: true className: webapprouting.kubernetes.azure.com host: backstage: image: pullSecrets: - rhdh-pull-secret podSecurityContext: fsGroup: 3000 postgresql: image: pullSecrets: - rhdh-pull-secret primary: podSecurityContext: enabled: true fsGroup: 3000 volumePermissions: enabled: trueEKS の場合は、次の
values.yamlファイルテンプレートを使用します。global: # TODO: Set your application domain name. host: <your Developer Hub domain name> route: enabled: false upstream: service: # NodePort is required for the ALB to route to the Service type: NodePort ingress: enabled: true annotations: kubernetes.io/ingress.class: alb alb.ingress.kubernetes.io/scheme: internet-facing # TODO: Using an ALB HTTPS Listener requires a certificate for your own domain. Fill in the ARN of your certificate, e.g.: alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:xxx:xxxx:certificate/xxxxxx alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]' alb.ingress.kubernetes.io/ssl-redirect: '443' # TODO: Set your application domain name. external-dns.alpha.kubernetes.io/hostname: <your rhdh domain name> backstage: image: pullSecrets: - rhdh-pull-secret podSecurityContext: # you can assign any random value as fsGroup fsGroup: 2000 postgresql: image: pullSecrets: - rhdh-pull-secret primary: podSecurityContext: enabled: true # you can assign any random value as fsGroup fsGroup: 3000 volumePermissions: enabled: trueGKE の場合は、次の
values.yamlファイルテンプレートを使用します。global: host: <rhdh_domain_name> route: enabled: false upstream: service: type: NodePort ingress: enabled: true annotations: kubernetes.io/ingress.class: gce kubernetes.io/ingress.global-static-ip-name: <ADDRESS_NAME> networking.gke.io/managed-certificates: <rhdh_certificate_name> networking.gke.io/v1beta1.FrontendConfig: <ingress_security_config> className: gce backstage: image: pullSecrets: - rhdh-pull-secret podSecurityContext: fsGroup: 2000 postgresql: image: pullSecrets: - rhdh-pull-secret primary: podSecurityContext: enabled: true fsGroup: 3000 volumePermissions: enabled: true
次のコマンドを実行して、現在の namespace に Helm チャートをインストールします。
helm install rhdh ./<helm_chart_archive_file_name> -f values.yaml以下は、
- <helm_chart_archive_file_name>
-
Helm チャートアーカイブファイルの名前を指定します (例:
redhat-developer-hub-1.4.0.tgz)。
4.2. Helm チャートを使用して、部分的な非接続環境でサポートされている Kubernetes プラットフォームに Red Hat Developer Hub をインストールする リンクのコピーリンクがクリップボードにコピーされました!
部分的な非接続環境では、クラスターは registry.redhat.io などの外部レジストリーにアクセスできませんが、内部ミラーレジストリーにはアクセスできます。この方法では、クラスターから内部ミラーレジストリーに直接アクセスする必要があります。
前提条件
ワークステーションを設定している。
- Skopeo 1.17 以降がインストールされている。
- Yq 4.4 以降がインストールされている。
- Helm 3.13 以降がインストールされている。
- registry.redhat.io に対してアクティブな Skopeo セッションがある。
-
ターゲットミラーレジストリー (例:
registry.internal.example.com) に対して、アクティブな Skopeo セッションがある。 -
kubectlが設定された Kubernetes クラスターにアクセスできる。
手順
ターミナルで、次のコマンドを実行して Helm チャートをダウンロードして抽出します。
helm repo add _<helm_chart_repo_name>_ https://charts.openshift.io/ helm repo update helm pull _<helm_chart_repo_name>_/redhat-developer-hub --version _<rhdh_version>_ helm show values _<helm_chart_repo_name>_/redhat-developer-hub --version _<rhdh_version>_ > values.default.yaml以下は、
- <helm_chart_repo_name>
-
Helm チャートリポジトリーの名前を指定します (例:
openshift- helm -charts)。 - <rhdh_version>
-
使用する Red Hat Developer Hub のバージョンを指定します (例:
1.6.3)。
次のコマンドを実行し、
yqを使用してイメージダイジェストを抽出します。RHDH_IMAGE=$(yq '.upstream.backstage.image | .registry + "/" + .repository' values.default.yaml) RHDH_DIGEST=$(yq '.upstream.backstage.image.tag' values.default.yaml) PG_IMAGE=$(yq '.upstream.postgresql.image | .registry + "/" + .repository' values.default.yaml) PG_DIGEST=$(yq '.upstream.postgresql.image.tag' values.default.yaml)次のコマンドを入力して、イメージを内部ミラーレジストリーにミラーリングします。
skopeo login registry.redhat.io skopeo login _<mirror_registry_name>_ skopeo copy --remove-signatures \ docker://${PG_IMAGE}@${PG_DIGEST} \ docker://_<mirror_registry_name>_/_<postgresql_repo_name>_:${PG_DIGEST} skopeo copy --remove-signatures \ docker://${RHDH_IMAGE}@${RHDH_DIGEST} \ docker://_<mirror_registry_name>_/_<rhdh_repo_name>_${RHDH_DIGEST}以下は、
- <mirror_registry_name>
-
内部ミラーレジストリーの名前を指定します (例:
registry.internal.example.com)。 - <postgresql_repo_name>
-
PostgreSQL リポジトリーの名前を指定します (例:
rhdh/postgresql-15)。 - <rhdh_repo_name>
-
Red Hat Developer Hub リポジトリーの名前を指定します (例:
rhdh/rhdh-hub-rhel9)。
使用する Kubernetes プラットフォームの
values.yamlファイルを作成し、ローカル使用を反映するために次のイメージ参照をファイルに追加します。upstream: backstage: image: registry: "_<mirror_registry_name>_" repository: _<rhdh_repo_name>_ tag: "${RHDH_DIGEST}" postgresql: image: registry: "_<mirror_registry_name>_" repository: _<postgresql_repo_name>_ tag: "${PG_DIGEST}"AKS の場合は、次の
values.yamlファイルテンプレートを使用します。global: host: <app_address> route: enabled: false upstream: ingress: enabled: true className: webapprouting.kubernetes.azure.com host: backstage: image: pullSecrets: - rhdh-pull-secret podSecurityContext: fsGroup: 3000 postgresql: image: pullSecrets: - rhdh-pull-secret primary: podSecurityContext: enabled: true fsGroup: 3000 volumePermissions: enabled: trueEKS の場合は、次の
values.yamlファイルテンプレートを使用します。global: # TODO: Set your application domain name. host: <your Developer Hub domain name> route: enabled: false upstream: service: # NodePort is required for the ALB to route to the Service type: NodePort ingress: enabled: true annotations: kubernetes.io/ingress.class: alb alb.ingress.kubernetes.io/scheme: internet-facing # TODO: Using an ALB HTTPS Listener requires a certificate for your own domain. Fill in the ARN of your certificate, e.g.: alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:xxx:xxxx:certificate/xxxxxx alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]' alb.ingress.kubernetes.io/ssl-redirect: '443' # TODO: Set your application domain name. external-dns.alpha.kubernetes.io/hostname: <your rhdh domain name> backstage: image: pullSecrets: - rhdh-pull-secret podSecurityContext: # you can assign any random value as fsGroup fsGroup: 2000 postgresql: image: pullSecrets: - rhdh-pull-secret primary: podSecurityContext: enabled: true # you can assign any random value as fsGroup fsGroup: 3000 volumePermissions: enabled: trueGKE の場合は、次の
values.yamlファイルテンプレートを使用します。global: host: <rhdh_domain_name> route: enabled: false upstream: service: type: NodePort ingress: enabled: true annotations: kubernetes.io/ingress.class: gce kubernetes.io/ingress.global-static-ip-name: <ADDRESS_NAME> networking.gke.io/managed-certificates: <rhdh_certificate_name> networking.gke.io/v1beta1.FrontendConfig: <ingress_security_config> className: gce backstage: image: pullSecrets: - rhdh-pull-secret podSecurityContext: fsGroup: 2000 postgresql: image: pullSecrets: - rhdh-pull-secret primary: podSecurityContext: enabled: true fsGroup: 3000 volumePermissions: enabled: true
次のコマンドを実行して、現在の namespace に Helm チャートをインストールします。
helm install rhdh ./_<helm_chart_archive_file_name>_ -f values.yaml以下は、
- <helm_chart_archive_file_name>
-
Helm チャートアーカイブファイルの名前を指定します (例:
redhat-developer-hub-1.6.3.tgz)。