canary-headerプラグインは、指定した割合に基づいて特定のヘッダーをリクエストに追加します。 ヘッダーがリクエストに追加された後、ルートは再マッチングされます。 このプラグインでは、クラウドネイティブゲートウェイを使用して、クライアント要求がカナリアヘッダーを運ぶ必要なく、パーセンテージベースのカナリアリリースのルーティングを実装できます。
フィールド
設定アイテム | データ型 | 必須 / 任意 | デフォルト値 | 説明 |
| オブジェクトの配列 | 対象 | - | リクエストに追加するヘッダーとヘッダーの重み。 |
次の表に、weighted_headersフィールドの設定項目を示します。
設定アイテム | データ型 | 必須 / 任意 | デフォルト値 | 説明 |
| String | 対象 | - | リクエストに追加するヘッダーのキー。 |
| String | 対象 | - | リクエストに追加するヘッダーの値。 |
| 数値 | 対象 | - | リクエストに追加するヘッダーの重み。 単位: % 。 すべてのヘッダーの重みの合計は100を超えることはできません。 |
すべてのヘッダーの重みの合計が100未満の場合、100に満たない部分は、ヘッダーが追加されていないリクエストの割合を示します。
設定例
グローバル設定
次のサンプルコードは、x-higress-canary:grayヘッダーがリクエストの30% に追加され、x-higress-canary:baseヘッダーがリクエストの70% に追加されることを示しています。
weighted_headers:
- added_key: x-higress-canary
added_value: gray
weight: 30
- added_key: x-higress-canary
added_value: base
weight: 70次のサンプルコードは、x-higress-canary:grayヘッダーがリクエストの30% に追加され、リクエストの70% にはヘッダーが追加されないことを示しています。
weighted_headers:
- added_key: x-higress-canary
added_value: gray
weight: 30特定のルートまたはドメイン名に対してプラグインを有効にする
route-aルートが一致する場合、x-higress-canary:grayヘッダーがリクエストの30% に追加され、x-higress-canary:baseヘッダーがリクエストの70% に追加されます。 ヘッダーが追加された後、リクエストはルートに再マッチングします。 たとえば、route-a-grayという名前のルートのリクエストをヘッダーでルーティングでき、x-higress-canary:grayヘッダーをマッチングに使用する場合、route-aルートのリクエストの30% はroute-a-grayルートと一致します。 このようにして、パーセンテージベースのカナリアリリースを実装できます。
# Use the _rules_ field to configure fine-grained rules.
_rules_:
# Rule 1: Match a route name.
- _match_route_:
- route-a
weighted_headers:
- added_key: x-higress-canary
added_value: gray
weight: 30
- added_key: x-higress-canary
added_value: base
weight: 70
# Rule 2: Match a domain name.
- _match_domain_:
- "*.example.com"
weighted_headers:
- added_key: x-custom-header
added_value: gray
weight: 30
- added_key: x-custom-header
added_value: blue
weight: 30
- added_key: x-custom-header
added_value: base
weight: 40