3.2. Red Hat Developer Hub へのカタログのソース管理の追加


Red Hat Developer Hub にカタログを追加するには、ソフトウェアテンプレートを追加する必要があります。テンプレートを追加するには、GitHub、GitLab、BitBucket などのソース管理を有効にする必要があります。

前提条件

  • GitHub アカウントがある。
  • Red Hat OpenShift クラスターにアカウントがある。
  • Developer Hub がインストールされている。インストールされていない場合、GitHub ログインが失敗します。インストールの詳細は、2章Red Hat Developer Hub のインストール を参照してください。

3.2.1. GitHub 認証の設定

Developer Hub で GitHub OAuth ログインを有効にするには、GitHub 認証の設定が必要です。

手順

  1. Red Hat OpenShift クラスターで、OAuth アプリケーションを作成する GitHub 組織のメインページに移動します。
  2. Settings Developer Settings OAuth Apps Register an application をクリックします。
  3. アプリケーション名として Developer Hub と入力します。
  4. Homepage URL として次の URL を追加します。

    https://developer-hub-<NAMESPACE_NAME>.<OPENSHIFT_ROUTE_HOST>/

  5. Authorization callback URL として次の URL を追加します。

    https://developer-hub-<NAMESPACE_NAME>.<OPENSHIFT_ROUTE_HOST>/api/auth/github/handler/frame

  6. Enable Device Flow チェックボックスをオフにします。
  7. Register application をクリックして、OAuth アプリケーションを作成します。
  8. アプリケーションを作成した後、Generate a new client secret をクリックし、生成されたクライアントシークレットをコピーします。
  9. OpenShift で、ConfigMaps をクリックします。
  10. 指定された環境変数をキーとして使用して、'github-secrets' という名前のキー/値のシークレットを生成し、GitHub OAuth アプリケーション用に生成した値を入力します。

    1. Red Hat OpenShift で、Secrets タブに移動し、Create をクリックします。
    2. Key/value secret を選択します。
    3. Secret namegithub-secrets として入力します。
    4. 環境変数を KeyValue として追加し、Create をクリックします。

      表3.1 環境変数
      キー

      GITHUB_OAUTH_CLIENT_ID

      OAuth アプリケーションからのクライアント ID

      GITHUB_OAUTH_CLIENT_SECRET

      OAuth アプリケーションからのクライアントシークレット

  11. 次のように app-config-rhdh ConfigMap を変更して、GitHub 認証設定を追加します。

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: app-config-rhdh
    data:
      app-config-rhdh.yaml: |
        app:
          title: Red Hat Developer Hub
        auth:
          # see https://backstage.io/docs/auth/ to learn about auth providers
          environment: development
          providers:
            github:
              development:
                clientId: ${GITHUB_OAUTH_CLIENT_ID}
                clientSecret: ${GITHUB_OAUTH_CLIENT_SECRET}
  12. Save をクリックします。
  13. Helm タブに移動し、Upgrade を選択します。
  14. Helm 設定を編集するには、次のいずれかのビューを使用します。

    • Form ビュー の使用

      1. Root Schema Backstage Chart Schema Backstage Parameters Backstage container environment variables を既存の Secrets を展開します。
      2. Add Backstage container environment variables from existing Secrets リンクをクリックします。
      3. github-secrets を値として入力します。
      4. Upgrade をクリックします。
    • YAML ビュー の使用

      1. 以下の例のように、upstream.backstage.extraEnvVarsSecrets パラメーターの値を github-secrets に設定します。

        # other Red Hat Developer Hub Helm Chart configurations
        upstream:
          backstage:
            # other Red Hat Developer Hub Helm Chart configurations
            extraEnvVarsSecrets:
              - github-secrets
            # other Red Hat Developer Hub Helm Chart configurations
      2. Upgrade をクリックします。

3.2.2. GitHub 統合の設定

Developer Hub で GitHub プラグインを有効にするには、GitHub の設定が必要です。

手順

  1. Red Hat OpenShift クラスターで、OAuth アプリケーションを作成する GitHub 組織のメインページに移動します。
  2. Settings Developer Settings GitHub Apps New GitHub App をクリックします。
  3. アプリケーション名として Developer Hub と入力します。
  4. Homepage URL として次の URL を追加します。

    https://developer-hub-<NAMESPACE_NAME>.<OPENSHIFT_ROUTE_HOST>/

  5. Authorization callback URL として次の URL を追加します。

    https://developer-hub-<NAMESPACE_NAME>.<OPENSHIFT_ROUTE_HOST>/api/auth/github/handler/frame

  6. Webhook URL Active の選択を解除します。
  7. Where can this GitHub App be installed? セクションで、Only on this account が選択されていることを確認します。
  8. Register application をクリックします。
  9. アプリケーションを作成した後、Generate a new client secret をクリックし、生成されたクライアントシークレットをコピーします。
  10. ページの下部にある Generate a private key をクリックし、生成されたファイルをダウンロードします。
  11. OpenShift で、ConfigMaps をクリックします。
  12. 指定された環境変数をキーとして使用して、'github-secrets' という名前のキー/値のシークレットを生成し、GitHub OAuth アプリケーション用に生成した値を入力します。

    1. Red Hat OpenShift で、Secrets タブに移動し、Create をクリックします。
    2. Key/value secret を選択します。
    3. Secret namegithub-secrets として入力します。
    4. 環境変数を KeyValue として追加し、Create をクリックします。
    表3.2 環境変数
    キー

    GITHUB_APP_APP_ID

    GitHub アプリケーションからのアプリケーション ID

    GITHUB_APP_CLIENT_ID

    GitHub アプリケーションからのクライアント ID

    GITHUB_APP_CLIENT_SECRET

    GitHub アプリケーションからのクライアントシークレット

    GITHUB_APP_WEBHOOK_URL

    "none" と入力します

    GITHUB_APP_WEBHOOK_SECRET

    "none" と入力します

    GITHUB_APP_PRIVATE_KEY

    ダウンロードした秘密鍵をアップロードします

  13. 次のように app-config-rhdh ConfigMap を変更して、GitHub 統合を追加します。

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: app-config-rhdh
    data:
      app-config-rhdh.yaml: |
        app:
          title: Red Hat Developer Hub
        integrations:
          github:
            - host: github.com
              apps:
                - appId: ${GITHUB_APP_APP_ID}
                  clientId: ${GITHUB_APP_CLIENT_ID}
                  clientSecret: ${GITHUB_APP_CLIENT_SECRET}
                  webhookUrl: ${GITHUB_APP_WEBHOOK_URL}
                  webhookSecret: ${GITHUB_APP_WEBHOOK_SECRET}
                  privateKey: |
                    ${GITHUB_APP_PRIVATE_KEY}
  14. Toplogy developer hub Actions (ドロップダウン) Restart rollout をクリックします。

