2.21.5. ServiceMeshExtension リファレンス
ServiceMeshExtension API には、WebAssembly フィルターを介して Istio プロキシーによって提供される機能を拡張するメカニズムがあります。WebAssembly 拡張機能の作成には 2 つの段階があります。
- proxy-wasm API を公開する SDK を使用して拡張機能を記述し、それを WebAssembly モジュールにコンパイルします。
- コンテナーにパッケージ化します。
新しい WebAssembly 拡張機能を作成するときは、WasmPlugin API を使用してください。Red Hat OpenShift Service Mesh バージョン 2.2 で非推奨となった ServiceMeshExtension API が、Red Hat OpenShift Service Mesh バージョン 2.3 で削除されました。
| フィールド | 説明 |
|---|---|
| metadata.namespace |
|
| spec.workloadSelector |
|
| spec.config | これは、拡張に転送される構造化フィールドで、セマンティクスはデプロイしている拡張に依存します。 |
| spec.image | 拡張を保持するイメージを参照するコンテナーイメージ URI です。 |
| spec.phase |
このフェーズでは、認証、認可、メトリクス生成などの既存の Istio 機能に関連して、フィルターチェーンのどこに拡張を注入するかを決定します。有効な値は、PreAuthN、PostAuthN、PreAuthZ、PostAuthZ、PreStats、PostStats です。このフィールドは、拡張の |
| spec.priority |
同じ |
2.21.5.1. ServiceMeshExtension リソースのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
ServiceMeshExtension リソースを使用して、Red Hat OpenShift Service Mesh 拡張機能を有効にできます。この例では、istio-system が Service Mesh コントロールプレーンプロジェクトの名前となります。
新しい WebAssembly 拡張機能を作成するときは、WasmPlugin API を使用してください。ServiceMeshExtension API は、Red Hat OpenShift Service Mesh バージョン 2.2 で非推奨となり、Red Hat OpenShift Service Mesh バージョン 2.3 で削除されました。
Rust SDK を使用してビルドされる完全なサンプルは、header-append-filter を参照してください。これは、拡張の config フィールドから取られた名前および値で HTTP 応答に 1 つ以上のヘッダーを追加する単純なフィルターです。以下のスニペットの設定例を参照してください。
手順
以下のリソース例を作成します。
ServiceMeshExtension リソースの extension.yaml の例
apiVersion: maistra.io/v1 kind: ServiceMeshExtension metadata: name: header-append namespace: istio-system spec: workloadSelector: labels: app: httpbin config: first-header: some-value another-header: another-value image: quay.io/maistra-dev/header-append-filter:2.1 phase: PostAuthZ priority: 100以下のコマンドを使用して
extension.yamlファイルを適用します。$ oc apply -f <extension>.yaml