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 プラグインからのプロキシー要求パスです。
サービスプロキシーの例
apiVersion: console.openshift.io/v1
kind: ConsolePlugin
metadata:
name:<plugin-name>
spec:
proxy:
- alias: helm-charts
authorization: UserToken
caCertificate: '-----BEGIN CERTIFICATE-----\nMIID....'en
endpoint:
service:
name: <service-name>
namespace: <service-namespace>
port: <service-port>
type: Service
- 1
- プロキシーのエイリアス。
- 2
- ログインしたユーザーの OpenShift Container Platform アクセストークンをサービスプロキシー要求に含める必要がある場合は、authorization フィールドを
UserTokenに設定する必要があります。注記ログインしたユーザーの OpenShift Container Platform アクセストークンがサービスプロキシー要求に含まれていない場合は、authorization フィールドを
Noneに設定してください。 - 3
- サービスがカスタムサービス CA を使用する場合、
caCertificateフィールドに証明書バンドルが含まれている必要があります。 - 4
- プロキシーのエンドポイント。