Red Hat Developer Hub のカスタマイズ
テンプレート、Learning Paths、Tech Radar、Home ページ、クイックアクセスカードなど、Red Hat Developer Hub の外観と機能をカスタマイズします。
概要
はじめに リンクのコピーリンクがクリップボードにコピーされました!
承認されたユーザーは、テンプレート、Learning Paths、Tech Radar、Home ページ、クイックアクセスカードなど、Red Hat Developer Hub の外観と機能をカスタマイズできます。
第1章 Red Hat Developer Hub のタイトルのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
デフォルトの Red Hat Developer Hub 表示名を変更できます。
手順
カスタム
app-config.yamlファイルに、<Red Hat Developer Hub> などの Developer Hub インスタンスの表示名を入力します。app-config.yamlの抜粋app: title: My custom Red Hat Developer Hub title
第2章 Red Hat Developer Hub のベース URL のカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
デフォルトの Red Hat Developer Hub ベース URL を変更できます。
前提条件
- 必要な Developer Hub の外部 URL (https://<my_developer_hub_url>) がわかっており、Red Hat OpenShift Container Platform クラスターを指定するように DNS を設定している。
- カスタム Developer Hub 設定
手順
カスタム
app-config.yamlファイルに、https://<my_developer_hub_url> などの Developer Hub の外部 URL を入力します。app-config.yamlの抜粋app: baseUrl: https://<my_developer_hub_url> backend: baseUrl: https://<my_developer_hub_url> cors: origin: https://<my_developer_hub_url>
第3章 Red Hat Developer Hub バックエンドシークレットのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
デフォルトの Red Hat Developer Hub 設定では、サービス間認証用の Developer Hub バックエンドシークレットを定義します。
カスタム Developer Hub バックエンドシークレットを定義できます。
前提条件
- カスタムの Developer Hub アプリケーション設定を追加 した。また、その設定を変更するための十分な権限を持っている。
手順
Developer Hub のバックエンドシークレットを定義するには、カスタムの
<my_product_secrets>.txtファイルに、base64 でエンコードされた文字列を含むBACKEND_SECRET環境変数を追加します。各 Developer Hub インスタンスに一意の値を使用します。$ echo > <my_product_secrets>.txt "BACKEND_SECRET=$(node -p 'require("crypto").randomBytes(24).toString("base64")')"<my_product_secrets>.txtの例BACKEND_SECRET=3E2/rIPuZNFCtYHoxVP8wjriffnN1q/zカスタム
app-config.yamlファイルにバックエンドシークレットを追加します。バックエンドシークレットを定義する
app-config.yamlの抜粋backend: auth: externalAccess: - type: legacy options: subject: legacy-default-config secret: "${BACKEND_SECRET}"
第4章 テンプレートの設定 リンクのコピーリンクがクリップボードにコピーされました!
テンプレートを設定してソフトウェアコンポーネントを作成し、これらのコンポーネントを Red Hat Developer Hub ソフトウェアカタログや Git リポジトリーなどのさまざまな場所に公開します。
テンプレートは、YAML ファイルで定義されたさまざまな UI フィールドで構成されるフォームです。テンプレートには、actions が含まれます。actions とは、順番に実行され、条件付きで実行できるステップです。
4.1. Template Editor を使用して Software Template を作成する リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub Template Editor を使用して Software Template を作成します。
または、Template Editor を使用して、次のいずれかのアクションを実行することもできます。
- File > Open template directory
- File > Create template directory
- File > Close template editor
-
Custom Fields Explorer ボタンを使用して、
templates.yamlファイル内のカスタムフィールドをテストする - Installed Actions Documentation を表示する
手順
Template Editor のテンプレートを使用して Software Template を作成するには、次の手順を実行します。
- Red Hat Developer Hub のナビゲーションメニューで、Catalog をクリックします。
Overview メニューをクリックし、Manage Templates を選択します。
注記Managed Templates ページの次のオプションでは、Red Hat Developer Hub インスタンスにソフトウェアコンポーネントは作成されません。
-
Template Form Playground:
templates.yamlファイルの作成とテストに使用します。 - Custom Field Explorer: カスタムフィールドをテストするために使用します。
-
Template Form Playground:
Managed Templates ページで、次のいずれかのオプションを選択します。
Load Template Directory: 既存の
templates.yamlファイルをロードするために使用します。-
ローカルファイルマネージャーで、
templates.yamlファイルが保存されているフォルダーに移動し、Select をクリックします。
-
ローカルファイルマネージャーで、
Create New Template:
templates.yamlファイルを作成するために使用します。-
ローカルファイルマネージャーで、Template Editor で
templates.yamlファイルを作成するフォルダーに移動し、Select をクリックします。 -
Template Editor ページで、
templates.yamlファイルを選択します。 (オプション) テンプレートの仕様をプレビューしてテストできます。
- Fill in some steps タブで、必須フィールドにテキストを入力し、Next をクリックします。
- Repository Location タブで、必須フィールドにテキストを入力し、Review をクリックします。
- テンプレートのパラメーターの YAML 定義を変更します。これらのパラメーターの詳細は、「YAML ファイルとして Software Template を作成する」 を参照してください。
- 正確性の情報を確認し、Create をクリックします。
-
ローカルファイルマネージャーで、Template Editor で
検証
- ナビゲーションパネルの Catalog タブをクリックします。
- Kind ドロップダウンメニューで、Template を選択します。
- ソフトウェアテンプレートが既存のテンプレートのリストに表示されていることを確認します。
4.2. YAML ファイルとして Software Template を作成する リンクのコピーリンクがクリップボードにコピーされました!
Template オブジェクトを YAML ファイルとして定義することで、Software Template を作成できます。
Template オブジェクトは、テンプレートとそのメタデータを記述します。また、必要な入力変数と、スキャフォールディングサービスによって実行されるアクションのリストも含まれています。
Template オブジェクトの例
apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
name: template-name
title: Example template
description: An example template for v1beta3 scaffolder.
spec:
owner: backstage/techdocs-core
type: service
parameters:
- title: Fill in some steps
required:
- name
properties:
name:
title: Name
type: string
description: Unique name of the component
owner:
title: Owner
type: string
description: Owner of the component
- title: Choose a location
required:
- repoUrl
properties:
repoUrl:
title: Repository Location
type: string
steps:
- id: fetch-base
name: Fetch Base
action: fetch:template
# ...
output:
links:
- title: Repository
url: ${{ steps['publish'].output.remoteUrl }}
- title: Open in catalog
icon: catalog
entityRef: ${{ steps['register'].output.entityRef }}
# ...
- 1
- Software Template の名前を指定します。
- 2
- Software Template のタイトルを指定します。これは、Create… ビューのテンプレートタイルに表示されるタイトルです。
- 3
- Software Template の説明を指定します。これは、Create… ビューのテンプレートタイルに表示される説明です。
- 4
- Software Template の所有権を指定します。
ownerフィールドには、システムまたは組織内で Software Template の管理または監視を行うユーザーに関する情報が提供されます。上記の例では、ownerフィールドはbackstage/techdocs-coreに設定されています。これは、この Software Template が、backstagenamespace のtechdocs-coreプロジェクトに属していることを意味します。 - 5
- コンポーネントタイプを指定します。この必須フィールドには任意の文字列値を指定できますが、組織でこれらに対して適切な分類を確立する必要があります。Red Hat Developer Hub インスタンスはこのフィールドを読み取り、その値に応じて異なる動作をする場合があります。たとえば、
websiteタイプのコンポーネントは、Web サイト専用のツールを Red Hat Developer Hub インターフェイスに表示する場合があります。このフィールドに共通する値は次のとおりです。
service- 通常 API を公開するバックエンドサービス。
website- Web サイト
library- npm モジュールや Java ライブラリーなどのソフトウェアライブラリー。
- 6
parametersセクションを使用して、ユーザーが Red Hat Developer Hub コンソールで Software Template を使用してコンポーネントを作成する際に、フォームビューに表示されるユーザー入力のパラメーターを指定します。タイトルとプロパティーによって定義される各parametersサブセクションにより、その定義を含む新しいフォームページが作成されます。- 7
- バックエンドで実行されるステップを指定するには、
stepsセクションを使用します。これらのステップは、一意のステップ ID、名前、およびアクションを使用して定義する必要があります。https://<rhdh_url>/create/actionsURL にアクセスすると、Red Hat Developer Hub インスタンスで利用可能なアクションを表示できます。 - 8
outputセクションを使用して、テンプレートの使用時に作成される出力データの構造を指定します。output セクション、特にlinksサブセクションには、テンプレートから作成されたコンポーネントにアクセスして操作するためにユーザーが利用できる貴重な参照と URL が提供されます。- 9
- 生成されたコンポーネントに関連付けられたリポジトリーへの参照または URL を提供します。
- 10
- さまざまなコンポーネントが表示されているカタログまたはディレクトリーで、生成されたコンポーネントを表示できるようにする参照または URL を提供します。
4.3. 既存の Software Template を Red Hat Developer Hub にインポートする リンクのコピーリンクがクリップボードにコピーされました!
Catalog Processor を使用して、既存の Software Template を Red Hat Developer Hub インスタンスに追加できます。
前提条件
- 少なくとも 1 つのテンプレート YAML ファイルを含むディレクトリーまたはリポジトリーを作成した。
- GitHub や GitLab などのリポジトリーに保存されているテンプレートを使用する場合は、使用するプロバイダー用の Red Hat Developer Hub 統合を設定した。
手順
app-config.yaml設定ファイルで、catalog.rulesセクションを変更してテンプレートのルールを含め、追加するテンプレートを参照するようにcatalog.locationsセクションを設定します (次の例を参照)。# ... catalog: rules: - allow: [Template]1 locations: - type: url2 target: https://<repository_url>/example-template.yaml3 # ...
検証
- ナビゲーションパネルの Catalog タブをクリックします。
- Kind ドロップダウンメニューで、Template を選択します。
- ソフトウェアテンプレートが既存のソフトウェアテンプレートのリストに表示されていることを確認します。
第5章 Red Hat Developer Hub のラーニングパスのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub では、データをプロキシーとして app-config.yaml ファイルに渡すことで、ラーニングパスを設定できます。ベース URL には /developer-hub/learning-paths プロキシーを含める必要があります。
learning-path と homepage クイックアクセスプロキシーの両方に重複する pathRewrites を使用するため、learning-paths 設定 (^api/proxy/developer-hub/learning-paths) を作成してから、homepage 設定 (^/api/proxy/developer-hub) を作成する必要があります。
Red Hat Developer Hub の Home ページのカスタマイズの詳細は、Red Hat Developer Hub の Home ページのカスタマイズ を参照してください。
次のソースからラーニングパスにデータを提供できます。
- GitHub または GitLab でホストされている JSON ファイル
- API を使用してラーニングパスのデータを JSON 形式で提供する専用サービス
5.1. ホストされた JSON ファイルを使用したラーニングパスへのデータの提供 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
Operator または Helm チャートのいずれかを使用して Red Hat Developer Hub をインストールしている。詳細は、OpenShift Container Platform への Red Hat Developer Hub のインストール を参照してください。
手順
JSON ファイルからデータにアクセスするには、次の手順を実行します。
app-config.yamlファイルに次のコードを追加します。proxy: endpoints: '/developer-hub': target: https://raw.githubusercontent.com/ pathRewrite: '^/api/proxy/developer-hub/learning-paths': '/redhat-developer/rhdh/main/packages/app/public/learning-paths/data.json' '^/api/proxy/developer-hub/tech-radar': '/redhat-developer/rhdh/main/packages/app/public/tech-radar/data-default.json' '^/api/proxy/developer-hub': '/redhat-developer/rhdh/main/packages/app/public/homepage/data.json' changeOrigin: true secure: true
5.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 をインストールしている。詳細は、OpenShift Container Platform への Red Hat Developer Hub のインストール を参照してください。
手順
専用サービスを使用してラーニングパスのデータを提供するには、次の手順を実行します。
app-config.yamlファイル に次のコードを追加します。proxy: endpoints: # Other Proxies '/developer-hub/learning-paths': target: ${LEARNING_PATH_DATA_URL} changeOrigin: true # Change to "false" in case of using self hosted cluster with a self-signed certificate secure: trueLEARNING_PATH_DATA_URLは、http://<SERVICE_NAME>/learning-paths(例:http://rhdh-customization-provider/learning-paths) という形式で定義します。注記LEARNING_PATH_DATA_URLは、URL をrhdh-secretsに追加するか、カスタム ConfigMap 内の URL 値で直接置き換えることで定義できます。- 新しい設定が正しく読み込まれるように、Developer Hub Pod を削除します。
第6章 Red Hat Developer Hub のグローバルヘッダーの設定 リンクのコピーリンクがクリップボードにコピーされました!
管理者は、Red Hat Developer Hub のグローバルヘッダーを設定して、Developer Hub インスタンス全体で一貫性のある柔軟なナビゲーションバーを作成できます。デフォルトでは、Developer Hub のグローバルヘッダーには次のコンポーネントが含まれています。
- Create ボタンを使用すると、さまざまなテンプレートにすばやくアクセスできます。Developer Hub 内のサービス、バックエンド、フロントエンドのプラグインを効率的に設定できます。
- Support ボタンで、内部または外部のサポートページへのリンクを設定できます。
- Notifications ボタンで、プラグインや外部サービスからのアラートや更新を表示します。
- Search 入力フィールドを使用すると、Developer Hub 内のサービス、コンポーネント、ドキュメント、その他のリソースを検索できます。
- Plugin extension capabilities には、Developer Hub で利用可能なプラグインのプリインストール済みおよび有効化済みのカタログがあります。
- User profile ドロップダウンメニューから、プロファイル設定、外観のカスタマイズ、Developer Hub のメタデータ、ログアウトボタンにアクセスできます。
6.1. Red Hat Developer Hub のグローバルヘッダーのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
red-hat-developer-hub.backstage-plugin-global-header 動的プラグインを使用すると、追加のボタンでグローバルヘッダーを拡張し、アイコンと機能の順序と位置をカスタマイズできます。さらに、この新しいヘッダー機能によって提供されるマウントポイントを使用して、カスタム動的ヘッダープラグインを作成して統合できます。そのため、ニーズに合わせてさらにカスタマイズできます。動的プラグインの有効化の詳細は、Red Hat Developer Hub でのプラグインのインストールと表示 を参照してください。
デフォルトのグローバルヘッダー設定
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-global-header
disabled: false
pluginConfig:
app:
sidebar:
search: false
settings: false
dynamicPlugins:
frontend:
default.main-menu-items:
menuItems:
default.create:
title: ''
red-hat-developer-hub.backstage-plugin-global-header: # the default enabled dynamic header plugin
mountPoints:
- mountPoint: application/header
importName: GlobalHeader
config:
position: above-main-content
- mountPoint: global.header/component
importName: SearchComponent
config:
priority: 100
- mountPoint: global.header/component
importName: Spacer
config:
priority: 99
props:
growFactor: 0
- mountPoint: global.header/component
importName: HeaderIconButton
config:
priority: 90
props:
title: Create...
icon: add
to: create
- mountPoint: global.header/component
importName: SupportButton
config:
priority: 80
- mountPoint: global.header/component
importName: NotificationButton
config:
priority: 70
- mountPoint: global.header/component
importName: Divider
config:
priority: 50
- mountPoint: global.header/component
importName: ProfileDropdown
config:
priority: 10
- mountPoint: global.header/profile
importName: MenuItemLink
config:
priority: 100
props:
title: Settings
link: /settings
icon: manageAccounts
- mountPoint: global.header/profile
importName: LogoutButton
config:
priority: 10
- 1
- search: サイドバーメニューの Search モーダルを非表示にします。これを
trueに変更すると、サイドバーに Search モーダルが表示されます。 - 2
- settings: サイドバーメニューの Settings ボタンを非表示にします。これを
trueに変更すると、サイドバーに Settings ボタンが表示されます。 - 3
default.main-menu-items: サイドバーメニューから Create ボタンを非表示にします。サイドバーに Create ボタンを表示するには、このフィールドを削除します。- 4
- position: ヘッダーの位置を定義します。
above-main-contentまたはabove-sidebarを指定できます。
デフォルトのグローバルヘッダーの機能を拡張するには、グローバルヘッダーのエントリーに次の属性を含めます。
mountPoint-
ヘッダーの位置を指定します。ヘッダーをグローバルヘッダーとして指定するには、
application/headerを使用します。mountPointsフィールドにエントリーを追加することで、異なる位置に複数のグローバルヘッダーを設定できます。 importNameグローバルヘッダープラグインによってエクスポートされるコンポーネントを指定します。
red-hat-developer-hub.backstage-plugin-global-headerパッケージ (デフォルトで有効) は、使用可能なマウントポイントの値として次のヘッダーコンポーネントを提供します。-
SearchComponent: 検索バーを追加します (デフォルトで有効)。 -
Spacer: ヘッダーにスペースを追加して、ボタンを末尾に配置します。SearchComponentを無効にする場合に便利です。 -
HeaderIconButton: アイコンボタンを追加します。デフォルトでは、Create アイコンボタンが有効です。 -
SupportButton: Support アイコンボタンを追加します。このボタンを使用すると、内部ページまたは外部ページへのリンクを設定できます。デフォルトで有効になっていますが、表示するには追加の設定が必要です。 -
NotificationButton: 未読通知をリアルタイムで表示し、Notifications ページに移動するための Notifications アイコンボタンを追加します。デフォルトで有効になっています (通知プラグインが必要です)。 -
Divider: 縦の区切り線を追加します。デフォルトでは、プロファイルドロップダウンとその他のヘッダーコンポーネントの間に区切り線が表示されます。 -
ProfileDropdown: ログインしているユーザーの名前を表示するプロファイルドロップダウンを追加します。デフォルトでは、2 つのメニュー項目が含まれています。 -
MenuItemLink: ドロップダウンメニューにリンク項目を追加します。デフォルトでは、プロファイルドロップダウンには Settings ページへのリンクが含まれています。 -
LogoutButton: プロファイルドロップダウンにログアウトボタンを追加します (デフォルトで有効)。 -
CreateDropdown: Create ドロップダウンボタンを追加します (デフォルトで無効)。メニュー項目を設定可能です。 -
SoftwareTemplatesSection: ソフトウェアテンプレートリンクのリストを Create ドロップダウンメニューに追加します (デフォルトで無効)。CreateDropdownを有効にする必要があります。 -
RegisterAComponentSection: Create ドロップダウンメニューに Register a Component ページへのリンクを追加します (デフォルトで無効)。CreateDropdownを有効にする必要があります。
-
config.position-
ヘッダーの位置を指定します。サポートされている値は、
above-main-contentとabove-sidebarです。
前提条件
-
ヘッダーに Support ボタンを表示する場合は、
app-config.yamlファイルでサポートの URL を設定する。 - ヘッダーに Notifications ボタンを表示する場合は、通知プラグインをインストールする。
手順
デフォルト設定をコピーし、ニーズに合わせてフィールド値を変更します。各ヘッダーコンポーネントの
priority値を調整すると、その位置を制御できます。さらに、設定にコンポーネントを追加または削除することで、コンポーネントを有効または無効にできます。残りのヘッダーボタンを、プロファイルドロップダウンボタンの前のヘッダー末尾に揃えるには、Spacerマウントポイントのconfig.props.growFactorを1に設定して、Spacerコンポーネントを有効にします。以下に例を示します。- mountPoint: global.header/component importName: Spacer config: priority: 100 props: growFactor: 1カスタムヘッダーを使用するには、プラグイン設定を
app-config-dynamic.yamlファイルに追加して、カスタムヘッダーを動的プラグインとしてインストールする必要があります。以下に例を示します。- package: <npm_or_oci_package-reference> disabled: false pluginConfig: dynamicPlugins: frontend: <package_name>: mountPoints: - mountPoint: application/header importName: <application_header_name> config: position: above-main-content - mountPoint: global.header/component importName: <header_component_name> config: priority: 100 - mountPoint: global.header/component importName: <header_component_name> config: priority: 90ここでは、以下のようになります。
- <npm_or_oci_package-reference>
- パッケージ名を指定します。
- <application_header_name>
-
アプリケーションヘッダーの名前を指定します。例:
MyHeader - <header_component_name>
ヘッダーコンポーネントの名前を指定します。例:
MyHeaderComponent注記importNameは、scaffolder フィールド拡張 API によって返される値を参照する名前です (省略可能)。
オプション: グローバルヘッダーを無効にするには、
dynamic-plugins.yamlファイルで、disabledフィールドの値をtrueに設定します。以下に例を示します。- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-global-header disabled: true
6.2. 動的プラグイン統合のためのマウントポイント リンクのコピーリンクがクリップボードにコピーされました!
動的プラグインのマウントポイントを使用すると、Developer Hub でアプリケーションヘッダーをカスタマイズできます。このマウントポイントにより、ヘッダー、そのコンポーネント、およびドロップダウンメニューの位置を柔軟に設定できます。次の機能拡張により、エクスペリエンスをカスタマイズできます。
- application/header
-
ヘッダーの位置を制御します。
config.positionを使用して、配置をabove-main-contentまたはabove-sidebarのいずれかに設定します。 - global.header/component
ヘッダーコンポーネントを設定します。
config.priorityを使用してコンポーネントの順序を設定し、config.propsを介してプロパティー (CSS スタイルを含む) を渡します。Self-service ボタンを追加する例
- mountPoint: global.header/component importName: HeaderIconButton config: priority: 80 props: title: Self-service icon: add to: createスペーサー要素を追加する例
- mountPoint: global.header/component importName: Spacer config: priority: 99 props: growFactor: 0区切り線要素を追加する例
mountPoints: - mountPoint: global.header/component importName: Divider config: priority: 150- global.header/profile
ProfileDropdownコンポーネントが有効な場合に、プロファイルドロップダウンリストを設定します。プロファイルドロップダウンに設定リンクを追加する例
- mountPoint: global.header/profile importName: MenuItemLink config: priority: 100 props: title: Settings link: /settings icon: manageAccounts- global.header/create
CreateDropdownコンポーネントが有効な場合に、作成ドロップダウンリストを設定します。コンポーネントを登録するためのセクションを追加する例
- mountPoint: global.header/create importName: RegisterAComponentSection config: props: growFactor: 0
第7章 Red Hat Developer Hub のフローティングアクションボタンの設定 リンクのコピーリンクがクリップボードにコピーされました!
フローティングアクションボタンプラグインを使用すると、Developer Hub インスタンス内の任意のアクションをフローティングボタンとして設定できます。フローティングアクションボタンプラグインは、デフォルトで有効になっています。また、フローティングアクションボタンを dynamic-plugins.yaml ファイルの同じ slot フィールドに割り当てることで、フローティングアクションボタンを、メインのフローティングアクションボタン内のサブメニューオプションとして表示するように設定することもできます。
7.1. フローティングアクションボタンを動的プラグインとして設定する リンクのコピーリンクがクリップボードにコピーされました!
フローティングアクションボタンを動的プラグインとして設定して、アクションを実行したり、内部リンクまたは外部リンクを開いたりすることができます。
前提条件
プラットフォームエンジニアとして十分な権限を持っている。
手順
フローティングアクションボタンを動的プラグインとして設定するには、次のいずれかのタスクを実行します。
app-config-dynamic.yamlファイルでglobal.floatingactionbutton/configマウントポイントを指定します。以下に例を示します。一括インポートプラグインをフローティングアクションボタンとして設定する例
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-bulk-import disabled: false pluginConfig: dynamicPlugins: frontend: red-hat-developer-hub.backstage-plugin-bulk-import: # Start of the floating action button configuration mountPoints: - mountPoint: global.floatingactionbutton/config importName: BulkImportPage1 config: slot: 'page-end' icon: <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#e8eaed"><g><rect fill="none" height="24" width="24"/></g><g><path d="M11,7L9.6,8.4l2.6,2.6H2v2h10.2l-2.6,2.6L11,17l5-5L11,7z M20,19h-8v2h8c1.1,0,2-0.9,2-2V5c0-1.1-0.9-2-2-2h-8v2h8V19z"/></g></svg>2 label: 'Bulk import' toolTip: 'Register multiple repositories in bulk' to: /bulk-import/repositories # End of the floating action button configuration appIcons: - name: bulkImportIcon importName: BulkImportIcon dynamicRoutes: - path: /bulk-import/repositories importName: BulkImportPage menuItem: icon: bulkImportIcon text: Bulk import外部リンクを開くフローティングアクションボタンとしてアクションを設定するには、
backstage-plugin-global-floating-action-buttonプラグイン内のdynamic-plugins.yamlファイルでglobal.floatingactionbutton/configマウントポイントを指定します。以下に例を示します。GitHub を開くフローティングアクションボタンの例
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-global-floating-action-button disabled: false pluginConfig: dynamicPlugins: frontend: red-hat-developer-hub.backstage-plugin-global-floating-action-button: mountPoints: - mountPoint: application/listener importName: DynamicGlobalFloatingActionButton - mountPoint: global.floatingactionbutton/config importName: NullComponent1 config: icon: '<svg viewBox="0 0 250 300" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><path d="M200.134 0l55.555 117.514-55.555 117.518h-47.295l55.555-117.518L152.84 0h47.295zM110.08 99.836l20.056-38.092-2.29-8.868L102.847 0H55.552l48.647 102.898 5.881-3.062zm17.766 74.433l-17.333-39.034-6.314-3.101-48.647 102.898h47.295l25-52.88v-7.883z" fill="#40B4E5"/><path d="M152.842 235.032L97.287 117.514 152.842 0h47.295l-55.555 117.514 55.555 117.518h-47.295zm-97.287 0L0 117.514 55.555 0h47.296L47.295 117.514l55.556 117.518H55.555z" fill="#003764"/></svg>'2 label: 'Quay' showLabel: true toolTip: 'Quay' to: 'https://quay.io' - mountPoint: global.floatingactionbutton/config importName: NullComponent config: icon: github label: 'Git' toolTip: 'Github' to: https://github.com/redhat-developer/rhdh-pluginsサブメニューを備えたフローティングアクションボタンを設定するには、複数のアクションの
dynamic-plugins.yamlファイルで、同じslotフィールドにglobal.floatingactionbutton/configマウントポイントを定義します。指定されていない場合、デフォルトのスロットはpage-endになります。以下に例を示します。サブメニューアクションを備えたフローティングアクションボタンの例
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-bulk-import disabled: false pluginConfig: dynamicPlugins: frontend: red-hat-developer-hub.backstage-plugin-bulk-import: # Start of fab config mountPoints: - mountPoint: global.floatingactionbutton/config importName: BulkImportPage1 config: slot: 'page-end' icon: <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#e8eaed"><g><rect fill="none" height="24" width="24"/></g><g><path d="M11,7L9.6,8.4l2.6,2.6H2v2h10.2l-2.6,2.6L11,17l5-5L11,7z M20,19h-8v2h8c1.1,0,2-0.9,2-2V5c0-1.1-0.9-2-2-2h-8v2h8V19z"/></g></svg> label: 'Bulk import' toolTip: 'Register multiple repositories in bulk' to: /bulk-import/repositories # end of fab config appIcons: - name: bulkImportIcon importName: BulkImportIcon dynamicRoutes: - path: /bulk-import/repositories importName: BulkImportPage menuItem: icon: bulkImportIcon text: Bulk import - package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-global-floating-action-button disabled: false pluginConfig: dynamicPlugins: frontend: red-hat-developer-hub.backstage-plugin-global-floating-action-button: mountPoints: - mountPoint: application/listener importName: DynamicGlobalFloatingActionButton - mountPoint: global.floatingactionbutton/config importName: NullComponent2 config: icon: github label: 'Git' toolTip: 'Github' to: https://github.com/redhat-developer/rhdh-plugins - mountPoint: global.floatingactionbutton/config importName: NullComponent3 config: icon: '<svg viewBox="0 0 250 300" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><path d="M200.134 0l55.555 117.514-55.555 117.518h-47.295l55.555-117.518L152.84 0h47.295zM110.08 99.836l20.056-38.092-2.29-8.868L102.847 0H55.552l48.647 102.898 5.881-3.062zm17.766 74.433l-17.333-39.034-6.314-3.101-48.647 102.898h47.295l25-52.88v-7.883z" fill="#40B4E5"/><path d="M152.842 235.032L97.287 117.514 152.842 0h47.295l-55.555 117.514 55.555 117.518h-47.295zm-97.287 0L0 117.514 55.555 0h47.296L47.295 117.514l55.556 117.518H55.555z" fill="#003764"/></svg>' label: 'Quay' showLabel: true toolTip: 'Quay' to: 'https://quay.io'フローティングアクションボタンを特定のページにのみ表示するように設定するには、
backstage-plugin-global-floating-action-buttonプラグインでglobal.floatingactionbutton/configマウントポイントを設定し、次の例に示すようにvisibleOnPathsプロパティーを設定します。特定のページで表示するフローティングアクションボタンの例
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-bulk-import disabled: false pluginConfig: dynamicPlugins: frontend: red-hat-developer-hub.backstage-plugin-bulk-import: # start of fab config mountPoints: - mountPoint: global.floatingactionbutton/config importName: BulkImportPage1 config: slot: 'page-end' icon: <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#e8eaed"><g><rect fill="none" height="24" width="24"/></g><g><path d="M11,7L9.6,8.4l2.6,2.6H2v2h10.2l-2.6,2.6L11,17l5-5L11,7z M20,19h-8v2h8c1.1,0,2-0.9,2-2V5c0-1.1-0.9-2-2-2h-8v2h8V19z"/></g></svg> label: 'Bulk import' toolTip: 'Register multiple repositories in bulk' to: /bulk-import/repositories visibleOnPaths: ['/catalog', '/settings'] # end of fab config appIcons: - name: bulkImportIcon importName: BulkImportIcon dynamicRoutes: - path: /bulk-import/repositories importName: BulkImportPage menuItem: icon: bulkImportIcon text: Bulk import- 1
- (必須) マウントポイントに関連するコンポーネントを含むインポート名。
特定のページでフローティングアクションボタンを非表示にするには、
backstage-plugin-global-floating-action-buttonプラグインでglobal.floatingactionbutton/configマウントポイントを設定し、次の例に示すようにexcludeOnPathsプロパティーを設定します。特定のページで非表示にするフローティングアクションボタンの例
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-bulk-import disabled: false pluginConfig: dynamicPlugins: frontend: red-hat-developer-hub.backstage-plugin-bulk-import: # start of fab config mountPoints: - mountPoint: global.floatingactionbutton/config importName: BulkImportPage1 config: slot: 'page-end' icon: <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#e8eaed"><g><rect fill="none" height="24" width="24"/></g><g><path d="M11,7L9.6,8.4l2.6,2.6H2v2h10.2l-2.6,2.6L11,17l5-5L11,7z M20,19h-8v2h8c1.1,0,2-0.9,2-2V5c0-1.1-0.9-2-2-2h-8v2h8V19z"/></g></svg> label: 'Bulk import' toolTip: 'Register multiple repositories in bulk' to: /bulk-import/repositories excludeOnPaths: ['/bulk-import'] # end of fab config appIcons: - name: bulkImportIcon importName: BulkImportIcon dynamicRoutes: - path: /bulk-import/repositories importName: BulkImportPage menuItem: icon: bulkImportIcon text: Bulk import- 1
- (必須) マウントポイントに関連するコンポーネントを含むインポート名。
7.2. フローティングアクションボタンのパラメーター リンクのコピーリンクがクリップボードにコピーされました!
次の表に示すパラメーターを使用して、フローティングアクションボタンプラグインを設定します。
| 名前 | 説明 | 型 | デフォルト値 | 必須 |
|---|---|---|---|---|
|
|
フローティングアクションボタンの位置。有効な値: |
|
| なし |
|
| フローティングアクションボタンの名前 |
| 該当なし | はい |
|
|
フローティングアクションボタンのアイコン。Material Design library の塗りつぶされたアイコンを使用することを推奨します。svg アイコンを使用することもできます。例: |
| 該当なし | なし |
|
| アイコンの横にラベルを表示します。 |
| 該当なし | なし |
|
| フローティングアクションボタンのサイズ |
|
| なし |
|
| コンポーネントの色。Palette Getting started guide から追加されたデフォルトのテーマカラーとカスタムテーマカラーの両方をサポートしています。 |
|
| なし |
|
| フローティングアクションボタンを選択したときに実行されるアクション |
| 該当なし | なし |
|
| フローティングアクションボタンを選択したときに開くリンク |
| 該当なし | なし |
|
| フローティングアクションボタンの上にマウスを移動したときに表示されるテキスト |
| 該当なし | なし |
|
| サブメニューに表示されるフローティングアクションボタンの順序。値が大きいほど優先度が高くなります。 |
| 該当なし | なし |
|
| 指定したパスのフローティングアクションボタンを表示します。 |
| すべてのパスのフローティングアクションボタンを表示します。 | なし |
|
| 指定したパスのフローティングアクションボタンを非表示にします。 |
| すべてのパスのフローティングアクションボタンを表示します。 | なし |
複数のフローティングボタンアクションが同じ slot 値に割り当てられている場合、そのフローティングボタンがメインのフローティングアクションボタン内のサブメニューオプションとして表示されます。
第8章 Red Hat Developer Hub の Tech Radar ページのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub では、Tech Radar ページは tech-radar 動的プラグインによって提供されます。このプラグインは、デフォルトでは無効になっています。Red Hat Developer Hub で動的プラグインを有効にする方法は、動的プラグインの設定 を参照してください。
Red Hat Developer Hub では、データをプロキシーとして app-config.yaml ファイルに渡すことで、Learning Paths を設定できます。Tech Radar のベース URL に、/developer-hub/tech-radar プロキシーを含める必要があります。
tech-radar と homepage クイックアクセスプロキシーの両方に重複する pathRewrites を使用するため、tech-radar 設定 (^api/proxy/developer-hub/tech-radar) を作成してから、homepage 設定 (^/api/proxy/developer-hub) を作成する必要があります。
Red Hat Developer Hub の Home ページのカスタマイズの詳細は、Red Hat Developer Hub の Home ページのカスタマイズ を参照してください。
以下のソースから Tech Radar ページにデータを提供できます。
- GitHub または GitLab でホストされている JSON ファイル
- API を使用して Tech Radar のデータを JSON 形式で提供する専用サービス
8.1. JSON ファイルを使用して Tech Radar ページをカスタマイズする リンクのコピーリンクがクリップボードにコピーされました!
使いやすさとシンプルさを実現するために、ホストされた JSON ファイルを使用して Tech Radar ページを設定できます。
前提条件
-
app-config.yamlファイルのintegrationsセクションで、Tech Radar プラグインのデータソースを指定しているたとえば、GitHub を統合として設定するには、GitHub を使用した認証 を参照してください。 -
./dynamic-plugins/dist/backstage-community-plugin-tech-radarプラグインおよび/dynamic-plugins/dist/backstage-community-plugin-tech-radar-backend-dynamicプラグインを有効化している。
手順
- Tech Radar データを含む JSON ファイルを GitHub や Gitlab などの Web サーバーに公開します。サンプルは、https://raw.githubusercontent.com/redhat-developer/rhdh/release-1.6/packages/app/public/tech-radar/data-default.json を参照してください。
app-config.yamlファイルに以下を追加して、ホストされている JSON ファイルから Tech Radar データにアクセスするように Developer Hub を設定します。techRadar: url: <tech_radar_data_url><tech_radar_data_url>- Tech Radar データがホストする JSON URL を入力します。
8.2. カスタマイズサービスを使用して Tech Radar ページをカスタマイズする リンクのコピーリンクがクリップボードにコピーされました!
高度なシナリオでは、Red Hat Developer Hub カスタマイズサービスをホストして、Tech Radar ページなどの設定可能なすべての Developer Hub ページにデータを提供できます。ページごとに異なるサービスを使用することもできます。
前提条件
-
app-config.yamlファイルのintegrationsセクションで、Tech Radar プラグインのデータソースを指定しているたとえば、GitHub を統合として設定するには、GitHub を使用した認証 を参照してください。 -
./dynamic-plugins/dist/backstage-community-plugin-tech-radarプラグインおよび/dynamic-plugins/dist/backstage-community-plugin-tech-radar-backend-dynamicプラグインを有効化している。
手順
-
Developer Hub インスタンスと同じ OpenShift Container Platform クラスターに、Developer Hub カスタマイズサービスをデプロイします。デフォルトの Developer Hub データと同じデータを提供するサンプルは、
red-hat-developer-hub-customization-providerを参照してください。カスタマイズサービスは、http://<rhdh-customization-provider>/tech-radarのような Tech Radar データ URL を提供します。 次のコードを
app-config.yamlファイルに追加して、専用サービスを許可されたホストとして追加します。backend: reading: allow: - host: '<rhdh_customization_provider_base_url>'<rhdh_customization_provider_base_url>-
Tech Radar データ URL のベース URL (例:
<rhdh-customization-provider>) を入力します。
app-config.yamlファイルに以下を追加します。techRadar: url: <tech_radar_data_url><tech_radar_data_url>-
Tech Radar データ URL (例:
http://<rhdh-customization-provider>/tech-radar) を入力します。
第9章 Red Hat Developer Hub の外観のカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub では、次のデフォルトのテーマ設定が利用できます。
- Red Hat Developer Hub テーマ
- 開発者ポータルを標準の Red Hat Developer Hub インスタンスのような外観にするデフォルトのテーマ設定。詳細は、「デフォルトの Red Hat Developer Hub テーマ」 を参照してください。
- Backstage テーマ
- 開発者ポータルを標準の Backstage インスタンスのような外観にするデフォルトのテーマ設定。詳細は、「デフォルトの Backstage テーマ」 を参照してください。
app-config-rhdh.yaml ファイルを変更して、デフォルトテーマの特定のパラメーターを変更または無効にしたり、完全にカスタマイズしたテーマを作成したりできます。app-config-rhdh.yaml ファイルから、次のような共通テーマコンポーネントをカスタマイズできます。
- 会社名とロゴ
- 段落、見出し、ヘッダー、およびボタン内テキストのフォントの色、サイズ、およびスタイル
- ヘッダーの色、グラデーション、および形状
- ボタンの色
- ナビゲーションインジケーターの色
テーマモード (Light Theme、Dark Theme、Auto) など、一部のコンポーネントは、Developer Hub GUI からカスタマイズすることもできます。
9.1. Developer Hub インスタンスのテーマモードのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
Developer Hub では、テーマ設定を使用してさまざまな UI コンポーネントの外観と操作性を変更します。そのため、RHDH ページで使用される背景色やフォントの変更以外に、ボタン、タブ、サイドバー、カード、テーブルなどのさまざまな UI コンポーネントが変更されていることに気づくはずです。
Developer Hub インスタンスには、次のいずれかのテーマモードを選択できます。
- Light theme
- Dark theme
- Auto
デフォルトのテーマモードは Auto です。システム設定に基づいてライトテーマかダークテーマが自動的に設定されます。
前提条件
- Developer Hub Web コンソールにログインしている。
手順
- Developer Hub Web コンソールから、Settings をクリックします。
Appearance パネルで、LIGHT THEME、DARK THEME、または AUTO をクリックしてテーマモードを変更します。
9.2. Developer Hub インスタンスのブランディングロゴのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
次の例に示すように、app-config.yaml ファイルの branding セクションを設定することで、Developer Hub インスタンスのブランドロゴをカスタマイズできます。
app:
branding:
fullLogo: ${BASE64_EMBEDDED_FULL_LOGO}
iconLogo: ${BASE64_EMBEDDED_ICON_LOGO}
ここでは、以下のようになります。
- 1
fullLogoは、展開された (固定された) サイドバー上のロゴであり、base64 でエンコードされた画像を想定しています。- 2
iconLogoは、折りたたまれた (固定されていない) サイドバーのロゴであり、base64 でエンコードされた画像を想定しています。BASE64_EMBEDDED_FULL_LOGO環境変数の形式は次のように設定できます。BASE64_EMBEDDED_FULL_LOGO: "data:_<media_type>_;base64,<base64_data>"次の例は、
data:_<media_type>_;base64,<base64_data>形式を使用してBASE64_EMBEDDED_FULL_LOGOをカスタマイズする方法を示しています。SVGLOGOBASE64=$(base64 -i logo.svg) BASE64_EMBEDDED_FULL_LOGO="data:image/svg+xml;base64,$SVGLOGOBASE64"image/svg+xmlは、イメージの正しいメディアタイプ (たとえば、image/pngやimage/jpeg) に置き換えます。また、それに応じてファイル拡張子を調整します。これにより、外部ファイルを参照せずにロゴを直接埋め込むことができます。
次の例に示すように、branding セクションの fullLogoWidth フィールドに値を設定して、ブランディングロゴの幅をカスタマイズすることもできます。
app:
branding:
fullLogoWidth: 110px
# ...
- 1
- ロゴの幅のデフォルト値は
110pxです。サポートされている単位は、integer、px、em、rem、パーセンテージです。
9.4. エンティティータブのタイトルの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub では、カタログエンティティービューにデフォルトの独自のタブが設定されています。組織のニーズに合わせて、タブのタイトルの名前を変更、並べ替え、削除、および追加できます。
手順
変更する各タブについて、
app-config.yamlファイルのentityTabsセクションに必要な値を入力します。upstream: backstage: appConfig: dynamicPlugins: frontend: <plugin_name>: entityTabs: - mountPoint: <mount_point> path: <path> title: <title> priority: <priority><plugin_name>-
backstage-community.plugin-topologyなどのプラグイン名を入力します。 mountPoint-
entity.page.topologyなどのタブマウントポイントを入力します。 path-
/topologyなどのタブパスを入力します。 title-
Topologyなどのタブのタイトルを入力します。 priorityオプション:
タブの順序を変更するには、
42などのタブの優先度を入力します。優先度が高いものが最初に表示されます。タブを削除するには、
-1などの負の値を入力します。
9.5. エンティティー詳細タブのレイアウトの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub の各エンティティー詳細タブには、デフォルトの独自のレイアウトがあります。タブの内容を提供するプラグインで設定が許可されている場合、組織のニーズに合わせて、エンティティー詳細タブの内容を変更できます。
前提条件
-
タブの内容を提供するプラグインで設定が許可されている (
configセクションでデフォルト設定を定義する Developer Hub プラグイン など)。
手順
app-config.yamlファイルのプラグインのデフォルト設定をコピーし、layoutのプロパティーを変更します。global: dynamic: plugins: - package: <package_location> disabled: false pluginConfig: dynamicPlugins: frontend: <plugin_name>: mountPoints: - mountPoint: <mount_point> importName: <import_name> config: layout: gridColumn: lg: span 6 xs: span 12package-
パッケージの場所を入力します (例:
./dynamic-plugins/dist/backstage-community-plugin-tekton)。 <plugin_name>-
プラグイン名を入力します (例:
backstage-community.plugin-tekton)。 mountPoint-
プラグインのデフォルト設定で定義されているマウントポイント (例:
entity.page.ci/cards) をコピーします。 importName-
プラグインのデフォルト設定で定義されているインポート名 (例:
TektonCI) をコピーします。 layout-
レイアウト設定を入力します。タブの内容を、12 列のグリッドを使用するレスポンシブなグリッドに表示します。このグリッドは、
gridColumnなどの CSS プロパティーに指定できるさまざまなブレークポイント (xs、sm、md、lg、xl) をサポートしています。この例では、12 列のうち 6 列を使用して、2 枚の Tekton CI カードを大きい画面 (lg) に並べて表示します (span 6列を使用)。また、カードをそれぞれ表示します (xs以上でspan 12列を使用)。
9.6. Developer Hub インスタンスのテーマモードカラーパレットのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
app-config.yaml ファイルの branding.theme セクションで light.palette および dark.palette パラメーターを設定することで、Developer Hub インスタンスのライトテーマモードとダークテーマモードのカラーパレットをカスタマイズできます。次に例を示します。
app:
branding:
theme:
light:
palette:
primary:
main: <light_primary_color>
navigation:
indicator: <light_indicator_color>
pageTheme:
default:
backgroundColor: [<light_background_color_1>, <light_background_color_2>]
dark:
palette:
primary:
main: <dark_primary_color>
navigation:
indicator: <dark_indicator_color>
pageTheme:
default:
backgroundColor: [<dark_background_color_1>, <dark_background_color_2>]
# ...
- 1
- ライトカラーパレットのメインのプライマリーカラー (例:
#ffffffまたはwhite)。 - 2
- ライトカラーパレットのナビゲーションインジケーターの色。これは、ナビゲーションパネルで選択中のタブを示す縦のバーです (例:
#FF0000またはred)。 - 3
- ライトカラーパレットのデフォルトページテーマの背景色 (例:
#ffffffまたはwhite)。 - 4
- ダークカラーパレットのメインのプライマリーカラー (例:
#000000またはblack)。 - 5
- ダークカラーパレットのナビゲーションインジケーターの色。これは、ナビゲーションパネルで選択中のタブを示す縦のバーです (例:
#FF0000またはred)。 - 6
- ダークカラーパレットのデフォルトのページテーマの背景色 (例:
#000000または黒)。
9.7. Developer Hub インスタンスのページテーマヘッダーのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
app-config.yaml ファイルの branding.theme セクションを変更することで、Developer Hub インスタンスのライトテーマモードとダークテーマモードのヘッダー色をカスタマイズできます。Home、Catalog、API ページなど、追加の Developer Hub ページのページヘッダーをカスタマイズすることもできます。
app:
branding:
theme:
light:
palette: {}
pageTheme:
default:
backgroundColor: "<default_light_background_color>"
fontColor: "<default_light_font_color>"
shape: none
apis:
backgroundColor: "<apis_light_background_color>"
fontColor: "<apis_light_font_color>"
shape: none
dark:
palette: {}
pageTheme:
default:
backgroundColor: "<default_dark_background_color>"
fontColor: "<default_dark_font_color>"
shape: none
# ...
9.8. Developer Hub インスタンスのフォントのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
app-config.yaml ファイルの typography セクションを設定することで、ページテキストのデフォルトのフォントファミリーとサイズ、および各見出しレベルのフォントファミリーとサイズを変更できます。次に例を示します。
app:
branding:
theme:
light:
typography:
fontFamily: "Times New Roman"
htmlFontSize: 11 # smaller is bigger
h1:
fontFamily: "Times New Roman"
fontSize: 40
h2:
fontFamily: "Times New Roman"
fontSize: 30
h3:
fontFamily: "Times New Roman"
fontSize: 30
h4:
fontFamily: "Times New Roman"
fontSize: 30
h5:
fontFamily: "Times New Roman"
fontSize: 30
h6:
fontFamily: "Times New Roman"
fontSize: 30
dark:
typography:
fontFamily: "Times New Roman"
htmlFontSize: 11 # smaller is bigger
h1:
fontFamily: "Times New Roman"
fontSize: 40
h2:
fontFamily: "Times New Roman"
fontSize: 30
h3:
fontFamily: "Times New Roman"
fontSize: 30
h4:
fontFamily: "Times New Roman"
fontSize: 30
h5:
fontFamily: "Times New Roman"
fontSize: 30
h6:
fontFamily: "Times New Roman"
fontSize: 30
# ...
9.9. デフォルトの Red Hat Developer Hub テーマ リンクのコピーリンクがクリップボードにコピーされました!
デフォルトの Red Hat Developer Hub テーマ設定を使用すると、Developer Hub インスタンスを標準の Red Hat Developer Hub インスタンスのような外観にすることができます。また、app-config.yaml ファイルを変更して、特定のパラメーターをカスタマイズしたり無効にしたりすることもできます。
9.9.1. デフォルトの Red Hat Developer Hub テーマのカラーパレット リンクのコピーリンクがクリップボードにコピーされました!
app-config.yaml ファイルでは、デフォルトの Red Hat Developer Hub カラーパレットに次の設定を使用しています。
app:
branding:
theme:
light:
variant: "rhdh"
mode: "light"
palette:
background:
default: "#F8F8F8"
paper: "#FFFFFF"
banner:
closeButtonColor: "#FFFFFF"
error: "#E22134"
info: "#2E77D0"
link: "#000000"
text: "#FFFFFF"
warning: "#FF9800"
border: "#E6E6E6"
bursts:
backgroundColor:
default: "#7C3699"
fontColor: "#FEFEFE"
gradient:
linear: "linear-gradient(-137deg, #4BB8A5 0%, #187656 100%)"
slackChannelText: "#ddd"
errorBackground: "#FFEBEE"
errorText: "#CA001B"
gold: "#FFD600"
highlight: "#FFFBCC"
infoBackground: "#ebf5ff"
infoText: "#004e8a"
link: "#0A6EBE"
linkHover: "#2196F3"
mode: "light"
navigation:
background: "#222427"
indicator: "#0066CC"
color: "#ffffff"
selectedColor: "#ffffff"
navItem:
hoverBackground: "#3c3f42"
submenu:
background: "#222427"
pinSidebarButton:
background: "#BDBDBD"
icon: "#181818"
primary:
main: "#0066CC"
secondary:
main: "#8476D1"
status:
aborted: "#757575"
error: "#E22134"
ok: "#1DB954"
pending: "#FFED51"
running: "#1F5493"
warning: "#FF9800"
tabbar:
indicator: "#9BF0E1"
textContrast: "#000000"
textSubtle: "#6E6E6E"
textVerySubtle: "#DDD"
warningBackground: "#F59B23"
warningText: "#000000"
text:
primary: "#151515"
secondary: "#757575"
rhdh:
general:
disabledBackground: "#D2D2D2"
disabled: "#6A6E73"
searchBarBorderColor: "#E4E4E4"
formControlBackgroundColor: "#FFF"
mainSectionBackgroundColor: "#FFF"
headerBottomBorderColor: "#C7C7C7"
cardBackgroundColor: "#FFF"
sidebarBackgroundColor: "#212427"
cardBorderColor: "#C7C7C7"
tableTitleColor: "#181818"
tableSubtitleColor: "#616161"
tableColumnTitleColor: "#151515"
tableRowHover: "#F5F5F5"
tableBorderColor: "#E0E0E0"
tableBackgroundColor: "#FFF"
tabsBottomBorderColor: "#D2D2D2"
contrastText: "#FFF"
primary:
main: "#0066CC"
focusVisibleBorder: "#0066CC"
secondary:
main: "#8476D1"
focusVisibleBorder: "#8476D1"
cards:
headerTextColor: "#151515"
headerBackgroundColor: "#FFF"
headerBackgroundImage: "none"
dark:
variant: "rhdh"
mode: "dark"
palette:
background:
default: "#333333"
paper: "#424242"
banner:
closeButtonColor: "#FFFFFF"
error: "#E22134"
info: "#2E77D0"
link: "#000000"
text: "#FFFFFF"
warning: "#FF9800"
border: "#E6E6E6"
bursts:
backgroundColor:
default: "#7C3699"
fontColor: "#FEFEFE"
gradient:
linear: "linear-gradient(-137deg, #4BB8A5 0%, #187656 100%)"
slackChannelText: "#ddd"
errorBackground: "#FFEBEE"
errorText: "#CA001B"
gold: "#FFD600"
highlight: "#FFFBCC"
infoBackground: "#ebf5ff"
infoText: "#004e8a"
link: "#9CC9FF"
linkHover: "#82BAFD"
mode: "dark"
navigation:
background: "#0f1214"
indicator: "#0066CC"
color: "#ffffff"
selectedColor: "#ffffff"
navItem:
hoverBackground: "#3c3f42"
submenu:
background: "#0f1214"
pinSidebarButton:
background: "#BDBDBD"
icon: "#404040"
primary:
main: "#1FA7F8"
secondary:
main: "#B2A3FF"
status:
aborted: "#9E9E9E"
error: "#F84C55"
ok: "#71CF88"
pending: "#FEF071"
running: "#3488E3"
warning: "#FFB84D"
tabbar:
indicator: "#9BF0E1"
textContrast: "#FFFFFF"
textSubtle: "#CCCCCC"
textVerySubtle: "#727272"
warningBackground: "#F59B23"
warningText: "#000000"
rhdh:
general:
disabledBackground: "#444548"
disabled: "#AAABAC"
searchBarBorderColor: "#57585a"
formControlBackgroundColor: "#36373A"
mainSectionBackgroundColor: "#0f1214"
headerBottomBorderColor: "#A3A3A3"
cardBackgroundColor: "#292929"
sidebarBackgroundColor: "#1b1d21"
cardBorderColor: "#A3A3A3"
tableTitleColor: "#E0E0E0"
tableSubtitleColor: "#E0E0E0"
tableColumnTitleColor: "#E0E0E0"
tableRowHover: "#0f1214"
tableBorderColor: "#515151"
tableBackgroundColor: "#1b1d21"
tabsBottomBorderColor: "#444548"
contrastText: "#FFF"
primary:
main: "#1FA7F8"
focusVisibleBorder: "#ADD6FF"
secondary:
main: "#B2A3FF"
focusVisibleBorder: "#D0C7FF"
cards:
headerTextColor: "#FFF"
headerBackgroundColor: "#0f1214"
headerBackgroundImage: "none"
または、app-config.yaml ファイルで次の variant 値と mode 値を使用して、以前のデフォルト設定を適用することもできます。
app:
branding:
theme:
light:
variant: "rhdh"
mode: "light"
dark:
variant: "rhdh"
mode: "dark"
9.9.2. デフォルトの Red Hat Developer Hub ページテーマ リンクのコピーリンクがクリップボードにコピーされました!
次の app-config.yaml ファイル設定に示すように、デフォルトの Developer Hub ヘッダーの色は、ライトモードでは白、ダークモードでは黒です。
app:
branding:
theme:
light:
palette: {}
defaultPageTheme: default
pageTheme:
default:
backgroundColor: "#ffffff"
dark:
palette: {}
defaultPageTheme: default
pageTheme:
default:
backgroundColor: "#0f1214"
9.10. デフォルトの Backstage テーマ リンクのコピーリンクがクリップボードにコピーされました!
デフォルトの Backstage テーマ設定を使用すると、Developer Hub インスタンスを標準の Backstage インスタンスのような外観にすることができます。また、app-config.yaml ファイルを変更して、特定のパラメーターをカスタマイズしたり無効にしたりすることもできます。
9.10.1. デフォルトの Backstage テーマのカラーパレット リンクのコピーリンクがクリップボードにコピーされました!
app-config.yaml ファイルでは、デフォルトの Backstage カラーパレットに次の設定を使用しています。
app:
branding:
theme:
light:
variant: "backstage"
mode: "light"
palette:
background:
default: "#F8F8F8"
paper: "#FFFFFF"
banner:
closeButtonColor: "#FFFFFF"
error: "#E22134"
info: "#2E77D0"
link: "#000000"
text: "#FFFFFF"
warning: "#FF9800"
border: "#E6E6E6"
bursts:
backgroundColor:
default: "#7C3699"
fontColor: "#FEFEFE"
gradient:
linear: "linear-gradient(-137deg, #4BB8A5 0%, #187656 100%)"
slackChannelText: "#ddd"
errorBackground: "#FFEBEE"
errorText: "#CA001B"
gold: "#FFD600"
highlight: "#FFFBCC"
infoBackground: "#ebf5ff"
infoText: "#004e8a"
link: "#0A6EBE"
linkHover: "#2196F3"
navigation:
background: "#171717"
color: "#b5b5b5"
indicator: "#9BF0E1"
navItem:
hoverBackground: "#404040"
selectedColor: "#FFF"
submenu:
background: "#404040"
pinSidebarButton:
background: "#BDBDBD"
icon: "#181818"
primary:
main: "#1F5493"
status:
aborted: "#757575"
error: "#E22134"
ok: "#1DB954"
pending: "#FFED51"
running: "#1F5493"
warning: "#FF9800"
tabbar:
indicator: "#9BF0E1"
textContrast: "#000000"
textSubtle: "#6E6E6E"
textVerySubtle: "#DDD"
warningBackground: "#F59B23"
warningText: "#000000"
dark:
variant: "backstage"
mode: "dark"
palette:
background:
default: "#333333"
paper: "#424242"
banner:
closeButtonColor: "#FFFFFF"
error: "#E22134"
info: "#2E77D0"
link: "#000000"
text: "#FFFFFF"
warning: "#FF9800"
border: "#E6E6E6"
bursts:
backgroundColor:
default: "#7C3699"
fontColor: "#FEFEFE"
gradient:
linear: "linear-gradient(-137deg, #4BB8A5 0%, #187656 100%)"
slackChannelText: "#ddd"
errorBackground: "#FFEBEE"
errorText: "#CA001B"
gold: "#FFD600"
highlight: "#FFFBCC"
infoBackground: "#ebf5ff"
infoText: "#004e8a"
link: "#9CC9FF"
linkHover: "#82BAFD"
mode: "dark"
navigation:
background: "#424242"
color: "#b5b5b5"
indicator: "#9BF0E1"
navItem:
hoverBackground: "#404040"
selectedColor: "#FFF"
submenu:
background: "#404040"
pinSidebarButton:
background: "#BDBDBD"
icon: "#404040"
primary:
dark: "#82BAFD"
main: "#9CC9FF"
secondary:
main: "#FF88B2"
status:
aborted: "#9E9E9E"
error: "#F84C55"
ok: "#71CF88"
pending: "#FEF071"
running: "#3488E3"
warning: "#FFB84D"
tabbar:
indicator: "#9BF0E1"
textContrast: "#FFFFFF"
textSubtle: "#CCCCCC"
textVerySubtle: "#727272"
warningBackground: "#F59B23"
warningText: "#000000"
または、app-config.yaml ファイルで次の variant 値と mode 値を使用して、以前のデフォルト設定を適用することもできます。
app:
branding:
theme:
light:
variant: "backstage"
mode: "light"
dark:
variant: "backstage"
mode: "dark"
9.10.2. デフォルトの Backstage ページテーマ リンクのコピーリンクがクリップボードにコピーされました!
次の app-config.yaml ファイル設定に示すように、デフォルトの Backstage ヘッダーの色は、ライトモードでは白、ダークモードでは黒です。
app:
branding:
theme:
light:
palette: {}
defaultPageTheme: default
pageTheme:
default:
backgroundColor: ['#005B4B'] # teal
fontColor: '#ffffff'
shape: wave
documentation:
backgroundColor: ['#C8077A', '#C2297D'] # pinkSea
fontColor: '#ffffff'
shape: wave2
tool:
backgroundColor: ['#8912CA', '#3E00EA'] # purpleSky
fontColor: '#ffffff'
shape: round
service:
backgroundColor: ['#006D8F', '#0049A1'] # marineBlue
fontColor: '#ffffff'
shape: wave
website:
backgroundColor: ['#0027AF', '#270094'] # veryBlue
fontColor: '#ffffff'
shape: wave
library:
backgroundColor: ['#98002B', '#8D1134'] # rubyRed
fontColor: '#ffffff'
shape: wave
other:
backgroundColor: ['#171717', '#383838'] # darkGrey
fontColor: '#ffffff'
shape: wave
app:
backgroundColor: ['#BE2200', '#A41D00'] # toastyOrange
fontColor: '#ffffff'
shape: shapes.wave
apis:
backgroundColor: ['#005B4B'] # teal
fontColor: '#ffffff'
shape: wave2
card:
backgroundColor: ['#4BB8A5', '#187656'] # greens
fontColor: '#ffffff'
shape: wave
dark:
palette: {}
defaultPageTheme: default
pageTheme:
default:
backgroundColor: ['#005B4B'] # teal
fontColor: '#ffffff'
shape: wave
documentation:
backgroundColor: ['#C8077A', '#C2297D'] # pinkSea
fontColor: '#ffffff'
shape: wave2
tool:
backgroundColor: ['#8912CA', '#3E00EA'] # purpleSky
fontColor: '#ffffff'
shape: round
service:
backgroundColor: ['#006D8F', '#0049A1'] # marineBlue
fontColor: '#ffffff'
shape: wave
website:
backgroundColor: ['#0027AF', '#270094'] # veryBlue
fontColor: '#ffffff'
shape: wave
library:
backgroundColor: ['#98002B', '#8D1134'] # rubyRed
fontColor: '#ffffff'
shape: wave
other:
backgroundColor: ['#171717', '#383838'] # darkGrey
fontColor: '#ffffff'
shape: wave
app:
backgroundColor: ['#BE2200', '#A41D00'] # toastyOrange
fontColor: '#ffffff'
shape: shapes.wave
apis:
backgroundColor: ['#005B4B'] # teal
fontColor: '#ffffff'
shape: wave2
card:
backgroundColor: ['#4BB8A5', '#187656'] # greens
fontColor: '#ffffff'
shape: wave
9.11. 動的プラグインを使用してカスタム Developer Hub テーマを読み込む リンクのコピーリンクがクリップボードにコピーされました!
動的プラグインからカスタム Developer Hub テーマを読み込むことができます。
手順
動的プラグインでテーマプロバイダー関数をエクスポートします。たとえば以下のようになります。
サンプル
myTheme.tsフラグメントimport { lightTheme } from './lightTheme'; // some custom theme import { UnifiedThemeProvider } from '@backstage/theme'; export const lightThemeProvider = ({ children }: { children: ReactNode }) => ( <UnifiedThemeProvider theme={lightTheme} children={children} /> );カスタムテーマの作成の詳細は、Backstage documentation - Creating a Custom Theme を参照してください。
themes設定フィールドを使用して、UI にテーマを読み込むように Developer Hub を設定します。app-config.yamlフラグメントdynamicPlugins: frontend: example.my-custom-theme-plugin: themes: - id: light1 title: Light variant: light icon: someIconReference importName: lightThemeProvider- 1
- 希望する値を指定してテーマ ID を設定します。必要に応じて、次の ID 値を使用して、デフォルトの Developer Hub テーマをオーバーライドします。デフォルトのライトテーマを置き換える場合は
light、デフォルトのダークテーマを置き換える場合はdarkとなります。
検証
- テーマは、Developer Hub の Settings ページで利用できます。
9.12. Developer Hub インスタンスのカスタムコンポーネントのオプション リンクのコピーリンクがクリップボードにコピーされました!
Developer Hub テーマのさまざまなコンポーネントをカスタマイズするために使用できるコンポーネントのバリアントが 2 つあります。
- Patternfly
- MUI
ライトテーマモードまたはダークテーマモード設定の各パラメーターにコンポーネントバリアントを割り当てるだけでなく、rippleEffect の on と off を切り替えることもできます。
次のコードに、Developer Hub インスタンスのテーマコンポーネントを設定するために app-config.yaml ファイル で使用できるオプションを示します。
app:
branding:
theme:
light:
options:
rippleEffect: off / on
paper: patternfly / mui
buttons: patternfly / mui
inputs: patternfly / mui
accordions: patternfly / mui
sidebars: patternfly / mui
pages: patternfly / mui
headers: patternfly / mui
toolbars: patternfly / mui
dialogs: patternfly / mui
cards: patternfly / mui
tables: patternfly / mui
tabs: patternfly / mui
dark:
options:
rippleEffect: off / on
paper: patternfly / mui
buttons: patternfly / mui
inputs: patternfly / mui
accordions: patternfly / mui
sidebars: patternfly / mui
pages: patternfly / mui
headers: patternfly / mui
toolbars: patternfly / mui
dialogs: patternfly / mui
cards: patternfly / mui
tables: patternfly / mui
tabs: patternfly / mui
第10章 Home ページのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
app-config を使用する場合は、次のことができます。
- インストールして有効にしたプラグインに基づいて表示される追加のカードを使用して、デフォルトの Home ページレイアウトをカスタマイズおよび拡張します。
- クイックアクセスリンクを変更します。
次の利用可能なカードを追加、再編成、および削除します。
- 検索バー
- クイックアクセス
- 見出し
- マークダウン
- プレースホルダー
- スター付きエンティティーのカタログ化
- 注目のドキュメント
10.1. Home ページカードのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
管理者は、12 列のグリッドにあるカードの固定の高さを変更できます。
デフォルトの Home ページは、次の app-config.yaml ファイル設定のとおりです。
dynamicPlugins:
frontend:
red-hat-developer-hub.backstage-plugin-dynamic-home-page:
dynamicRoutes:
- path: /
importName: DynamicHomePage
mountPoints:
- mountPoint: home.page/cards
importName: SearchBar
config:
layouts:
xl: { w: 10, h: 1, x: 1 }
lg: { w: 10, h: 1, x: 1 }
md: { w: 10, h: 1, x: 1 }
sm: { w: 10, h: 1, x: 1 }
xs: { w: 12, h: 1 }
xxs: { w: 12, h: 1 }
- mountPoint: home.page/cards
importName: QuickAccessCard
config:
layouts:
xl: { w: 7, h: 8 }
lg: { w: 7, h: 8 }
md: { w: 7, h: 8 }
sm: { w: 12, h: 8 }
xs: { w: 12, h: 8 }
xxs: { w: 12, h: 8 }
- mountPoint: home.page/cards
importName: CatalogStarredEntitiesCard
config:
layouts:
xl: { w: 5, h: 4, x: 7 }
lg: { w: 5, h: 4, x: 7 }
md: { w: 5, h: 4, x: 7 }
sm: { w: 12, h: 4 }
xs: { w: 12, h: 4 }
xxs: { w: 12, h: 4 }
前提条件
-
管理者アクセス権があり、動的プラグイン設定の
app-config.yamlファイルを変更できる。
手順
次のように、Red Hat Developer Hub の Home ページにさまざまなカードを設定します。
- 検索
dynamicPlugins: frontend: red-hat-developer-hub.backstage-plugin-dynamic-home-page: mountPoints: - mountPoint: home.page/cards importName: SearchBar config: layouts: xl: { w: 10, h: 1, x: 1 } lg: { w: 10, h: 1, x: 1 } md: { w: 10, h: 1, x: 1 } sm: { w: 10, h: 1, x: 1 } xs: { w: 12, h: 1 } xxs: { w: 12, h: 1 }Expand 表10.1 利用可能なプロパティー プロパティー デフォルト 説明 path/search必要に応じて、リンクされた検索パスをオーバーライドします。
queryParamquery必要に応じて、検索クエリーパラメーター名をオーバーライドします。
- クイックアクセス
dynamicPlugins: frontend: red-hat-developer-hub.backstage-plugin-dynamic-home-page: mountPoints: - mountPoint: home.page/cards importName: QuickAccessCard config: layouts: xl: { h: 8 } lg: { h: 8 } md: { h: 8 } sm: { h: 8 } xs: { h: 8 } xxs: { h: 8 }Expand 表10.2 利用可能なプロパティー プロパティー デフォルト 説明 titleQuick Access必要に応じて、リンクされた検索パスをオーバーライドします。
pathnone
必要に応じて、検索クエリーパラメーター名をオーバーライドします。
- 見出し
dynamicPlugins: frontend: red-hat-developer-hub.backstage-plugin-dynamic-home-page: mountPoints: - mountPoint: home.page/cards importName: Headline config: layouts: xl: { h: 1 } lg: { h: 1 } md: { h: 1 } sm: { h: 1 } xs: { h: 1 } xxs: { h: 1 } props: title: Important infoExpand 表10.3 利用可能なプロパティー プロパティー デフォルト 説明 titlenone
タイトル
- マークダウン
dynamicPlugins: frontend: red-hat-developer-hub.backstage-plugin-dynamic-home-page: mountPoints: - mountPoint: home.page/cards importName: MarkdownCard config: layouts: xl: { w: 6, h: 4 } lg: { w: 6, h: 4 } md: { w: 6, h: 4 } sm: { w: 6, h: 4 } xs: { w: 6, h: 4 } xxs: { w: 6, h: 4 } props: title: Company links content: | ### RHDH * [Website](https://developers.redhat.com/rhdh/overview) * [Documentation](https://docs.redhat.com/en/documentation/red_hat_developer_hub/) * [Janus Plugins](https://github.com/janus-idp/backstage-plugins) * [Backstage Community Plugins](https://github.com/backstage/community-plugins) * [RHDH Plugins](https://github.com/redhat-developer/rhdh-plugins) * [RHDH Showcase](https://github.com/redhat-developer/rhdh) - mountPoint: home.page/cards importName: Markdown config: layouts: xl: { w: 6, h: 4, x: 6 } lg: { w: 6, h: 4, x: 6 } md: { w: 6, h: 4, x: 6 } sm: { w: 6, h: 4, x: 6 } xs: { w: 6, h: 4, x: 6 } xxs: { w: 6, h: 4, x: 6 } props: title: Important company links content: | ### RHDH * [Website](https://developers.redhat.com/rhdh/overview) * [Documentation](https://docs.redhat.com/en/documentation/red_hat_developer_hub/) * [Documentation](https://docs.redhat.com/en/documentation/red_hat_developer_hub/) * [Janus Plugins](https://github.com/janus-idp/backstage-plugins) * [Backstage Community Plugins](https://github.com/backstage/community-plugins) * [RHDH Plugins](https://github.com/redhat-developer/rhdh-plugins) * [RHDH Showcase](https://github.com/redhat-developer/rhdh)- プレースホルダー
dynamicPlugins: frontend: red-hat-developer-hub.backstage-plugin-dynamic-home-page: mountPoints: - mountPoint: home.page/cards importName: Placeholder config: layouts: xl: { w: 1, h: 1 } lg: { w: 1, h: 1 } md: { w: 1, h: 1 } sm: { w: 1, h: 1 } xs: { w: 1, h: 1 } xxs: { w: 1, h: 1 } props: showBorder: true debugContent: '1'- スター付きエンティティーのカタログ化
dynamicPlugins: frontend: red-hat-developer-hub.backstage-plugin-dynamic-home-page: mountPoints: - mountPoint: home.page/cards importName: CatalogStarredEntitiesCard- 注目のドキュメント
dynamicPlugins: frontend: red-hat-developer-hub.backstage-plugin-dynamic-home-page: mountPoints: - mountPoint: home.page/cards importName: FeaturedDocsCard
10.2. Red Hat Developer Hub Home ページのレイアウトの定義 リンクのコピーリンクがクリップボードにコピーされました!
Home ページでは、12 列のグリッドを使用してカードを配置します。最適なパラメーターを使用して、Developer Hub の Home ページのレイアウトを定義できます。
前提条件
各ブレークポイントに次の最適なパラメーターを含めます。
- 幅 (w)
- 高さ (h)
- 位置 (x および y)
手順
次のいずれかのオプションを選択して、Developer Hub の
app-config.yaml設定ファイルを設定します。- 次のように、小さいウィンドウではスペース全体を、大きいウィンドウではスペースの半分を使用します。
dynamicPlugins:
frontend:
red-hat-developer-hub.backstage-plugin-dynamic-home-page:
mountPoints:
- mountPoint: home.page/cards
importName: Placeholder
config:
layouts:
xl: { w: 6, h: 2 }
lg: { w: 6, h: 2 }
md: { w: 6, h: 2 }
sm: { w: 12, h: 2 }
xs: { w: 12, h: 2 }
xxs: { w: 12, h: 2 }
props:
showBorder: true
debugContent: a placeholder
-
次の例に示すように、
xパラメーターを定義してカードを並べて表示します。
dynamicPlugins:
frontend:
red-hat-developer-hub.backstage-plugin-dynamic-home-page:
mountPoints:
- mountPoint: home.page/cards
importName: Placeholder
config:
layouts:
xl: { w: 6, h: 2 }
lg: { w: 6, h: 2 }
md: { w: 6, h: 2 }
sm: { w: 12, h: 2 }
xs: { w: 12, h: 2 }
xxs: { w: 12, h: 2 }
props:
showBorder: true
debugContent: left
- mountPoint: home.page/cards
importName: Placeholder
config:
layouts:
xl: { w: 6, h: 2, x: 6 }
lg: { w: 6, h: 2, x: 6 }
md: { w: 6, h: 2, x: 6 }
sm: { w: 12, h: 2, x: 0 }
xs: { w: 12, h: 2, x: 0 }
xxs: { w: 12, h: 2, x: 0 }
props:
showBorder: true
debugContent: right
ただし、デフォルトではこのカードの下に 2 枚目のカードが表示されます。
-
次の例に示すように、
xパラメーターを定義してカードを 3 列で表示します。
dynamicPlugins:
frontend:
red-hat-developer-hub.backstage-plugin-dynamic-home-page:
mountPoints:
- mountPoint: home.page/cards
importName: Placeholder
config:
layouts:
xl: { w: 4, h: 2 }
lg: { w: 4, h: 2 }
md: { w: 4, h: 2 }
sm: { w: 6, h: 2 }
xs: { w: 12, h: 2 }
xxs: { w: 12, h: 2 }
props:
showBorder: true
debugContent: left
- mountPoint: home.page/cards
importName: Placeholder
config:
layouts:
xl: { w: 4, h: 2, x: 4 }
lg: { w: 4, h: 2, x: 4 }
md: { w: 4, h: 2, x: 4 }
sm: { w: 6, h: 2, x: 6 }
xs: { w: 12, h: 2 }
xxs: { w: 12, h: 2 }
props:
showBorder: true
debugContent: center
- mountPoint: home.page/cards
importName: Placeholder
config:
layouts:
xl: { w: 4, h: 2, x: 8 }
lg: { w: 4, h: 2, x: 8 }
md: { w: 4, h: 2, x: 8 }
sm: { w: 6, h: 2 }
xs: { w: 12, h: 2 }
xxs: { w: 12, h: 2 }
props:
showBorder: true
debugContent: right
第11章 クイックアクセスカードのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub の Home ページにアクセスするには、ベース URL に /developer-hub プロキシーが含まれている必要があります。データをプロキシーとして app-config.yaml ファイルに渡すことで、Home ページを設定できます。次のソースから Home ページにデータを提供できます。
- GitHub または GitLab でホストされている JSON ファイル
- API を使用して JSON 形式で Home ページのデータを提供する専用サービス
11.1. ホストされた JSON ファイルを使用したクイックアクセスカードへのデータの提供 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- Operator または Helm チャートのいずれかを使用して Red Hat Developer Hub をインストールしている。OpenShift Container Platform への Red Hat Developer Hub のインストール を参照してください。
手順
-
JSON ファイルからのデータにアクセスするには、Developer Hub の
app-config.yaml設定ファイルに次のコードを追加します。 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 /redhat-developer/rhdh/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
11.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 ビューで 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 を追加して、その URL を許可リストに登録します。
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