Red Hat Developer Hub のスタートガイド
はじめに リンクのコピーリンクがクリップボードにコピーされました!
開発者は Red Hat Developer Hub を使用して効率的な開発環境を利用できます。Red Hat Developer Hub は一元化されたソフトウェアカタログを採用しており、マイクロサービスとインフラストラクチャーの効率向上を実現します。これにより、製品チームは妥協することなく高品質のコードを提供できるようになります。
Red Hat Developer Hub のサポート リンクのコピーリンクがクリップボードにコピーされました!
このマニュアルに記載されている手順で問題が発生した場合は、Red Hat カスタマーポータル を参照してください。Red Hat カスタマーポータルは次の目的に使用できます。
- Red Hat 製品に関する技術サポート記事の Red Hat ナレッジベースの検索または閲覧。
- Red Hat Global Support Services (GSS) の サポートケース の作成。サポートケースを作成するには、製品として Red Hat Developer Hub を選択し、適切な製品バージョンを選択してください。
第1章 Red Hat Developer Hub の概要 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub (Developer Hub) は、デベロッパーポータルの構築を目的としたオープンな開発者プラットフォームです。Developer Hub を使用すると、エンジニアリングチームは、開発プロセスを合理化し、高品質のソフトウェアを効率的に構築するためのさまざまなツールやリソースを提供する統合プラットフォームにアクセスできます。
Developer Hub の目標は、以下を使用してデベロッパーポータルの作成と維持に伴う問題に対処することです。
- 生産性を高める利用可能な開発者ツールとリソースをすべて確認できる一元化されたダッシュボード
- エンタープライズクラスのベストプラクティスに準拠したクラウドネイティブアプリケーション開発に役立つセルフサービス機能と guardrails
- 企業全体のすべての開発者に対する適切なセキュリティーとガバナンス
Red Hat Developer Hub は、内部で承認されたツール、プログラミング言語、およびさまざまな開発者リソースを、自己管理型のポータル内で厳選して開発者に提供し、意思決定を簡素化します。このアプローチは、イノベーションを促進しながら、アプリケーション開発の加速とコード品質の維持に貢献します。
第2章 Red Hat Developer Hub のインストール リンクのコピーリンクがクリップボードにコピーされました!
管理ユーザーは、ロール、権限、その他の設定を設定して、他の承認済みユーザーが複数のプラットフォームに Red Hat Developer Hub をインストールできます。Developer Hub は、Helm チャートまたは Red Hat Developer Hub Operator を使用してインストールできます。
Developer Hub のインストールの詳細は、Red Hat Developer Hub 管理ガイド を参照してください。
第3章 Red Hat Developer Hub でサポートされる設定 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Red Hat Developer Hub にアクセスするために必要な以下の設定について説明します。
- カスタムアプリケーション設定
- Developer Hub カタログのソース管理設定
3.1. Red Hat OpenShift Container Platform にカスタムアプリケーション設定ファイルを追加する リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub にアクセスするには、OpenShift にカスタムアプリケーション設定ファイルを追加する必要があります。OpenShift Container Platform では、次のコンテンツをベーステンプレートとして使用して、app-config-rhdh という名前の ConfigMap を作成できます。
kind: ConfigMap
apiVersion: v1
metadata:
name: app-config-rhdh
data:
app-config-rhdh.yaml: |
app:
title: Red Hat Developer Hub
前提条件
- Red Hat OpenShift Container Platform アカウントを作成している。
手順
- OpenShift Container Platform Web コンソールから、ConfigMaps タブを選択します。
- Create ConfigMap をクリックします。
- Create ConfigMap ページで、Configure via の YAML view オプションを選択し、必要に応じてファイルに変更を加えます。
- Create をクリックします。
Helm タブに移動します。
Helm リリースのリストがページに表示されます。
- Helm リリースのオーバーフローメニューをクリックし、Upgrade を選択します。
Helm 設定を編集するには、次のいずれかのビューを使用します。
Form ビュー の使用
- Root Schema → Backstage chart schema → Backstage parameters → Extra app configuration files to inline into command arguments を展開します。
- Add Extra app configuration files to inline into command arguments リンクをクリックします。
以下のフィールドに値を入力します。
-
configMapRef:
app-config-rhdh -
filename:
app-config-rhdh.yaml
-
configMapRef:
- Upgrade をクリックします。
YAML ビュー の使用
以下のように
upstream.backstage.extraAppConfig.configMapRefパラメーターおよびupstream.backstage.extraAppConfig.filenameパラメーターの値を設定します。# ... other Red Hat Developer Hub Helm Chart configurations upstream: backstage: extraAppConfig: - configMapRef: app-config-rhdh filename: app-config-rhdh.yaml # ... other Red Hat Developer Hub Helm Chart configurations- Upgrade をクリックします。
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 をクリックします。
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 ビュー の使用
- Root Schema → Backstage Chart Schema → Backstage Parameters → Backstage container environment variables を既存の Secrets を展開します。
- Add Backstage container environment variables from existing Secrets リンクをクリックします。
-
github-secretsを値として入力します。 - Upgrade をクリックします。
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 をクリックします。
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 ビュー の使用
- 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 をクリックします。
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 packcommand. で、次の値を追加します。./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-org-dynamic
- Upgrade をクリックします。
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 をクリックします。
第4章 Red Hat Developer Hub の Home ページのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub では、Home ページのデータを設定できます。Home ページのデータはプロキシーとして app-config.yaml ファイルに渡すことができます。Home ページのデータは、次の方法を使用して提供できます。
ホストされている JSON ファイル、GitHub または GitLab を使用します。JSON ファイルのデータにアクセスするには、
app-config.yamlファイルに次のコードを追加します。proxy: endpoints: # Other Proxies # customize developer hub instance '/developer-hub': target: <DOMAIN_URL> # i.e https://raw.githubusercontent.com/ pathRewrite: '^/api/proxy/developer-hub': <path to json file> # i.e /janus-idp/backstage-showcase/main/packages/app/public/homepage/data.json changeOrigin: true secure: true # Change to "false" in case of using self hosted cluster with a self-signed certificate headers: <HEADER_KEY>: <HEADER_VALUE> # optional and can be passed as needed i.e Authorization can be passed for private GitHub repo and PRIVATE-TOKEN can be passed for private GitLab repoAPI を使用して JSON 形式の Home ページのデータを提供する別のサービスを使用します。
注記Home ページのデータと Tech Radar のデータを同じサービスで提供する必要はありません。
ホームページと Tech Radar の両方にデータを提供するサンプルサービスとして、
red-hat-developer-hub-customization-providerを使用できます。red-hat-developer-hub-customization-providerサービスは、デフォルトの Developer Hub データと同じデータを提供します。必要に応じて、GitHub からred-hat-developer-hub-customization-providerサービスリポジトリーをフォークし、独自のデータで変更できます。
このセクションでは、Developer Hub Helm チャートがデプロイされているクラスターに red-hat-developer-hub-customization-provider サービスをデプロイする方法について説明します。
前提条件
- Helm チャートを使用して Red Hat Developer Hub をインストールしている。詳細は、2章Red Hat Developer Hub のインストール を参照してください。
手順
- Red Hat OpenShift で、+Add を選択し、Import from Git オプションをクリックします。
Git リポジトリーの URL を Git Repo URL フィールドに追加します。
red-hat-developer-hub-customization-providerサービスを使用するには、red-hat-developer-hub-customization-provider リポジトリーの URL を追加できます。- General セクションで、Name フィールドの値の名前を rhdh-customization-provider に変更し、Create をクリックします。
Advanced Options に移動し、Target Port から値をコピーします。
Target Port は、通信する Kubernetes または OpenShift サービスを自動的に生成するために使用されます。
サービスを表示するには、OpenShift Administrator ビューに移動し、Networking → Service セクションに移動します。
Topology ビューで Service Resources を表示することもできます。
例を使用してこの手順に従うと、
rhdh-customization-providerサービスが呼び出され、8080 ポートが追加されます。次の例に示すように、指定した Home ページの API URL から、JSON 形式でデータが返される必要があります。[ { "title": "Dropdown 1", "isExpanded": false, "links": [ { "iconUrl": "https://imagehost.com/image.png", "label": "Dropdown 1 Item 1", "url": "https://example.com/" }, { "iconUrl": "https://imagehost2.org/icon.png", "label": "Dropdown 1 Item 2", "url": "" } ] }, { "title": "Dropdown 2", "isExpanded": true, "links": [ { "iconUrl": "http://imagehost3.edu/img.jpg", "label": "Dropdown 2 Item 1", "url": "http://example.com" } ] } ]要求の呼び出しが失敗した場合や、設定されていない場合、Developer Hub インスタンスはデフォルトのローカルデータにフォールバックします。
Red Hat Developer Hub の Home ページにアクセスするには、ベース URL に
/developer-hubプロキシーが含まれている必要があります。次のコードを
app-config-rhdh.yamlファイルに追加します。proxy: endpoints: # Other Proxies # customize developer hub instance '/developer-hub': target: ${HOMEPAGE_DATA_URL} changeOrigin: true # Change to "false" in case of using self-hosted cluster with a self-signed certificate secure: trueAPI 要求の呼び出しが JSON 形式で応答を返すことを確認します。
HOMEPAGE_DATA_URLをhttp://<SERVICE_NAME>:8080 と定義します。たとえば、`http://rhdh-customization-provider:8080とします。HOMEPAGE_DATA_URLを置き換えるには、URL をrhdh-secretsに追加するか、カスタム ConfigMap で直接置き換えます。Developer Hub Pod を削除して、変更を取り込みます。
イメージまたはアイコンが読み込まれない場合は、次のように、カスタム ConfigMap のコンテンツセキュリティーポリシー (csp) の
img-srcにイメージまたはアイコンのホスト URL を追加して、イメージまたはアイコンをホワイトリストに登録します。kind: ConfigMap apiVersion: v1 metadata: name: app-config-rhdh data: app-config-rhdh.yaml: | app: title: Red Hat Developer Hub backend: csp: connect-src: - "'self'" - 'http:' - 'https:' img-src: - "'self'" - 'data:' - <image host url 1> - <image host url 2> - <image host url 3> # Other Configurationsその後、Pod を削除して、新しい設定が正しくロードされていることを確認します。
第5章 Red Hat Developer Hub の Tech Radar ページのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub では、Helm チャートの動的プラグイン機能を使用しても、Tech Radar ページが有効になりません。
Home ページのカスタマイズと同様に、Tech Radar のベース URL に /developer-hub/tech-radar プロキシーが含まれている必要があります。Tech Radar ページのデータは、次の方法を使用して提供できます。
ホストされている JSON ファイル、GitHub または GitLab を使用します。JSON ファイルのデータにアクセスするには、
app-config.yamlファイルに次のコードを追加します。proxy: endpoints: # Other Proxies # customize developer hub instance '/developer-hub': target: <DOMAIN_URL> # i.e https://raw.githubusercontent.com/ pathRewrite: '^/api/proxy/developer-hub/tech-radar': <path to json file> # i.e /janus-idp/backstage-showcase/main/packages/app/public/tech-radar/data-default.json '^/api/proxy/developer-hub': <path to json file> # i.e /janus-idp/backstage-showcase/main/packages/app/public/homepage/data.json changeOrigin: true secure: true # Change to "false" in case of using self hosted cluster with a self-signed certificate headers: <HEADER_KEY>: <HEADER_VALUE> # optional and can be passed as needed i.e Authorization can be passed for private GitHub repo and PRIVATE-TOKEN can be passed for private GitLab repo注記tech-radarとhomepageのクイックアクセスプロキシーに使用されるpathRewritesの間には重複が存在するため、tech-radarの設定 (^api/proxy/developer-hub/tech-radar) はhomepageの設定 (^/api/proxy/developer-hub) よりも前にある必要があります。Red Hat Developer Hub の Home ページをカスタマイズする方法の詳細は、4章Red Hat Developer Hub の Home ページのカスタマイズ を参照してください。
- API を使用して JSON 形式の Tech Radar のデータを提供する別のサービスを使用します。
前提条件
- Helm チャートを使用して Red Hat Developer Hub をインストールしている。詳細は、2章Red Hat Developer Hub のインストール を参照してください。
手順
次のコードを
app-config-rhdh.yamlファイルに追加します。proxy: endpoints: # Other Proxies '/developer-hub/tech-radar': target: ${TECHRADAR_DATA_URL} changeOrigin: true # Change to "false" in case of using self hosted cluster with a self-signed certificate secure: trueAPI 要求の呼び出しが JSON 形式で応答を返すことを確認します。
TECHRADAR_DATA_URL`をhttp://<SERVICE_NAME>/tech-radarと定義します (例:http://rhdh-customization-provider/tech-radar)。注記TECHRADAR_DATA_URLを定義するには、URL をrhdh-secretsに追加するか、カスタム ConfigMap 内の URL 値を直接置き換えます。- Developer Hub Pod を削除して、変更を取り込みます。
第6章 Red Hat Developer Hub の追加のカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Red Hat Developer Hub に適用できる追加のカスタマイズオプションについて説明します。
- タブのツールチップのカスタマイズ
タブのツールチップをカスタマイズするには、次の内容を
app-config-rhdh.yamlファイルに追加します。app: title: My custom developer hub- Developer Hub インスタンスのブランディングのカスタマイズ
Developer Hub インスタンスのブランディングをカスタマイズするには、次の内容を
app-config-rhdh.yamlファイルに追加します。app: branding: fullLogo: ${BASE64_EMBEDDED_FULL_LOGO} iconLogo: ${BASE64_EMBEDDED_ICON_LOGO} theme: light: primaryColor: ${PRIMARY_LIGHT_COLOR} headerColor1: ${HEADER_LIGHT_COLOR_1} headerColor2: ${HEADER_LIGHT_COLOR_2} navigationIndicatorColor: ${NAV_INDICATOR_LIGHT_COLOR} dark: primaryColor: ${PRIMARY_DARK_COLOR} headerColor1: ${HEADER_DARK_COLOR_1} headerColor2: ${HEADER_DARK_COLOR_2} navigationIndicatorColor: ${NAV_INDICATOR_DARK_COLOR}上記の設定の各部分について説明します。
-
fullLogoは、展開された (固定された) サイドバー上のロゴであり、base64 でエンコードされた画像を想定しています。 -
iconLogoは、折りたたまれた (固定されていない) サイドバーのロゴであり、base64 でエンコードされた画像を想定しています。 primaryColorは、リンクとほとんどのボタンの色を、入力された色に設定します。primaryColorでサポートされている形式は次のとおりです。-
#nnn -
#nnnnnn -
rgb() -
rgba() -
hsl() -
hsla() -
color()
-
headerColor1(バナーの左側) とheaderColor2(バナーの右側) は、各ページのヘッダーバナーの色と、テンプレートカードのバナーの色を変更します。headerColor1とheaderColor2でサポートされている形式は次のとおりです。-
#nnn -
#nnnnnn -
rgb() -
rgba() -
hsl() -
hsla() -
color()
-
navigationIndicatorColorは、現在どのタブにいるかを示すサイドバーのインジケーターの色を変更します。navigationIndicatorColorでサポートされている形式は次のとおりです。-
#nnn -
#nnnnnn -
rgb() -
rgba() -
hsl() -
hsla() -
color()
-
-
第7章 Red Hat Developer Hub のテーマのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub (Developer Hub) のテーマモードをカスタマイズできます。
RHDH は次のテーマモードをサポートしています。
- ライトテーマ (デフォルト)
- ダークテーマ
- 自動
前提条件
- RHDH Web コンソールにログインしている。
手順
- Settings をクリックします。
Appearance パネルで、LIGHT THEME、DARK THEME、または AUTO をクリックしてテーマモードを変更します。
第8章 Red Hat Developer Hub の ServiceNow カスタムアクション リンクのコピーリンクがクリップボードにコピーされました!
本章の機能はテクノロジープレビュー機能です。テクノロジープレビュー機能は、実稼働環境での Red Hat サービスレベルアグリーメント (SLA) ではサポートされておらず、機能的に完全ではない可能性があるため、Red Hat では実稼働環境での使用を推奨していません。これらの機能は、今後の製品機能への早期アクセスを提供することで、お客様が機能をテストし、開発プロセス中にフィードバックを提供できるようにしています。
Red Hat のテクノロジープレビュー機能のサポートの詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Red Hat Developer Hub では、カタログ内のリソースを取得して登録する ServiceNow カスタムアクション (カスタムアクション) にアクセスできます。
Developer Hub のカスタムアクションを使用すると、レコードの管理を容易化、自動化できます。カスタムアクションを使用すると、次の操作を実行できます。
- レコードの作成、更新、または削除
- 1 つまたは複数のレコードに関する情報の取得
8.1. Red Hat Developer Hub の ServiceNow カスタムアクションプラグインの有効化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub では、ServiceNow カスタムアクションはプリロードされたプラグインとして提供されますが、デフォルトでは無効になっています。次の手順でカスタムアクションプラグインを有効にできます。
前提条件
- Red Hat Developer Hub がインストールされ、実行されている。Developer Hub のインストールの詳細は、2章Red Hat Developer Hub のインストール を参照してください。
- Developer Hub でプロジェクトを作成している。
手順
カスタムアクションプラグインを有効にするには、プラグイン名を持つ
packageを追加し、Helm チャートのdisabledフィールドを次のように更新します。global: dynamic: includes: - dynamic-plugins.default.yaml plugins: - package: ./dynamic-plugins/dist/janus-idp-backstage-scaffolder-backend-module-servicenow-dynamic disabled: false注記プラグインのデフォルト設定は、
dynamic-plugins.default.yamlファイルから抽出されます。ただし、pluginConfigエントリーを使用すると、デフォルト設定をオーバーライドできます。カスタムアクションにアクセスするには、Helm チャートで次の変数を設定します。
servicenow: # The base url of the ServiceNow instance. baseUrl: ${SERVICENOW_BASE_URL} # The username to use for authentication. username: ${SERVICENOW_USERNAME} # The password to use for authentication. password: ${SERVICENOW_PASSWORD}
8.2. Red Hat Developer Hub でサポートされている ServiceNow カスタムアクション リンクのコピーリンクがクリップボードにコピーされました!
ServiceNow カスタムアクションを使用すると、Red Hat Developer Hub でレコードを管理できます。カスタムアクションは、API 要求で次の HTTP メソッドをサポートします。
-
GET: 指定したリソースのエンドポイントから指定した情報を取得する -
POST: リソースを作成または更新する -
PUT: リソースを変更する -
PATCH: リソースを更新する -
DELETE: リソースを削除する
8.2.1. ServiceNow カスタムアクション リンクのコピーリンクがクリップボードにコピーされました!
- [GET] servicenow:now:table:retrieveRecord
Developer Hub のテーブルから指定のレコードの情報を取得します。
Expand 表8.1 入力パラメーター 名前 型 要件 説明 tableNamestring必須
レコードの取得元のテーブル名
sysIdstring必須
取得するレコードの一意の識別子
sysparmDisplayValueenum("true", "false", "all")任意
trueに設定してフィールド表示値を返すか、falseに設定して実際の値を返すか、またはその両方を返します。デフォルト値はfalseです。sysparmExcludeReferenceLinkboolean任意
参照フィールドのテーブル API リンクを除外するには、
trueに設定します。デフォルト値はfalseです。sysparmFieldsstring[]任意
応答で返されるフィールドの配列
sysparmViewstring任意
指定された UI ビューに従って応答を表示します。
sysparm_fieldsを使用してこのパラメーターをオーバーライドできます。sysparmQueryNoDomainboolean任意
ドメイン間でデータにアクセスするには (許可されている場合)、
trueに設定します。デフォルト値はfalseです。Expand 表8.2 出力パラメーター 名前 型 説明 resultRecord<PropertyKey, unknown>要求の応答ボディー
- [GET] servicenow:now:table:retrieveRecords
Developer Hub のテーブルから複数のレコードに関する情報を取得します。
Expand 表8.3 入力パラメーター 名前 型 要件 説明 tableNamestring必須
レコードの取得元のテーブル名
sysparamQuerystring任意
結果をフィルタリングするために使用するエンコードされたクエリー文字列
sysparmDisplayValueenum("true", "false", "all")任意
trueに設定してフィールド表示値を返すか、falseに設定して実際の値を返すか、またはその両方を返します。デフォルト値はfalseです。sysparmExcludeReferenceLinkboolean任意
参照フィールドのテーブル API リンクを除外するには、
trueに設定します。デフォルト値はfalseです。sysparmSuppressPaginationHeaderboolean任意
ページネーションヘッダーを抑制するには、
trueに設定します。デフォルト値はfalseです。sysparmFieldsstring[]任意
応答で返されるフィールドの配列
sysparmLimitint任意
ページごとに返される結果の最大数。デフォルト値は
10,000です。sysparmViewstring任意
指定された UI ビューに従って応答を表示します。
sysparm_fieldsを使用してこのパラメーターをオーバーライドできます。sysparmQueryCategorystring任意
クエリーに使用するクエリーカテゴリーの名前
sysparmQueryNoDomainboolean任意
ドメイン間でデータにアクセスするには (許可されている場合)、
trueに設定します。デフォルト値はfalseです。sysparmNoCountboolean任意
テーブルに対して select count (*) を実行しません。デフォルト値は
falseです。Expand 表8.4 出力パラメーター 名前 型 説明 resultRecord<PropertyKey, unknown>要求の応答ボディー
- [POST] servicenow:now:table:createRecord
Developer Hub のテーブルにレコードを作成します。
Expand 表8.5 入力パラメーター 名前 型 要件 説明 tableNamestring必須
レコードの保存先のテーブル名
requestBodyRecord<PropertyKey, unknown>任意
指定のレコードで定義する各パラメーターのフィールド名と関連する値
sysparmDisplayValueenum("true", "false", "all")任意
trueに設定してフィールド表示値を返すか、falseに設定して実際の値を返すか、またはその両方を返します。デフォルト値はfalseです。sysparmExcludeReferenceLinkboolean任意
参照フィールドのテーブル API リンクを除外するには、
trueに設定します。デフォルト値はfalseです。sysparmFieldsstring[]任意
応答で返されるフィールドの配列
sysparmInputDisplayValueboolean任意
trueに設定して表示値を使用するか、falseに設定して実際の値を使用してフィールド値を設定します。デフォルト値はfalseです。sysparmSuppressAutoSysFieldboolean任意
システムフィールドの自動生成を抑制するには、
trueに設定します。デフォルト値はfalseです。sysparmViewstring任意
指定された UI ビューに従って応答を表示します。
sysparm_fieldsを使用してこのパラメーターをオーバーライドできます。Expand 表8.6 出力パラメーター 名前 型 説明 resultRecord<PropertyKey, unknown>要求の応答ボディー
- [PUT] servicenow:now:table:modifyRecord
Developer Hub のテーブルのレコードを変更します。
Expand 表8.7 入力パラメーター 名前 型 要件 説明 tableNamestring必須
レコードを変更するテーブルの名前
sysIdstring必須
変更するレコードの一意の識別子
requestBodyRecord<PropertyKey, unknown>任意
指定のレコードで定義する各パラメーターのフィールド名と関連する値
sysparmDisplayValueenum("true", "false", "all")任意
trueに設定してフィールド表示値を返すか、falseに設定して実際の値を返すか、またはその両方を返します。デフォルト値はfalseです。sysparmExcludeReferenceLinkboolean任意
参照フィールドのテーブル API リンクを除外するには、
trueに設定します。デフォルト値はfalseです。sysparmFieldsstring[]任意
応答で返されるフィールドの配列
sysparmInputDisplayValueboolean任意
trueに設定して表示値を使用するか、falseに設定して実際の値を使用してフィールド値を設定します。デフォルト値はfalseです。sysparmSuppressAutoSysFieldboolean任意
システムフィールドの自動生成を抑制するには、
trueに設定します。デフォルト値はfalseです。sysparmViewstring任意
指定された UI ビューに従って応答を表示します。
sysparm_fieldsを使用してこのパラメーターをオーバーライドできます。sysparmQueryNoDomainboolean任意
ドメイン間でデータにアクセスするには (許可されている場合)、
trueに設定します。デフォルト値はfalseです。Expand 表8.8 出力パラメーター 名前 型 説明 resultRecord<PropertyKey, unknown>要求の応答ボディー
- [PATCH] servicenow:now:table:updateRecord
Developer Hub のテーブルのレコードを更新します。
Expand 表8.9 入力パラメーター 名前 型 要件 説明 tableNamestring必須
レコードを更新するテーブルの名前
sysIdstring必須
更新するレコードの一意の識別子
requestBodyRecord<PropertyKey, unknown>任意
指定のレコードで定義する各パラメーターのフィールド名と関連する値
sysparmDisplayValueenum("true", "false", "all")任意
trueに設定してフィールド表示値を返すか、falseに設定して実際の値を返すか、またはその両方を返します。デフォルト値はfalseです。sysparmExcludeReferenceLinkboolean任意
参照フィールドのテーブル API リンクを除外するには、
trueに設定します。デフォルト値はfalseです。sysparmFieldsstring[]任意
応答で返されるフィールドの配列
sysparmInputDisplayValueboolean任意
trueに設定して表示値を使用するか、falseに設定して実際の値を使用してフィールド値を設定します。デフォルト値はfalseです。sysparmSuppressAutoSysFieldboolean任意
システムフィールドの自動生成を抑制するには、
trueに設定します。デフォルト値はfalseです。sysparmViewstring任意
指定された UI ビューに従って応答を表示します。
sysparm_fieldsを使用してこのパラメーターをオーバーライドできます。sysparmQueryNoDomainboolean任意
ドメイン間でデータにアクセスするには (許可されている場合)、
trueに設定します。デフォルト値はfalseです。Expand 表8.10 出力パラメーター 名前 型 説明 resultRecord<PropertyKey, unknown>要求の応答ボディー
- [DELETE] servicenow:now:table:deleteRecord
Developer Hub のテーブルからレコードを削除します。
Expand 表8.11 入力パラメーター 名前 型 要件 説明 tableNamestring必須
レコードを削除するテーブルの名前
sysIdstring必須
削除するレコードの一意の識別子
sysparmQueryNoDomainboolean任意
ドメイン間でデータにアクセスするには (許可されている場合)、
trueに設定します。デフォルト値はfalseです。
第9章 GitHub 認証プロバイダー リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub は、ビルトインの GitHub 認証プロバイダーを使用して、GitHub または GitHub Enterprise でユーザーを認証します。
9.1. GitHub アプリケーションの概要 リンクのコピーリンクがクリップボードにコピーされました!
GitHub アプリケーションは一般に、OAuth アプリケーションよりも推奨されます。これは、GitHub アプリケーションは詳細な権限を使用し、アプリケーションがアクセスできるリポジトリーをより詳細に制御し、有効期間の短いトークンを使用するためです。詳細は、GitHub ドキュメントの GitHub Apps overview を参照してください。
9.2. GitHub アプリケーションの登録 リンクのコピーリンクがクリップボードにコピーされました!
GitHub アプリケーションでは、そのアプリケーションの一部として許可されたスコープを設定します。そのため、プラグインが必要とするスコープを検証する必要があります。スコープ情報はプラグインの README ファイルで入手できます。
GitHub 認証を追加するには、GitHub Web サイトの Registering a GitHub App の手順を実行します。
次の例を使用して、実稼働環境に関する情報を Register new GitHub App ページの必須フィールドに入力します。
- アプリケーション名: Red Hat Developer Hub
-
ホームページ URL:
https://developer-hub-<NAMESPACE_NAME>.<KUBERNETES_ROUTE_HOST> -
認証コールバック URL:
https://developer-hub-<NAMESPACE_NAME>.<KUBERNETES_ROUTE_HOST>/api/auth/github/handler/frame
ホームページ URL は Developer Hub のフロントエンドを指し、認可コールバック URL は認証プロバイダーのバックエンドを指します。
9.3. Developer Hub での GitHub アプリケーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
Developer Hub の GitHub 認証を追加するには、app-config.yaml ファイルで GitHub アプリケーションを設定する必要があります。
GitHub 認証プロバイダーは次の設定キーを使用します。
-
clientId: GitHub で生成したクライアント ID。例: b59241722e3c3b4816e2 -
clientSecret: 生成したクライアント ID に関連付けられたクライアントシークレット。 -
enterpriseInstanceUrl(オプション): GitHub Enterprise インスタンスのベース URL。たとえば、https://ghe.<company>.comです。enterpriseInstanceUrlは GitHub Enterprise にのみ必要です。 -
callbackUrl(オプション): OAuth フローを開始するときに GitHub が使用するコールバック URL。たとえば、https://your-intermediate-service.com/handler です。callbackUrlは、多数の Developer Hub インスタンスに対して 1 つの OAuth アプリケーションを使用する場合など、Developer Hub が直接の受信者ではない場合にのみ必要です。
GitHub アプリケーションを設定するには、ルート認証設定の下にある app-config.yaml ファイルにプロバイダー設定を追加します。以下に例を示します。
auth:
environment: production
providers:
github:
production:
clientId: ${GITHUB_APP_CLIENT_ID}
clientSecret: ${GITHUB_APP_CLIENT_SECRET}
## uncomment if using GitHub Enterprise
# enterpriseInstanceUrl: ${GITHUB_URL}
9.4. GitHub プロバイダーの Developer Hub フロントエンドへの追加 リンクのコピーリンクがクリップボードにコピーされました!
プロバイダーをフロントエンドに追加するには、サインイン設定を app-config.yaml ファイルに追加します。以下に例を示します。
signInPage: github
関連情報
- GitHub を使用した Backstage アクセスの認証については、コミュニティードキュメントの GitHub Authentication Provider を参照してください。
- Backstage フロントエンドにプロバイダーを追加する方法については、コミュニティードキュメントの Enabling authentication in Showcase を参照してください。
第10章 OpenID Connect 認証プロバイダー リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub は、OpenID Connect (OIDC) 認証プロバイダーを使用して、OIDC プロトコルをサポートするサードパーティーのサービスで認証します。
10.1. Developer Hub での OIDC 認証プロバイダーの使用に関する概要 リンクのコピーリンクがクリップボードにコピーされました!
ルート認証設定の下にある app-config.yaml ファイルを更新することにより、Developer Hub で OIDC 認証プロバイダーを設定できます。以下に例を示します。
auth:
environment: production
# Providing an auth.session.secret will enable session support in the auth-backend
session:
secret: ${SESSION_SECRET}
providers:
oidc:
production:
metadataUrl: ${AUTH_OIDC_METADATA_URL}
clientId: ${AUTH_OIDC_CLIENT_ID}
clientSecret: ${AUTH_OIDC_CLIENT_SECRET}
prompt: ${AUTH_OIDC_PROMPT} # Recommended to use auto
## Uncomment for additional configuration options
# callbackUrl: ${AUTH_OIDC_CALLBACK_URL}
# tokenEndpointAuthMethod: ${AUTH_OIDC_TOKEN_ENDPOINT_METHOD}
# tokenSignedResponseAlg: ${AUTH_OIDC_SIGNED_RESPONSE_ALG}
# scope: ${AUTH_OIDC_SCOPE}
signInPage: oidc
10.2. OIDC 認証プロバイダーを使用した Keycloak の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub には、Keycloak を使用してユーザーを認証できる OIDC 認証プロバイダーが含まれています。
Keycloak で作成したユーザーは、Developer Hub カタログでも使用可能である必要があります。
手順
-
Keycloak で、
RHDHなどの新しいレルムを作成します。 新しいユーザーを追加します。
- ユーザー名
-
ユーザーのユーザー名。例:
rhdhuser - メール
- ユーザーのメールアドレス。
- 名
- ユーザーの名。
- 姓
- ユーザーの姓。
- メールの確認
- On に切り替えます。
- Create をクリックします。
- Credentials タブに移動します。
- Set password をクリックします。
- ユーザーアカウントの Password を入力し、Temporary を Off に切り替えます。
新しいクライアント ID (例:
RHDH)を作成します。- クライアント認証
- On に切り替えます。
- 有効なリダイレクト URI
-
OIDC ハンドラー URL に設定します (例:
https://<RHDH_URL>/api/auth/oidc/handler/frame)。
- Credentials タブに移動し、Client secret をコピーします。
- 次のステップのために、クライアント ID とクライアントシークレットを保存します。
Developer Hub で、Developer Hub シークレットに Keycloak 認証情報を追加します。
- secrets-rhdh などの Developer Hub シークレットを編集します。
以下のキーと値のペアを追加します。
AUTH_KEYCLOAK_CLIENT_ID-
Keycloak で生成したクライアント ID (
RHDHなど) を入力します。 AUTH_KEYCLOAK_CLIENT_SECRET- Keycloak で生成したクライアントシークレットを入力します。
Developer Hub のカスタム設定で OIDC 認証プロバイダーを設定します。
-
app-config-rhdhなどのカスタム Developer Hub ConfigMap を編集します。 app-config-rhdh.yamlコンテンツで、ルートauth設定の下にoidcプロバイダー設定を追加し、サインイン用にoidcプロバイダーを有効にします。app-config-rhdh.yamlフラグメントauth: environment: production providers: oidc: production: clientId: ${AUTH_KEYCLOAK_CLIENT_ID} clientSecret: ${AUTH_KEYCLOAK_CLIENT_SECRET} metadataUrl: ${KEYCLOAK_BASE_URL}/auth/realms/${KEYCLOAK_REALM} prompt: ${KEYCLOAK_PROMPT} # recommended to use auto ## Uncomment for additional configuration options #callbackUrl: ${KEYCLOAK_CALLBACK_URL} #tokenEndpointAuthMethod: ${KEYCLOAK_TOKEN_ENDPOINT_METHOD} #tokenSignedResponseAlg: ${KEYCLOAK_SIGNED_RESPONSE_ALG} #scope: ${KEYCLOAK_SCOPE} signInPage: oidc
-
検証
-
backstage-developer-hubアプリケーションを再起動して変更を適用します。 - Developer Hub のサインインページに、Sign in using OIDC と表示されます。
10.3. Developer Hub の Keycloak を使用した OAuth2 プロキシーから OIDC への移行 リンクのコピーリンクがクリップボードにコピーされました!
Keycloak で認証プロバイダーとして OAuth2 Proxy を使用しており、OIDC に移行する場合は、認証プロバイダーの設定を更新して OIDC を使用できます。
手順
-
Keycloak で、有効なリダイレクト URI を
https://<rhdh_url>/api/auth/oidc/handler/frameに更新します。<rhdh_url>は、my.rhdh.example.comなどの Developer Hub アプリケーションの URL に置き換えてください。 -
app-config.yamlファイルのauthセクションにあるoauth2Proxy設定値をoidc設定値に置き換えます。 signInPage設定値をoauth2Proxyからoidcに更新します。次の例は、認証プロバイダーを
oidcに移行する前のoauth2Proxyのauth.providersおよびsignInPage設定を示しています。auth: environment: production session: secret: ${SESSION_SECRET} providers: oauth2Proxy: {} signInPage: oauth2Proxy次の例は、認証プロバイダーを
oidcに移行した後のauth.providersおよびsignInPage設定を示しています。auth: environment: production session: secret: ${SESSION_SECRET} providers: oidc: production: metadataUrl: ${KEYCLOAK_METADATA_URL} clientId: ${KEYCLOAK_CLIENT_ID} clientSecret: ${KEYCLOAK_CLIENT_SECRET} prompt: ${KEYCLOAK_PROMPT} # recommended to use auto signInPage: oidcOAuth2 プロキシーサイドカーコンテナーを削除し、Helm チャートの
values.yamlファイルのupload.serviceセクションを次のように更新します。-
service.ports.backend:7007 service.ports.targetPort:backend次の例は、認証プロバイダーを
oidcに移行する前のoauth2Proxyのservice設定を示しています。service: ports: name: http-backend backend: 4180 targetPort: oauth2Proxy次の例は、認証プロバイダーを
oidcに移行した後のservice設定を示しています。service: ports: name: http-backend backend: 7007 targetPort: backend
-
- Developer Hub Helm チャートをアップグレードします。