3.2. Red Hat Developer Hub へのカタログのソース管理の追加
Red Hat Developer Hub にカタログを追加するには、ソフトウェアテンプレートを追加する必要があります。テンプレートを追加するには、GitHub などのサポートされているソース管理を有効にする必要があります。
前提条件
- GitHub アカウントがある。
- Red Hat OpenShift クラスターにアカウントがある。
- Developer Hub がインストールされている。インストールされていない場合、GitHub ログインが失敗します。
インストールの詳細は、OpenShift Container Platform への 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 をクリックします。
Expand 表3.1 環境変数 キー 値 GITHUB_OAUTH_CLIENT_IDOAuth アプリケーションからのクライアント ID
GITHUB_OAUTH_CLIENT_SECRETOAuth アプリケーションからのクライアントシークレット
次のように
app-config-rhdhConfigMap を変更して、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 view を使用する場合
-
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 view を使用する場合
以下の例のように、
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 をクリックします。
Expand 表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-rhdhConfigMap を変更して、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 view を使用する場合
-
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 packcommand. で、次の値を追加します。./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamic
- Upgrade をクリックします。
-
Root Schema
YAML view を使用する場合
以下の例のように、
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 view を使用する場合
-
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 packcommand. で、次の値を追加します。./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-org-dynamic
- Upgrade をクリックします。
-
Root Schema
YAML view を使用する場合
以下の例のように、
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 をクリックします。