第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

インターネットにアクセスできない環境では、完全な非接続環境でのインストールにより、Red Hat Developer Hub を外部の依存関係なしで確実に実行できるようになります。このアプローチでは、イメージをミラーリングし、手動でエアギャップ環境に転送する必要があります。

前提条件

  • Skopeo 1.17 以降がインストールされている。
  • Yq 4.4 以降がインストールされている。
  • skopeo login コマンドを使用して、イメージをプルするために registry.redhat.io に認証している。
  • kubectl が設定された Kubernetes クラスターにアクセスできる。
  • エアギャップホストに Helm 3.13 以降がインストールされている。

手順

  1. ミラーリングホストのターミナルで、次のコマンドを実行して 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>
    Copy to Clipboard Toggle word wrap

    以下は、

    <helm_chart_repo_name>
    Helm チャートリポジトリーの名前を指定します (例: openshift-helm-charts)。
    <rhdh_version>

    使用する Red Hat Developer Hub のバージョンを指定します (例: 1.7.0)。

    注記

    helm pull <helm_chart_repo_name>/redhat-developer-hub --version <rhdh_version> コマンドは、Helm チャートアーカイブファイルを自動的に作成し、Helm チャートを現在の作業ディレクトリーにダウンロードします。

  2. 次のコマンドを実行して、イメージダイジェストを抽出します。

    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)
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを実行して、イメージをローカルアーカイブにミラーリングします。

    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
    Copy to Clipboard Toggle word wrap
  4. 次のファイルとディレクトリーをエアギャップ環境に転送します。

    • rhdh-hub
    • postgresql
    • Helm チャートアーカイブファイル (例: redhat-developer-hub-1.7.0.tgz)
  5. 次のコマンドを実行して、イメージをエアギャップホストにロードします。

    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}
    Copy to Clipboard Toggle word wrap

    以下は、

    <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)。
  6. 使用する 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}"
    Copy to Clipboard Toggle word wrap

    以下は、

    <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: true
      Copy to Clipboard Toggle word wrap
    • EKS の場合は、次の 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: true
      Copy to Clipboard Toggle word wrap
    • GKE の場合は、次の 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
      Copy to Clipboard Toggle word wrap
  7. 次のコマンドを実行して、現在の namespace に Helm チャートをインストールします。

    helm install rhdh ./<helm_chart_archive_file_name> -f values.yaml
    Copy to Clipboard Toggle word wrap

    以下は、

    <helm_chart_archive_file_name>
    Helm チャートアーカイブファイルの名前を指定します (例: redhat-developer-hub-1.4.0.tgz)。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat