第5章 ValidatingWebhookConfiguration [admissionregistration.k8s.io/v1]
- 説明
- ValidatingWebhookConfiguration は、変更せずに受け入れまたは拒否し、反対する Webhook の設定と承認について説明します。
- タイプ
-
object
5.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 を参照してください。 | |
|
| Webhook は、Webhook と影響を受けるリソースおよび操作のリストです。 |
|
| ValidatingWebhook は、アドミッション Webhook と、それが適用されるリソースと操作について説明しています。 |
5.1.1. .webhooks
- 説明
- Webhook は、Webhook と影響を受けるリソースおよび操作のリストです。
- タイプ
-
array
5.1.2. .webhooks[]
- 説明
- ValidatingWebhook は、アドミッション Webhook と、それが適用されるリソースと操作について説明しています。
- タイプ
-
object
- 必須
-
name
-
clientConfig
-
sideEffects
-
admissionReviewVersions
-
プロパティー | 型 | 説明 |
---|---|---|
|
|
AdmissionReviewVersions は、Webhook が期待する優先 |
|
| WebhookClientConfig には、Webhook との TLS 接続を確立するための情報が含まれています |
|
| FailurePolicy は、アドミッションエンドポイントからの認識されないエラーの処理方法を定義します。許可される値は Ignore または Fail です。デフォルトは失敗です。 |
|
| matchPolicy は、ルールリストを使用して着信要求を照合する方法を定義します。許可される値は正確または同等です。
- 完全: 指定されたルールに完全に一致する場合にのみ、要求に一致します。例えば、デプロイメントが apps/v1、apps/v1beta1、extensions/v1beta1 を通して変更できるのに、rule が
- 同等: 別の API グループまたはバージョンを介してでも、ルールにリストされているリソースを変更する場合は、リクエストに一致します。例えば、deployments が apps/v1、apps/v1beta1、extensions/v1beta1 を介して変更可能で、rules が デフォルトは同等 |
|
| アドミッション Webhook の名前。名前は完全修飾する必要があります。たとえば、imagepolicy.kubernetes.io です。ここで、imagepolicy は Webhook の名前であり、kubernetes.io は組織の名前です。必須。 |
| NamespaceSelector は、オブジェクトの名前空間がセレクターと一致するかどうかに基づいて、オブジェクトで Webhook を実行するかどうかを決定します。オブジェクト自体が名前空間である場合、マッチングは object.metadata.labels で実行されます。オブジェクトが別のクラスタースコープのリソースである場合、Webhook をスキップすることはありません。 たとえば、名前空間が 0 または 1 のランレベルに関連付けられていないオブジェクトで Webhook を実行するには、セレクターは次のように設定します。"namespaceSelector":{"matchExpressions":{"key": "runlevel"、"operator": "NotIn"、"values":"0"、"1"} } 代わりに、名前空間が prod または staging の environment に関連付けられているオブジェクトに対してのみ Webhook を実行する場合。セレクターは次のように設定します。"namespaceSelector":{"matchExpressions":{"key": "environment"、"operator": "In"、"values":"prod"、"staging"} } ラベルセレクターのその他の例については、https://kubernetes.io/docs/concepts/overview/working-with-objects/labels を参照してください。 デフォルトは空の LabelSelector で、すべてに一致します。 | |
| ObjectSelector は、オブジェクトに一致するラベルがあるかどうかに基づいて、Webhook を実行するかどうかを決定します。objectSelector は、Webhook に送信される oldObject と newObject の両方に対して評価され、いずれかのオブジェクトがセレクターと一致する場合に一致すると見なされます。null オブジェクト (create の場合は oldObject、delete の場合は newObject) またはラベルを持つことができないオブジェクト (DeploymentRollback または PodProxyOptions オブジェクトなど) は一致するとは見なされません。エンドユーザーはラベルを設定することでアドミッション Webhook をスキップできるため、Webhook がオプトインの場合にのみオブジェクトセレクターを使用してください。デフォルトは空の LabelSelector で、すべてに一致します。 | |
|
| ルールは、Webhook が気にするリソース/サブリソースに対する操作を記述します。Webhook は、操作が いずれかの ルールに一致する場合、その操作を考慮します。ただし、ValidatingAdmissionWebhooks と MutatingAdmissionWebhooks が、プラグインを完全に無効にしないと回復できない状態にクラスターを置くことを防ぐために、ValidatingAdmissionWebhooks と MutatingAdmissionWebhook は、ValidatingWebhookConfiguration オブジェクトと MutatingWebhookConfiguration オブジェクトの認可要求で呼び出されることはありません。 |
|
| RuleWithOperations は、操作とリソースのタプルです。すべてのタプル拡張が有効であることを確認することを推奨します。 |
|
| SideEffects は、この Webhook に副作用があるかどうかを示します。許容される値は、None、NoneOnDryRun です (v1beta1 を介して作成された Webhook は、Some または Unknown を指定する場合もあります)。副作用のある Webhook は、調整システムを実装する必要があります。これは、リクエストがアドミッションチェーンの将来のステップで拒否される可能性があるため、副作用を元に戻す必要があるためです。dryRun 属性を持つリクエストは、sideEffects==Unknown または Some の Webhook と一致する場合に自動拒否されます。 |
|
| TimeoutSeconds は、この Webhook のタイムアウトを指定します。タイムアウトが経過すると、Webhook 呼び出しは無視されるか、失敗ポリシーに基づいて API 呼び出しが失敗します。タイムアウト値は 1〜30 秒である必要があります。デフォルトは 10 秒です。 |
5.1.3. .webhooks[].clientConfig
- 説明
- WebhookClientConfig には、Webhook との TLS 接続を確立するための情報が含まれています
- タイプ
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
|
|
|
| ServiceReference は、Service.legacy.k8s.io への参照を保持します |
|
|
この Webhook を呼び出す必要がある可能性のある apiserver を実行するすべてのホストでこの Webhook を実行するように細心の注意を払わない限り、 スキームは https である必要があります。URL は https://で始まる必要があります。 パスはオプションであり、存在する場合は、URL で許可される任意の文字列にすることができます。パスを使用して、クラスター識別子などの任意の文字列を Webhook に渡すことができます。 ユーザーまたは基本認証 (user:password @ など) を使用することは許可されていません。フラグメント ("#…") とクエリーパラメーター ("?…") も許可されていません。 |
5.1.4. .webhooks[].clientConfig.service
- 説明
- ServiceReference は、Service.legacy.k8s.io への参照を保持します
- タイプ
-
object
- 必須
-
namespace
-
name
-
プロパティー | 型 | 説明 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
指定されている場合、Webhook をホストしているサービスのポート。下位互換性のために、デフォルトは 443 です。 |
5.1.5. .webhooks[].rules
- 説明
- ルールは、Webhook が気にするリソース/サブリソースに対する操作を記述します。Webhook は、操作が いずれかの ルールに一致する場合、その操作を考慮します。ただし、ValidatingAdmissionWebhooks と MutatingAdmissionWebhooks が、プラグインを完全に無効にしないと回復できない状態にクラスターを置くことを防ぐために、ValidatingAdmissionWebhooks と MutatingAdmissionWebhook は、ValidatingWebhookConfiguration オブジェクトと MutatingWebhookConfiguration オブジェクトの認可要求で呼び出されることはありません。
- タイプ
-
array
5.1.6. .webhooks[].rules[]
- 説明
- RuleWithOperations は、操作とリソースのタプルです。すべてのタプル拡張が有効であることを確認することを推奨します。
- タイプ
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| APIGroups は、リソースが属する API グループです。'' はすべてのグループです。もしも '' が存在する場合、スライスの長さは 1 でなければなりません。必須。 |
|
| APIVersions は、リソースが属する API バージョンです。'' はすべてのバージョンです。もしも '' が存在する場合、スライスの長さは 1 でなければなりません。必須。 |
|
| 操作は、アドミッションフックが気にする操作です - これらすべての操作および追加される将来のアドミッション操作に対して、CREATE、UPDATE、DELETE、CONNECT、または*。'*' が存在する場合、スライスの長さは 1 でなければなりません。必須。 |
|
| リソースは、このルールが適用されるリソースのリストです。 例:Pod は Pod を意味します。pods/log は、Pod のログサブリソースを意味します。' ' はすべてのリソースを意味しますが、サブリソースは意味しません。'pods/ ' は、Pod のすべてのサブリソースを意味します。' /scale' は、すべてのスケールサブリソースを意味します。/*は、すべてのリソースとそのサブリソースを意味します。 ワイルドカードが存在する場合、検証ルールはリソースが互いに重複しないことを保証します。 囲んでいるオブジェクトによっては、サブリソースが許可されない場合があります。必須。 |
|
| scope は、このルールのスコープを指定します。有効な値は、Cluster、Namespaced、およびクラスターとは、クラスタースコープのリソースのみがこのルールに一致することを意味します。名前空間 API オブジェクトはクラスタースコープです。名前空間は、名前空間付きのリソースのみがこのルールに一致することを意味します。は、スコープの制限がないことを意味します。サブリソースは、親リソースのスコープと一致します。デフォルトは "*" です。 |