10.2. 専用サービスを使用したクイックアクセスカードへのデータの提供
専用サービスを利用すると、次のことができます。
- 同じサービスを使用して、設定可能なすべての Developer Hub ページにデータを提供するか、ページごとに異なるサービスを使用できます。
-
Home ページと Tech Radar ページの両方にデータを提供するサンプルサービスとして、
red-hat-developer-hub-customization-provider
を使用できます。red-hat-developer-hub-customization-provider
サービスは、デフォルトの Developer Hub データと同じデータを提供します。必要に応じて、GitHub からred-hat-developer-hub-customization-provider
サービスリポジトリーをフォークし、独自のデータで変更できます。 -
red-hat-developer-hub-customization-provider
サービスと Developer Hub Helm チャートを同じクラスターにデプロイできます。
前提条件
- Helm チャートを使用して Red Hat Developer Hub をインストールしている。詳細は、Helm チャートを使用した OpenShift Container Platform への Red Hat Developer Hub のインストール を参照してください。
手順
個別のサービスを使用して Home ページのデータを提供するには、次の手順を実行します。
- Red Hat OpenShift Container Platform Web コンソールの Developer パースペクティブで、+Add > Import from Git をクリックします。
Git リポジトリーの URL を Git Repo URL フィールドに入力します。
red-hat-developer-hub-customization-provider
サービスを使用するには、red-hat-developer-hub-customization-provider リポジトリーの URL か、カスタマイズした内容が含まれているリポジトリーのフォークの URL を追加します。- General タブで、Name フィールドに red-hat-developer-hub-customization-provider と入力し、Create をクリックします。
Advanced Options タブで、Target Port から値をコピーします。
注記Target Port は、通信する Kubernetes または OpenShift Container Platform サービスを自動的に生成します。
次のコードを
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
HOMEPAGE_DATA_URL
は、http://<SERVICE_NAME>:8080
(例:http://rhdh-customization-provider:8080
) という形式で定義します。注記red-hat-developer-hub-customization-provider
サービスには、デフォルトで 8080 ポートが含まれています。カスタムポートを使用している場合は、app-config-rhdh.yaml
ファイルの 'PORT' 環境変数で指定できます。-
rhdh-secrets
に URL を追加するか、カスタム ConfigMap で直接置き換えることで、HOMEPAGE_DATA_URL
を置き換えます。 - 新しい設定が正しく読み込まれるように、Developer Hub Pod を削除します。
検証
サービスを表示するには、OpenShift Container Platform Web コンソールの Administrator パースペクティブに移動し、Networking > Service をクリックします。
注記Topology ビューで Service Resources を表示することもできます。
次の例に示すように、指定した 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 インスタンスはデフォルトのローカルデータにフォールバックします。
-
イメージまたはアイコンが読み込まれない場合は、次のように、カスタム 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