6.3. Helm チャートを使用した動的プラグインのインストール
柔軟なインストール方法である Helm チャートを使用して、Developer Hub インスタンスをデプロイできます。Helm chart を使用すると、コードを再コンパイルしたりコンテナーを再ビルドしたりすることなく、動的プラグインを Developer Hub インスタンスにサイドロードできます。
Helm を使用して Developer Hub に動的プラグインをインストールするには、Helm チャートに次の global.dynamic パラメーターを追加します。
plugins: インストールを目的とした動的プラグインのリスト。デフォルトでは、リストは空です。プラグインのリストには次のフィールドを入力できます。-
package: インストールする動的プラグインパッケージのパッケージ仕様。パッケージは、ローカルまたは外部の動的プラグインのインストールに使用できます。ローカルインストールの場合は、動的プラグインを含むローカルフォルダーへのパスを使用します。外部インストールの場合は、パブリック NPM リポジトリーのパッケージ仕様を使用します。 -
integrity(外部パッケージの場合に必要): パッケージ固有の<alg>-<digest>形式の整合性チェックサム。サポートされるアルゴリズムは、sha256、sha384、sha512です。 -
pluginConfig: オプションのプラグイン固有のapp-configYAML フラグメント。詳細は、プラグインの設定を参照してください。 -
disabled:trueに設定すると、動的プラグインが無効になります。デフォルト:false。
-
-
includes: 同じ構文を使用する YAML ファイルのリスト。
includes ファイル内の plugins リストは、main Helm values の plugins リストとマージされます。プラグインパッケージが両方の plugins リストに記載されている場合、main Helm values の plugins フィールドが includes ファイルの plugins フィールドをオーバーライドします。デフォルト設定には、dynamic-plugins.default.yaml ファイルが含まれています。このファイルには、デフォルトで有効か無効かに関係なく、Developer Hub に事前にインストールされているすべての動的プラグインが含まれます。
6.3.1. 整合性チェックサムの取得 リンクのコピーリンクがクリップボードにコピーされました!
整合性チェックサムを取得するには、次のコマンドを入力します。
npm view <package name>@<version> dist.integrity
6.3.2. 動的プラグインインストール用の Helm chart 設定の例 リンクのコピーリンクがクリップボードにコピーされました!
次の例は、特定の種類の動的プラグインインストール用に Helm chart を設定する方法を示しています。
外部プラグインが特定のアプリケーション設定を必要とする場合に、ローカルプラグインと外部プラグインを設定する
global:
dynamic:
plugins:
- package: <alocal package-spec used by npm pack>
- package: <external package-spec used by npm pack>
integrity: sha512-<some hash>
pluginConfig: ...
含まれるファイルからプラグインを無効にする
global:
dynamic:
includes:
- dynamic-plugins.default.yaml
plugins:
- package: <some imported plugins listed in dynamic-plugins.default.yaml>
disabled: true
含まれるファイルからプラグインを有効にする
global:
dynamic:
includes:
- dynamic-plugins.default.yaml
plugins:
- package: <some imported plugins listed in dynamic-plugins.custom.yaml>
disabled: false
含まれるファイルで無効になっているプラグインを有効にする
global:
dynamic:
includes:
- dynamic-plugins.default.yaml
plugins:
- package: <some imported plugins listed in dynamic-plugins.custom.yaml>
disabled: false
6.3.3. Helm chart を使用した外部動的プラグインのインストール リンクのコピーリンクがクリップボードにコピーされました!
NPM レジストリーには、デモンストレーションの目的で使用できる外部動的プラグインが含まれています。たとえば、次のコミュニティープラグインは、NPMJS リポジトリーの janus-idp 組織で使用できます。
- Notifications (フロントエンドおよびバックエンド)
- Kubernetes actions (scaffolder actions)
Notifications プラグインおよび Kubernetes actions プラグインをインストールするには、次の例に示すように、global.dynamic.plugins リストの Helm chart values に当該プラグインを追加します。
global:
dynamic:
plugins:
- package: '@janus-idp/plugin-notifications-backend-dynamic@1.3.6'
# Integrity can be found at https://registry.npmjs.org/@janus-idp/plugin-notifications-backend-dynamic
integrity: 'sha512-Qd8pniy1yRx+x7LnwjzQ6k9zP+C1yex24MaCcx7dGDPT/XbTokwoSZr4baSSn8jUA6P45NUUevu1d629mG4JGQ=='
- package: '@janus-idp/plugin-notifications@1.1.12
'
# https://registry.npmjs.org/@janus-idp/plugin-notifications
integrity: 'sha512-GCdEuHRQek3ay428C8C4wWgxjNpNwCXgIdFbUUFGCLLkBFSaOEw+XaBvWaBGtQ5BLgE3jQEUxa+422uzSYC5oQ=='
pluginConfig:
dynamicPlugins:
frontend:
janus-idp.backstage-plugin-notifications:
appIcons:
- name: notificationsIcon
module: NotificationsPlugin
importName: NotificationsActiveIcon
dynamicRoutes:
- path: /notifications
importName: NotificationsPage
module: NotificationsPlugin
menuItem:
icon: notificationsIcon
text: Notifications
config:
pollingIntervalMs: 5000
- package: '@janus-idp/backstage-scaffolder-backend-module-kubernetes-dynamic@1.3.5'
# https://registry.npmjs.org/@janus-idp/backstage-scaffolder-backend-module-kubernetes-dynamic
integrity: 'sha512-19ie+FM3QHxWYPyYzE0uNdI5K8M4vGZ0SPeeTw85XPROY1DrIY7rMm2G0XT85L0ZmntHVwc9qW+SbHolPg/qRA=='
proxy:
endpoints:
/explore-backend-completed:
target: 'http://localhost:7017'
- package: '@dfatwork-pkgs/search-backend-module-explore-wrapped-dynamic@0.1.3-next.1'
# https://registry.npmjs.org/@dfatwork-pkgs/search-backend-module-explore-wrapped-dynamic
integrity: 'sha512-mv6LS8UOve+eumoMCVypGcd7b/L36lH2z11tGKVrt+m65VzQI4FgAJr9kNCrjUZPMyh36KVGIjYqsu9+kgzH5A=='
- package: '@dfatwork-pkgs/plugin-catalog-backend-module-test-dynamic@0.0.0'
# https://registry.npmjs.org/@dfatwork-pkgs/plugin-catalog-backend-module-test-dynamic
integrity: 'sha512-YsrZMThxJk7cYJU9FtAcsTCx9lCChpytK254TfGb3iMAYQyVcZnr5AA/AU+hezFnXLsr6gj8PP7z/mCZieuuDA=='