2.2. Operator を使用した OpenShift Container Platform への Red Hat Developer Hub のデプロイ


開発者は、Red Hat OpenShift Container Platform Web コンソールの Developer Catalog を使用して、OpenShift Container Platform に Red Hat Developer Hub インスタンスをデプロイできます。このデプロイメント方法では、Red Hat Developer Hub Operator を使用します。

前提条件

手順

  1. Red Hat Developer Hub インスタンス用に OpenShift Container Platform でプロジェクトを作成するか、既存のプロジェクトを選択します。

    ヒント

    OpenShift Container Platform でプロジェクトを作成する方法の詳細は、Red Hat OpenShift Container Platform ドキュメントの Web コンソールを使用したプロジェクトの作成 を参照してください。

  2. OpenShift Container Platform Web コンソールの Developer 視点で、+Add をクリックします。
  3. Developer Catalog パネルから、Operator Backed をクリックします。
  4. Filter by keyword ボックスに Developer Hub と入力し、Red Hat Developer Hub カードをクリックします。
  5. Create をクリックします。
  6. Red Hat Developer Hub インスタンスの カスタム設定 を追加します。
  7. Create Backstage ページで、Create をクリックします。

検証

Pod の準備ができたら、URL を開いて Red Hat Developer Hub プラットフォームにアクセスできます。

  1. Topology ビューで Pod をクリックし、Details パネルで Status を確認して、Pod の準備ができていることを確認します。Pod の準備が完了すると、Pod のステータスは Active になります。
  2. Topology ビューから、Developer Hub Pod の Open URL アイコンをクリックします。

    Operator インストール 1

2.2.1. Developer Hub カスタムリソースの設定

Backstage カスタムリソース (CR) の更新は、Red Hat Developer Hub Operator によって自動的に処理されます。ただし、ConfigMap や Secret など、CR が参照するリソースは、CR 自体が更新されない限り、自動的には更新されません。CR が参照するリソースを更新する場合は、Operator が更新後のリソースで Backstage デプロイメントを再作成できるように、Backstage デプロイメントを手動で削除する必要があります。

2.2.1.1. OpenShift Container Platform にカスタムアプリケーション設定ファイルを追加する

Red Hat Developer Hub インスタンスの設定を変更するには、次の手順を実行する必要があります。

  • OpenShift Container Platform にカスタムアプリケーション設定ファイルを追加し、カスタムリソース (CR) で参照します。OpenShift Container Platform では、次の例をベーステンプレートとして使用して、app-config-rhdh.yaml などの ConfigMap を作成できます。

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: app-config-rhdh
    data:
      "app-config-rhdh.yaml": |
        app:
          title: Red Hat Developer Hub
          baseUrl: https://backstage-developer-hub-my-ns.apps.ci-ln-vtkzr22-72292.origin-ci-int-gce.dev.rhcloud.com
        backend:
          auth:
            keys:
              - secret: "${BACKEND_SECRET}"
          baseUrl: https://backstage-backstage-sample-my-ns.apps.ci-ln-vtkzr22-72292.origin-ci-int-gce.dev.rhcloud.com
          cors:
            origin: https://backstage-backstage-sample-my-ns.apps.ci-ln-vtkzr22-72292.origin-ci-int-gce.dev.rhcloud.com
  • OpenShift Container Platform シークレットで定義された環境変数を参照するには、Red Hat Developer Hub の必須のバックエンド認証キーを使用します。
  • アプリケーション設定の app.baseUrlbackend.baseUrlbackend.cors.origin フィールドに Red Hat Developer Hub インスタンスの外部 URL を設定します。デフォルトでは、URL は https://backstage-<CUSTOM_RESOURCE_NAME>-<NAMESPACE_NAME>.<OPENSHIFT_INGRESS_DOMAIN>; のようになります。

    • oc get ingresses.config/cluster -o jsonpath='{.spec.domain}' コマンドを使用して、Ingress ドメインを表示できます。別のホストまたはサブドメインを使用する場合は、Custom Resource spec.application.route field をカスタマイズし、それに応じてアプリケーション設定を調整します。
注記

