2.3. Operator Lifecycle Manager での受付 Webhook の管理
検証用および変更用の受付 Webhook により、リソースがオブジェクトストアに保存され、Operator コントローラーによって処理される前に、Operator の作成者はリソースのインターセプト、変更、許可、および拒否を実行することができます。Operator Lifecycle Manager (OLM) は、Operator と共に提供される際のこれらの Webhook のライフサイクルを管理できます。
2.3.1. CSV での Webhook の定義
ClusterServiceVersion
(CSV) リソースには、Operator に同梱される検証用および変更用の Webhook を定義するための webhookdefinitions
セクションが含まれます。以下は例になります。
検証用の受付 Webhook を含む CSV
apiVersion: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion metadata: annotations: description: |- An example CSV that contains a webhook name: example-webhook.v1.0.0 namespace: placeholder spec: webhookdefinitions: - generateName: example.webhook.com type: ValidatingAdmissionWebhook deploymentName: "example-webhook-deployment" containerPort: 443 sideEffects: "None" failurePolicy: "Ignore" admissionReviewVersions: - "v1" - "v1beta1" rules: - operations: - "CREATE" apiGroups: - "" apiVersions: - "v1" resources: - "configmaps" objectSelector: foo: bar webhookPath: "/validate" ...
Operator Lifecycle Manager (OLM) では、以下を定義する必要があります。
-
type
フィールドはValidatingAdmissionWebhook
またはMutatingAdmissionWebhook
のいずれかに設定する必要があります。そうでないと、CSV は失敗フェーズに置かれます。 -
CSV には、
webhookdefinition
のdeploymentName
フィールドに指定される値に等しい名前の Deployment が含まれる必要があります。
Webhook が作成されると、OLM は、Operator がデプロイされる Operator グループに一致する namespace でのみ Webhook が機能するようにします。