第6章 ConsolePlugin [console.openshift.io/v1]
- 説明
ConsolePlugin は、クラスターで実行されている別のサービスからコードを動的にロードすることにより、OpenShift Web コンソールをカスタマイズするための拡張機能です。
互換性レベル 1: メジャーリリース内で最低 12 か月または 3 つのマイナーリリース (どちらか長い方) の間安定しています。
- 型
-
object
- 必須
-
metadata
-
spec
-
6.1. 仕様 リンクのコピーリンクがクリップボードにコピーされました!
プロパティー | 型 | 説明 |
---|---|---|
|
| apiVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できることがあります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
| 標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 | |
|
| spec には、コンソールプラグインに必要な設定が含まれています。 |
6.1.1. .spec リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- spec には、コンソールプラグインに必要な設定が含まれています。
- 型
-
object
- 必須
-
backend
-
displayName
-
プロパティー | 型 | 説明 |
---|---|---|
|
| backend は、コンソールのプラグインを提供するバックエンドの設定を保持します。 |
|
| contentSecurityPolicy は、プラグインの Content-Security-Policy (CSP) ディレクティブのリストです。各ディレクティブは、指定されたディレクティブタイプに適した値のリストを指定します。たとえば、ScriptSrc などの fetch ディレクティブのリモートエンドポイントのリストなどです。コンソール Web アプリケーションは、CSP を使用して、クロスサイトスクリプティング (XSS) やデータインジェクション攻撃などの特定の種類の攻撃を検出し、緩和します。動的プラグインでは、クラスター外部からアセットをロードする必要がある場合、または違反レポートが観察された場合に、このフィールドを指定する必要があります。動的プラグインでは、常にクラスター内からのアセット取得を優先する必要があります。その場合、アセットのベンダー化とクラスターサービスからの取得のいずれかの方法を使用します。CSP 違反レポートは、OpenShift Web コンソールでのプラグイン開発およびテスト時に、ブラウザーのコンソールログで表示できます。使用可能なディレクティブタイプは、DefaultSrc、ScriptSrc、StyleSrc、ImgSrc、FontSrc、ConnectSrc です。使用可能な各ディレクティブは、リスト内で 1 回だけ定義できます。'self' の値は、OpenShift Web コンソールのバックエンドによってすべての fetch ディレクティブに自動的に追加されます。CSP ディレクティブの詳細は、https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy を参照してください。
OpenShift Web コンソールサーバーは、独自のデフォルト値とすべての有効な ConsolePlugin CR で CSP ディレクティブと値を集約し、それらを 1 つのポリシー文字列にマージして、 例: ConsolePlugin A ディレクティブ: script-src: https://script1.com/, https://script2.com/ font-src: https://font1.com/ ConsolePlugin B ディレクティブ: script-src: https://script2.com/, https://script3.com/ font-src: https://font2.com/ img-src: https://img1.com/ OpenShift Web コンソールサーバーに渡される CSP ディレクティブの統合セット: script-src: https://script1.com/, https://script2.com/, https://script3.com/ font-src: https://font1.com/, https://font2.com/ img-src: https://img1.com/ OpenShift Web コンソールサーバー CSP 応答ヘッダー: Content-Security-Policy: default-src 'self'; base-uri 'self'; script-src 'self' https://script1.com/ https://script2.com/ https://script3.com/; font-src 'self' https://font1.com/ https://font2.com/; img-src 'self' https://img1.com/; style-src 'self'; frame-src 'none'; object-src 'none' |
|
| ConsolePluginCSP は特定の CSP ディレクティブの設定を保持します |
|
| displayName は、プラグインの表示名です。dispalyName は 1 - 128 文字の間で指定する必要があります。 |
|
| i18n は、プラグインのローカリゼーションリソースの設定です。 |
|
| proxy は、プラグインが接続する必要のあるさまざまなサービスタイプを記述するプロキシーのリストです。 |
|
| ConsolePluginProxy は、コンソールのバックエンドがプラグインのリクエストをプロキシーするさまざまなサービスタイプに関する情報を保持します。 |
6.1.2. .spec.backend リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- backend は、コンソールのプラグインを提供するバックエンドの設定を保持します。
- 型
-
object
- 必須
-
type
-
プロパティー | 型 | 説明 |
---|---|---|
|
| service は、HTTP サーバーを使用したデプロイを使用してプラグインを公開する Kubernetes サービスです。Service は HTTPS と Service 提供証明書を使用する必要があります。コンソールバックエンドは、サービス CA バンドルを使用してサービスからプラグインアセットをプロキシーします。 |
|
| type は、コンソールのプラグインを提供するバックエンドタイプです。現在、"Service" のみがサポートされています。 |
6.1.3. .spec.backend.service リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- service は、HTTP サーバーを使用したデプロイを使用してプラグインを公開する Kubernetes サービスです。Service は HTTPS と Service 提供証明書を使用する必要があります。コンソールバックエンドは、サービス CA バンドルを使用してサービスからプラグインアセットをプロキシーします。
- 型
-
object
- 必須
-
name
-
namespace
-
port
-
プロパティー | 型 | 説明 |
---|---|---|
|
|
basePath は、プラグインのアセットへのパスです。主な資産は、 |
|
| プラグインアセットを提供している Service の名前です。 |
|
| プラグインアセットを提供している Service の namespace です。 |
|
| プラグインを提供しているサービスがリッスンしているポート。 |
6.1.4. .spec.contentSecurityPolicy リンクのコピーリンクがクリップボードにコピーされました!
- 説明
contentSecurityPolicy は、プラグインの Content-Security-Policy (CSP) ディレクティブのリストです。各ディレクティブは、指定されたディレクティブタイプに適した値のリストを指定します。たとえば、ScriptSrc などの fetch ディレクティブのリモートエンドポイントのリストなどです。コンソール Web アプリケーションは、CSP を使用して、クロスサイトスクリプティング (XSS) やデータインジェクション攻撃などの特定の種類の攻撃を検出し、緩和します。動的プラグインでは、クラスター外部からアセットをロードする必要がある場合、または違反レポートが観察された場合に、このフィールドを指定する必要があります。動的プラグインでは、常にクラスター内からのアセット取得を優先する必要があります。その場合、アセットのベンダー化とクラスターサービスからの取得のいずれかの方法を使用します。CSP 違反レポートは、OpenShift Web コンソールでのプラグイン開発およびテスト時に、ブラウザーのコンソールログで表示できます。使用可能なディレクティブタイプは、DefaultSrc、ScriptSrc、StyleSrc、ImgSrc、FontSrc、ConnectSrc です。使用可能な各ディレクティブは、リスト内で 1 回だけ定義できます。'self' の値は、OpenShift Web コンソールのバックエンドによってすべての fetch ディレクティブに自動的に追加されます。CSP ディレクティブの詳細は、https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy を参照してください。
OpenShift Web コンソールサーバーは、独自のデフォルト値とすべての有効な ConsolePlugin CR で CSP ディレクティブと値を集約し、それらを 1 つのポリシー文字列にマージして、
Content-Security-Policy
HTTP 応答ヘッダーを介してブラウザーに送信します。例: ConsolePlugin A ディレクティブ: script-src: https://script1.com/, https://script2.com/ font-src: https://font1.com/
ConsolePlugin B directives: script-src: https://script2.com/, https://script3.com/ font-src: https://font2.com/ img-src: https://img1.com/
ConsolePlugin B directives: script-src: https://script2.com/, https://script3.com/ font-src: https://font2.com/ img-src: https://img1.com/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Unified set of CSP directives, passed to the OpenShift web console server: script-src: https://script1.com/, https://script2.com/, https://script3.com/ font-src: https://font1.com/, https://font2.com/ img-src: https://img1.com/
Unified set of CSP directives, passed to the OpenShift web console server: script-src: https://script1.com/, https://script2.com/, https://script3.com/ font-src: https://font1.com/, https://font2.com/ img-src: https://img1.com/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift web console server CSP response header: Content-Security-Policy: default-src 'self'; base-uri 'self'; script-src 'self' https://script1.com/ https://script2.com/ https://script3.com/; font-src 'self' https://font1.com/ https://font2.com/; img-src 'self' https://img1.com/; style-src 'self'; frame-src 'none'; object-src 'none'
OpenShift web console server CSP response header: Content-Security-Policy: default-src 'self'; base-uri 'self'; script-src 'self' https://script1.com/ https://script2.com/ https://script3.com/; font-src 'self' https://font1.com/ https://font2.com/; img-src 'self' https://img1.com/; style-src 'self'; frame-src 'none'; object-src 'none'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 型
-
array
6.1.5. .spec.contentSecurityPolicy[] リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- ConsolePluginCSP は特定の CSP ディレクティブの設定を保持します
- 型
-
object
- 必須
-
directive
-
values
-
プロパティー | 型 | 説明 |
---|---|---|
|
| directive は、どの Content-Security-Policy ディレクティブを設定するか指定します。使用可能なディレクティブタイプは、DefaultSrc、ScriptSrc、StyleSrc、ImgSrc、FontSrc、ConnectSrc です。DefaultSrc ディレクティブは、他の CSP fetch ディレクティブのフォールバックとして機能します。DefaultSrc ディレクティブの詳細は、https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src を参照してください。ScriptSrc ディレクティブは、JavaScript の有効なソースを指定します。ScriptSrc ディレクティブの詳細は、https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src を参照してください。StyleSrc ディレクティブは、スタイルシートの有効なソースを指定します。StyleSrc ディレクティブの詳細は、https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src を参照してください。ImgSrc ディレクティブは、イメージとファビコンの有効なソースを指定します。ImgSrc ディレクティブの詳細は、https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src を参照してください。FontSrc ディレクティブは、@font-face を使用して読み込まれたフォントの有効なソースを指定します。FontSrc ディレクティブの詳細は、https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src を参照してください。ConnectSrc ディレクティブは、スクリプトインターフェイスを使用して読み込むことができる URL を制限します。ConnectSrc ディレクティブの詳細は、https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src を参照してください。 |
|
| values は、このディレクティブのコンソールのデフォルトに追加する値の配列を定義します。各 ConsolePlugin は、独自のディレクティブと値を定義できます。これらは、OpenShift Web コンソールのバックエンドによって、Content-Security-Policy ヘッダーの一部として設定されます。配列には最大 16 個の値を含めることができます。各ディレクティブ値の最大長は 1024 文字で、空白、コンマ (,)、セミコロン (;)、一重引用符 (') を含めることはできません。値 '*' は使用できません。配列内の各値は一意である必要があります。 |
6.1.6. .spec.i18n リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- i18n は、プラグインのローカリゼーションリソースの設定です。
- 型
-
object
- 必須
-
loadType
-
プロパティー | 型 | 説明 |
---|---|---|
|
| loadType は、プラグインのローカリゼーションリソースをロードする方法を示します。有効な値は、Preload、Lazy、および空の文字列です。Preload に設定すると、プラグインがロードされたときにすべてのローカリゼーションリソースが取得されます。Lazy に設定すると、ローカリゼーションリソースは、コンソールで要求されるときに遅延ロードされます。省略されるか空の文字列が設定されている場合、動作は Lazy タイプと同じになります。 |
6.1.7. .spec.proxy リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- proxy は、プラグインが接続する必要のあるさまざまなサービスタイプを記述するプロキシーのリストです。
- 型
-
array
6.1.8. .spec.proxy[] リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- ConsolePluginProxy は、コンソールのバックエンドがプラグインのリクエストをプロキシーするさまざまなサービスタイプに関する情報を保持します。
- 型
-
object
- 必須
-
alias
-
endpoint
-
プロパティー | 型 | 説明 |
---|---|---|
|
| alias は、プラグインのプロキシーを識別するプロキシー名です。alias 名は、プラグインごとに一意である必要があります。コンソールバックエンドは次のプロキシーエンドポイントを公開します。 /api/proxy/plugin/<plugin-name>/<proxy-alias>/<request-path>?<optional-query-parameters> リクエストのサンプルパス: /api/proxy/plugin/acm/search/pods?namespace=openshift-apiserver |
|
| authorization は、プロキシーされたリクエストに含まれる必要がある authorization タイプに関する情報を提供します。 |
|
| caCertificate は、プロキシーされた Service がカスタムサービス CA を使用している場合に備えて、証明書機関の証明書の内容を提供します。デフォルトでは、service-ca Operator によって提供されるサービス CA バンドルが使用されます。 |
|
| エンドポイントは、リクエストがプロキシーされるエンドポイントに関する情報を提供します。 |
6.1.9. .spec.proxy[].endpoint リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- エンドポイントは、リクエストがプロキシーされるエンドポイントに関する情報を提供します。
- 型
-
object
- 必須
-
type
-
プロパティー | 型 | 説明 |
---|---|---|
|
| サービスは、プラグインが接続するクラスター内の Service です。この Service は HTTPS を使用する必要があります。コンソールバックエンドは、プラグインと Service 間の通信をプロキシーするためにエンドポイントを公開します。注記: 現在 "Service" タイプのみがサポートされているため、サービスフィールドは必須です。 |
|
| type は、コンソールプラグインのプロキシーのタイプです。現在、"Service" のみがサポートされています。 |
6.1.10. .spec.proxy[].endpoint.service リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- サービスは、プラグインが接続するクラスター内の Service です。この Service は HTTPS を使用する必要があります。コンソールバックエンドは、プラグインと Service 間の通信をプロキシーするためにエンドポイントを公開します。注記: 現在 "Service" タイプのみがサポートされているため、サービスフィールドは必須です。
- 型
-
object
- 必須
-
name
-
namespace
-
port
-
プロパティー | 型 | 説明 |
---|---|---|
|
| プラグインが接続する必要のある Service の名前です。 |
|
| プラグインが接続する必要のある Service の namespace です。 |
|
| プラグインが接続する必要のある Service がリッスンしているポートです。 |