3.2.3. Red Hat Developer Hub での GitHub 検出の有効化

Developer Hub 内のコンポーネント (catalog-info.yaml ファイルを含むリポジトリーなど) に対して GitHub の検出機能を有効にすることができます。

前提条件

手順

  1. OpenShift Container Platform Web コンソールの Developer パースペクティブで、Helm タブに移動します。
  2. Helm リリースのオーバーフローメニューをクリックし、Upgrade を選択します。
  3. Helm 設定を編集するには、次のいずれかのビューを使用します。

    • Form ビュー の使用

      1. Root Schema global Dynamic plugins configuration List of dynamic plugins that should be installed in the backstage application を展開します。
      2. Add List of dynamic plugins that should be installed in the backstage application をクリックします。
      3. Package specification of the dynamic plugin to install.It should be usable by the npm pack command. で、次の値を追加します。

        ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamic

        GH 検出の有効化
      4. Upgrade をクリックします。
    • YAML ビュー の使用

      1. 以下の例のように、global.dynamic.plugins.package パラメーターの値を ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamic に設定します。

        global:
          dynamic:
            # other Red Hat Developer Hub Helm Chart configurations
            plugins:
              - disabled: false
                package: >-
                  ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamic
            # other Red Hat Developer Hub Helm Chart configurations
      2. Upgrade をクリックします。
  4. ConfigMap に次のコードを追加します。

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: app-config-rhdh
    data:
      app-config-rhdh.yaml: |
        ...
          catalog:
            providers:
              github:
                providerId:
                  organization: '${GITHUB_ORG}'
                  schedule:
                    frequency:
                      minutes: 30
                    initialDelay:
                      seconds: 15
                    timeout:
                      minutes: 3
        ...

    上記のコードの ${GITHUB_ORG} は、コンポーネントの検出対象とする GitHub 組織に置き換えます。また、プロバイダーが 1 つだけの場合は、次のコードを ConfigMap に追加してください。

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: app-config-rhdh
    data:
      app-config-rhdh.yaml: |
        ...
        catalog:
          providers:
            github:
              organization: ${GITHUB_ORG}
              schedule:
                frequency: { minutes: 1 }
                timeout: { minutes: 1 }
                initialDelay: { seconds: 100 }
        ...

    プロバイダーがリストとなっている場合は、プロバイダーを特定するには、以前のコードの providerId が必要です。

  5. Save をクリックします。

3.2.4. Red Hat Developer Hub での GitHub 組織メンバー検出の有効化

GitHub 組織のメンバーに対して GitHub の検出機能を有効にすることもできます。

前提条件

手順

  1. OpenShift Container Platform Web コンソールの Developer パースペクティブで、Helm タブに移動します。
  2. Helm リリースのオーバーフローメニューをクリックし、Upgrade を選択します。
  3. Helm 設定を編集するには、次のいずれかのビューを使用します。

    • Form ビュー の使用

      1. Root Schema global Dynamic plugins configuration List of dynamic plugins that should be installed in the backstage application を展開します。
      2. Add List of dynamic plugins that should be installed in the backstage application をクリックします。
      3. Package specification of the dynamic plugin to install.It should be usable by the npm pack command. で、次の値を追加します。

        ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-org-dynamic

        GH メンバーの検出の有効化
      4. Upgrade をクリックします。
    • YAML ビュー の使用

      1. 以下の例のように、global.dynamic.plugins.package パラメーターの値を ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-org-dynamic に設定します。

        global:
          dynamic:
            # other Red Hat Developer Hub Helm Chart configurations
            plugins:
              - disabled: false
                package: >-
                  ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-org-dynamic
            # other Red Hat Developer Hub Helm Chart configurations
      2. Upgrade をクリックします。
  4. ConfigMap に次のコードを追加します。

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: app-config-rhdh
    data:
      app-config-rhdh.yaml: |
        ...
        catalog:
          providers:
            githubOrg:
              id: production
              githubUrl: "${GITHUB_URL}"
              orgs: [ "${GITHUB_ORG}" ]
        ...

    ここでは、以下のようになります。

    ${GITHUB_URL}
    GitHub URL に置き換える必要がある変数を示します。
    ${GITHUB_ORG}
    ユーザーの取り込み元となる GitHub 組織に置き換える必要がある変数を示します。
  5. Save をクリックします。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.