7.3. クラスターへのプラグインのデプロイ
プラグインを OpenShift Container Platform クラスターにデプロイできます。
7.3.1. Docker を使用したイメージのビルド
クラスターにプラグインをデプロイするには、まずイメージをビルドし、それをイメージレジストリーにプッシュする必要があります。
手順
- 以下のコマンドでイメージをビルドします。 - docker build -t quay.io/my-repositroy/my-plugin:latest . - $ docker build -t quay.io/my-repositroy/my-plugin:latest .- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- オプション: イメージをテストする場合は、以下のコマンドを実行します。 - docker run -it --rm -d -p 9001:80 quay.io/my-repository/my-plugin:latest - $ docker run -it --rm -d -p 9001:80 quay.io/my-repository/my-plugin:latest- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 以下のコマンドを実行してイメージをプッシュします。 - docker push quay.io/my-repository/my-plugin:latest - $ docker push quay.io/my-repository/my-plugin:latest- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
7.3.2. クラスターへのプラグインのデプロイ
変更を加えたイメージをレジストリーにプッシュした後、Helm チャートを使用してプラグインをクラスターにデプロイできます。
前提条件
- 以前にプッシュしたプラグインを含むイメージの場所が用意されている。 注記- プラグインのニーズに応じて追加のパラメーターを指定できます。 - values.yamlファイルに、サポートされているパラメーターがすべて含まれています。
手順
- プラグインをクラスターにデプロイするには、プラグインの名前を Helm リリース名として Helm チャートを、新しい namespace または - -nコマンドラインオプションで指定された既存の namespace にインストールします。次のコマンドを使用して、- plugin.imageパラメーター内のイメージの場所を指定します。- helm upgrade -i my-plugin charts/openshift-console-plugin -n my-plugin-namespace --create-namespace --set plugin.image=my-plugin-image-location - $ helm upgrade -i my-plugin charts/openshift-console-plugin -n my-plugin-namespace --create-namespace --set plugin.image=my-plugin-image-location- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - ここでは、以下のようになります。 - n <my-plugin-namespace>
- プラグインをデプロイする既存の namespace を指定します。
- --create-namespace
- オプション: 新しい namespace にデプロイする場合は、このパラメーターを使用します。
- --set plugin.image=my-plugin-image-location
- 
										plugin.imageパラメーター内のイメージの場所を指定します。
 注記- OpenShift Container Platform 4.10 以降にデプロイする場合は、 - --set plugin.securityContext.enabled=falseパラメーターを追加して、Pod セキュリティーに関連する設定を除外することを推奨します。
- オプション: - charts/openshift-console-plugin/values.yamlファイルでサポートされている一連のパラメーターを使用して、追加のパラメーターを指定できます。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
検証
- 
							有効なプラグインのリストを表示するには、Administration Cluster Settings Configuration Console operator.openshift.ioConsole plugins に移動するか、Overview ページにアクセスします。 
新しいプラグイン設定が表示されるまで数分かかる場合があります。最近プラグインを有効にしたにもかかわらず、プラグインが表示されない場合は、ブラウザを更新する必要が生じる可能性があります。実行時にエラーが発生した場合は、ブラウザー開発者ツールの JS コンソールをチェックして、プラグインコードにエラーがないか調べてください。
7.3.3. プラグインサービスプロキシー
					プラグインからクラスター内のサービスに HTTP リクエストを送信する必要がある場合は、spec.proxy 配列フィールドを使用して、ConsolePlugin リソースでサービスプロキシーを宣言できます。コンソールバックエンドは、プラグインとサービス間の通信をプロキシーするために、/api/proxy/plugin/<plugin-name>/<proxy-alias>/<request-path>?<optional-query-parameters> エンドポイントを公開します。プロキシーされたリクエストは、デフォルトで サービス CA バンドル を使用します。このサービスは HTTPS を使用する必要があります。
				
						プラグインは、JavaScript コードからリクエストを行うために consolefetch API を使用する必要があります。そうしないと、一部のリクエストが失敗する可能性があります。詳細は、「動的プラグイン API」を参照してください。
					
					エントリーごとに、endpoint and alias フィールドでプロキシーのエンドポイントとエイリアスを指定する必要があります。Service プロキシータイプの場合、エンドポイント type フィールドを Service に設定し、service に name、namespace、および port フィールドの値を含める必要があります。たとえば、/api/proxy/plugin/helm/helm-charts/releases?limit=10 は、10 個の Helm リリースをリストする helm-charts サービスが含まれる helm プラグインからのプロキシー要求パスです。
				
サービスプロキシーの例
- 1
- プロキシーのエイリアス。
- 2
- ログインしたユーザーの OpenShift Container Platform アクセストークンをサービスプロキシー要求に含める必要がある場合は、authorization フィールドをUserTokenに設定する必要があります。注記ログインしたユーザーの OpenShift Container Platform アクセストークンがサービスプロキシー要求に含まれていない場合は、authorization フィールドを Noneに設定してください。
- 3
- サービスがカスタムサービス CA を使用する場合、caCertificateフィールドに証明書バンドルが含まれている必要があります。
- 4
- プロキシーのエンドポイント。
7.3.4. ブラウザーでのプラグインの無効化
					コンソールユーザーは、disable-plugins クエリーパラメーターを使用して、通常ランタイム時にロードされる特定またはすべての動的プラグインを無効にすることができます。
				
手順
- 特定のプラグインを無効にするには、プラグイン名のコンマ区切りリストから無効にするプラグインを削除します。
- 
							すべてのプラグインを無効にするには、disable-pluginsクエリーパラメーターを空の文字列のままにします。
クラスター管理者は、Web コンソールの Cluster Settings ページでプラグインを無効にできます。