Red Hat Developer Hub インストールは、ユーザー自身で外部および不正アクセスから保護する必要があります。バックエンド認証キーを他のシークレットと同様に管理します。強力なパスワード要件を満たし、パスワードを設定ファイルで公開せず、環境変数としてのみ設定ファイルに挿入します。

前提条件

  • アクティブな Red Hat OpenShift Container Platform アカウントがある。

手順

  1. Developer パースペクティブから、ConfigMaps タブを選択します。
  2. Create ConfigMap をクリックします。
  3. Configure viaYAML view オプションを選択し、必要に応じてファイルに変更を加えます。
  4. Create をクリックします。
  5. Secrets タブを選択します。
  6. Create Key/value Secret をクリックします。
  7. シークレットに secrets-rhdh という名前を指定します。
  8. BACKEND_SECRET という名前のキーと、base64 でエンコードされた文字列を値として追加します。Red Hat Developer Hub インスタンスごとに一意の値を使用します。たとえば、次のコマンドを使用してターミナルからキーを生成できます。

    node -p 'require("crypto").randomBytes(24).toString("base64")'
  9. Create をクリックします。
  10. Topology ビューを選択します。
  11. 使用する Red Hat Developer Hub インスタンスのオーバーフローメニューをクリックし、Edit Backstage を選択して、Red Hat Developer Hub インスタンスの YAML ビューを読み込みます。

    Operator インストール 2
  12. spec.application.appConfig.configMaps フィールドと spec.application.extraEnvs.secrets フィールドをカスタムリソースに追加します。以下に例を示します。

    spec:
      application:
        appConfig:
          mountPath: /opt/app-root/src
          configMaps:
             - name: app-config-rhdh
        extraEnvs:
          secrets:
             - name: secrets-rhdh
        extraFiles:
          mountPath: /opt/app-root/src
        replicas: 1
        route:
          enabled: true
      database:
        enableLocalDb: true
  13. Save をクリックします。
  14. Topology ビューに戻り、Red Hat Developer Hub Pod が起動するまで待ちます。
  15. Open URL アイコンをクリックして、新しい設定変更を適用した Red Hat Developer Hub プラットフォームの使用を開始します。

関連情報

2.2.2. Red Hat Developer Hub Operator を使用した動的プラグインの設定

動的プラグインの設定は、Backstage カスタムリソース (CR) が参照できる ConfigMap オブジェクトに保存できます。

注記

pluginConfig フィールドが環境変数を参照する場合は、secrets-rhdh シークレットで変数を定義する必要があります。

手順

  1. OpenShift Container Platform Web コンソールから、ConfigMaps タブを選択します。
  2. Create ConfigMap をクリックします。
  3. Create ConfigMap ページで、Configure viaYAML view オプションを選択し、必要に応じてファイルを編集します。

    GitHub 動的プラグインを使用した ConfigMap オブジェクトの例

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: dynamic-plugins-rhdh
    data:
      dynamic-plugins.yaml: |
        includes:
          - dynamic-plugins.default.yaml
        plugins:
          - package: './dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamic'
            disabled: false
            pluginConfig: {}

  4. Create をクリックします。
  5. Topology タブに移動します。
  6. 使用する Red Hat Developer Hub インスタンスのオーバーフローメニューをクリックし、Edit Backstage を選択して、Red Hat Developer Hub インスタンスの YAML ビューを読み込みます。

    Operator インストール 2
  7. dynamicPluginsConfigMapName フィールドを Backstage CR に追加します。以下に例を示します。

    apiVersion: rhdh.redhat.com/v1alpha1
    kind: Backstage
    metadata:
      name: my-rhdh
    spec:
      application:
    # ...
        dynamicPluginsConfigMapName: dynamic-plugins-rhdh
    # ...
  8. Save をクリックします。
  9. Topology ビューに戻り、Red Hat Developer Hub Pod が起動するまで待ちます。
  10. Open URL アイコンをクリックして、新しい設定変更を適用した Red Hat Developer Hub プラットフォームの使用を開始します。

