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 認証の設定が必要です。
手順
- Red Hat OpenShift クラスターで、OAuth アプリケーションを作成する GitHub 組織のメインページに移動します。
-
Settings
Developer Settings OAuth Apps Register an application をクリックします。 -
アプリケーション名として
Developer Hub
と入力します。 Homepage URL として次の URL を追加します。
https://developer-hub-<NAMESPACE_NAME>.<OPENSHIFT_ROUTE_HOST>/
Authorization callback URL として次の URL を追加します。
https://developer-hub-<NAMESPACE_NAME>.<OPENSHIFT_ROUTE_HOST>/api/auth/github/handler/frame
- Enable Device Flow チェックボックスをオフにします。
- Register application をクリックして、OAuth アプリケーションを作成します。
- アプリケーションを作成した後、Generate a new client secret をクリックし、生成されたクライアントシークレットをコピーします。
- OpenShift で、ConfigMaps をクリックします。
指定された環境変数をキーとして使用して、'github-secrets' という名前のキー/値のシークレットを生成し、GitHub OAuth アプリケーション用に生成した値を入力します。
- Red Hat OpenShift で、Secrets タブに移動し、Create をクリックします。
- Key/value secret を選択します。
-
Secret name を
github-secrets
として入力します。 環境変数を Key と Value として追加し、Create をクリックします。
表3.1 環境変数 キー 値 GITHUB_OAUTH_CLIENT_ID
OAuth アプリケーションからのクライアント ID
GITHUB_OAUTH_CLIENT_SECRET
OAuth アプリケーションからのクライアントシークレット
次のように
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}
- Save をクリックします。
- Helm タブに移動し、Upgrade を選択します。
Helm 設定を編集するには、次のいずれかのビューを使用します。
Form ビュー の使用
-
Root Schema
Backstage Chart Schema Backstage Parameters Backstage container environment variables を既存の Secrets を展開します。 - Add Backstage container environment variables from existing Secrets リンクをクリックします。
-
github-secrets
を値として入力します。 - Upgrade をクリックします。
-
Root Schema
YAML ビュー の使用
以下の例のように、
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
- Upgrade をクリックします。
3.2.2. GitHub 統合の設定
Developer Hub で GitHub プラグインを有効にするには、GitHub の設定が必要です。
手順
- Red Hat OpenShift クラスターで、OAuth アプリケーションを作成する GitHub 組織のメインページに移動します。
-
Settings
Developer Settings GitHub Apps New GitHub App をクリックします。 -
アプリケーション名として
Developer Hub
と入力します。 Homepage URL として次の URL を追加します。
https://developer-hub-<NAMESPACE_NAME>.<OPENSHIFT_ROUTE_HOST>/
Authorization callback URL として次の URL を追加します。
https://developer-hub-<NAMESPACE_NAME>.<OPENSHIFT_ROUTE_HOST>/api/auth/github/handler/frame
-
Webhook URL
Active の選択を解除します。 - Where can this GitHub App be installed? セクションで、Only on this account が選択されていることを確認します。
- Register application をクリックします。
- アプリケーションを作成した後、Generate a new client secret をクリックし、生成されたクライアントシークレットをコピーします。
- ページの下部にある Generate a private key をクリックし、生成されたファイルをダウンロードします。
- OpenShift で、ConfigMaps をクリックします。
指定された環境変数をキーとして使用して、'github-secrets' という名前のキー/値のシークレットを生成し、GitHub OAuth アプリケーション用に生成した値を入力します。
- Red Hat OpenShift で、Secrets タブに移動し、Create をクリックします。
- Key/value secret を選択します。
-
Secret name を
github-secrets
として入力します。 - 環境変数を Key と Value として追加し、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
ダウンロードした秘密鍵をアップロードします
次のように
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}
-
Toplogy
developer hub Actions (ドロップダウン) Restart rollout をクリックします。
3.2.3. Red Hat Developer Hub での GitHub 検出の有効化
Developer Hub 内のコンポーネント (catalog-info.yaml
ファイルを含むリポジトリーなど) に対して GitHub の検出機能を有効にすることができます。
前提条件
- GitHub 統合を設定している。詳細は、「GitHub 統合の設定」 を参照してください。
手順
- OpenShift Container Platform Web コンソールの Developer パースペクティブで、Helm タブに移動します。
- Helm リリースのオーバーフローメニューをクリックし、Upgrade を選択します。
Helm 設定を編集するには、次のいずれかのビューを使用します。
Form ビュー の使用
-
Root Schema
global Dynamic plugins configuration List of dynamic plugins that should be installed in the backstage application を展開します。 - Add List of dynamic plugins that should be installed in the backstage application をクリックします。
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
- Upgrade をクリックします。
-
Root Schema
YAML ビュー の使用
以下の例のように、
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
- Upgrade をクリックします。
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
が必要です。- Save をクリックします。
3.2.4. Red Hat Developer Hub での GitHub 組織メンバー検出の有効化
GitHub 組織のメンバーに対して GitHub の検出機能を有効にすることもできます。
前提条件
- GitHub 統合を設定している。詳細は、「GitHub 統合の設定」 を参照してください。
手順
- OpenShift Container Platform Web コンソールの Developer パースペクティブで、Helm タブに移動します。
- Helm リリースのオーバーフローメニューをクリックし、Upgrade を選択します。
Helm 設定を編集するには、次のいずれかのビューを使用します。
Form ビュー の使用
-
Root Schema
global Dynamic plugins configuration List of dynamic plugins that should be installed in the backstage application を展開します。 - Add List of dynamic plugins that should be installed in the backstage application をクリックします。
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
- Upgrade をクリックします。
-
Root Schema
YAML ビュー の使用
以下の例のように、
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
- Upgrade をクリックします。
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 組織に置き換える必要がある変数を示します。
- Save をクリックします。