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.yamlファイルに追加します。proxy: endpoints: # Other Proxies # customize developer hub instance '/developer-hub': target: ${HOMEPAGE_DATA_URL}1 changeOrigin: true # Change to "false" in case of using self-hosted cluster with a self-signed certificate secure: true- 1
http://<SERVICE_NAME>:8080 (例:http://rhdh-customization-provider:8080)
注記red-hat-developer-hub-customization-providerサービスには、デフォルトで 8080 ポートが含まれています。カスタムポートを使用している場合は、app-config.yamlファイルの 'PORT' 環境変数で指定できます。-
rhdh-secretsに URL を追加するか、カスタム ConfigMap で直接置き換えることで、HOMEPAGE_DATA_URLを置き換えます。 - 新しい設定が正しく読み込まれるように、Developer Hub Pod を削除します。
検証
サービスを表示するには、OpenShift Container Platform Web コンソールの Administrator パースペクティブに移動し、Networking > Service をクリックします。
注記Topology ビューで サービスリソース を表示することもできます。
次の例に示すように、指定した 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 インスタンスはデフォルトのローカルデータにフォールバックします。
-
イメージまたはアイコンが読み込まれない場合は、次の例に示すように、イメージまたはアイコンのホスト URL をカスタム ConfigMap のコンテンツセキュリティーポリシー(csp)
img-srcに追加して許可リストします。
kind: ConfigMap
apiVersion: v1
metadata:
name: app-config.yaml
data:
app-config.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