第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 repo
API を使用して 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: true
API 要求の呼び出しが 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 を削除して、新しい設定が正しくロードされていることを確認します。