6.3. Helm チャートを使用した動的プラグインのインストール


柔軟なインストール方法である Helm チャートを使用して、Developer Hub インスタンスをデプロイできます。Helm chart を使用すると、コードを再コンパイルしたりコンテナーを再ビルドしたりすることなく、動的プラグインを Developer Hub インスタンスにサイドロードできます。

Helm を使用して Developer Hub に動的プラグインをインストールするには、Helm チャートに次の global.dynamic パラメーターを追加します。

  • plugins: インストールを目的とした動的プラグインのリスト。デフォルトでは、リストは空です。プラグインのリストには次のフィールドを入力できます。

    • package: インストールする動的プラグインパッケージのパッケージ仕様。パッケージは、ローカルまたは外部の動的プラグインのインストールに使用できます。ローカルインストールの場合は、動的プラグインを含むローカルフォルダーへのパスを使用します。外部インストールの場合は、パブリック NPM リポジトリーのパッケージ仕様を使用します。
    • integrity (外部パッケージの場合に必要): パッケージ固有の <alg>-<digest> 形式の整合性チェックサム。サポートされるアルゴリズムは、sha256sha384sha512 です。
    • pluginConfig: オプションのプラグイン固有の app-config YAML フラグメント。詳細は、プラグインの設定を参照してください。
    • 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=='
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.