検証

  • Red Hat Developer Hub のルート URL に /api/dynamic-plugins-info/loaded-plugins を追加し、プラグインのリストをチェックして、動的プラグイン設定がロードされていることを確認します。

    プラグインの例リスト

    [
      {
        "name": "backstage-plugin-catalog-backend-module-github-dynamic",
        "version": "0.5.2",
        "platform": "node",
        "role": "backend-plugin-module"
      },
      {
        "name": "backstage-plugin-techdocs",
        "version": "1.10.0",
        "role": "frontend-plugin",
        "platform": "web"
      },
      {
        "name": "backstage-plugin-techdocs-backend-dynamic",
        "version": "1.9.5",
        "platform": "node",
        "role": "backend-plugin"
      },
    ]

2.2.3. Operator を使用した Red Hat Developer Hub のエアギャップ環境へのインストール

制限されたネットワーク上で動作する OpenShift Container Platform クラスターでは、パブリックリソースは使用できません。ただし、Red Hat Developer Hub Operator をデプロイして Developer Hub を実行するには、次のパブリックリソースが必要です。

  • Operator イメージ (バンドル、Operator、カタログ)
  • オペランドイメージ (RHDH、PostgreSQL)

これらのリソースを使用できるようにするには、これらのリソースを、OpenShift Container Platform クラスターにアクセスできるミラーレジストリー内の同等のリソースに置き換えます。

必要なイメージをミラーリングし、Red Hat Developer Hub Operator のインストール時や Developer Hub インスタンスの作成時にそれらのイメージを使用するために必要な設定を提供する、ヘルパースクリプトを使用できます。

注記

このスクリプトにはターゲットミラーレジストリーが必要です。OpenShift Container Platform クラスターが制限されたネットワークで動作する準備ができている場合は、このレジストリーがすでにインストールされているはずです。ただし、クラスターを非接続で使用できるように準備している場合は、スクリプトを使用してクラスターにミラーレジストリーをデプロイし、それをミラーリングプロセスに使用できます。

前提条件

注記

内部 OpenShift Container Platform クラスターイメージレジストリーは、ターゲットミラーレジストリーとして使用できません。ミラーレジストリーについて を参照してください。

  • 独自のミラーレジストリーを作成する場合は、Red Hat Openshift 導入用のミラーレジストリーを使用したミラーレジストリーの作成 を参照してください。
  • ミラーレジストリーをまだ持っていない場合は、ヘルパースクリプトを使用してミラーレジストリーを作成できます。また、次の追加の前提条件が必要です。

    • cURL パッケージがインストールされている。Red Hat Enterprise Linux の場合、curl パッケージをインストールすると、curl コマンドが使用可能になります。他のプラットフォームで curl を使用するには、cURL の Web サイト を参照してください。
    • htpasswd コマンドが利用可能である。Red Hat Enterprise Linux の場合、httpd-tools パッケージをインストールすると、htpasswd コマンドが使用可能になります。

手順

  1. ミラーリングスクリプトをダウンロードして実行し、カスタム Operator カタログをインストールし、関連するイメージをミラーリングします (prepare-restricted-environment.sh (source))。

    curl -sSLO https://raw.githubusercontent.com/janus-idp/operator/1.1.x/.rhdh/scripts/prepare-restricted-environment.sh
    
    # if you do not already have a target mirror registry
    # and want the script to create one for you
    # use the following example:
    bash prepare-restricted-environment.sh \
       --prod_operator_index "registry.redhat.io/redhat/redhat-operator-index:v4.14" \
       --prod_operator_package_name "rhdh" \
       --prod_operator_bundle_name "rhdh-operator" \
       --prod_operator_version "v1.1.1"
    
    # if you already have a target mirror registry
    # use the following example:
    bash prepare-restricted-environment.sh \
       --prod_operator_index "registry.redhat.io/redhat/redhat-operator-index:v4.14" \
       --prod_operator_package_name "rhdh" \
       --prod_operator_bundle_name "rhdh-operator" \
       --prod_operator_version "v1.1.1" \
       --use_existing_mirror_registry "my_registry"
    注記

    このスクリプトは複数のイメージをミラーレジストリーにコピーするため、完了までに数分かかる場合があります。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.