Webhook タイムアウトを構成する


このページでは、Config Connector の Webhook タイムアウトを構成する方法について説明します。これらの Webhook は、Config Connector バージョン 1.110 以降で構成できます。

検証用 Webhook のタイムアウトを構成する

次の検証用 Webhook を構成できます。

  • deny-immutable-field-updates.cnrm.cloud.google.com
  • deny-unknown-fields.cnrm.cloud.google.com
  • iam-validation.cnrm.cloud.google.com
  • resource-validation.cnrm.cloud.google.com
  • abandon-on-uninstall.cnrm.cloud.google.com

たとえば、次のサンプル YAML ファイルを作成して適用することで、検証用 Webhook deny-immutable-field-updates.cnrm.cloud.google.comdeny-unknown-fields.cnrm.cloud.google.com のタイムアウトを構成できます。これらの Webhook は、validating-webhook.cnrm.cloud.google.com 検証用 Webhook の構成の構成の一部です。

  1. configure-validating-webhook-timeout.yaml という名前のファイルを作成して、次の YAML ファイルをコピーします。

    apiVersion: customize.core.cnrm.cloud.google.com/v1beta1
    kind: ValidatingWebhookConfigurationCustomization
    metadata:
      name: validating-webhook
    spec:
      webhooks:
      - name: deny-immutable-field-updates
        timeoutSeconds: 12
      - name: deny-unknown-fields
        timeoutSeconds: 15
    
  2. kubectl apply を使用して、Webhook タイムアウトのカスタマイズをクラスタに適用します。

    kubectl apply -f configure-validating-webhook-timeout.yaml
  3. 次のコマンドを実行して、構成が正常であることを確認します。

    kubectl get validatingwebhookconfigurationcustomizations validating-webhook -o jsonpath='{.status.healthy}{"\n"}'

    true に設定された status.healthy フィールドが表示されます。

  4. 新しいカスタム タイムアウトがターゲット Webhook に適用されたことを確認します。

    kubectl get validatingwebhookconfigurations validating-webhook.cnrm.cloud.google.com -o jsonpath='{.webhooks[?(@.name=="deny-immutable-field-updates.cnrm.cloud.google.com")].timeoutSeconds}{"\n"}'
    kubectl get validatingwebhookconfigurations validating-webhook.cnrm.cloud.google.com -o jsonpath='{.webhooks[?(@.name=="deny-unknown-fields.cnrm.cloud.google.com")].timeoutSeconds}{"\n"}'

    カスタマイズの適用には数分かかることがあります。

変更用 Webhook のタイムアウトを構成する

次の変更用 Webhook を構成できます。

  • container-annotation-handler.cnrm.cloud.google.com
  • generic-defaulter.cnrm.cloud.google.com
  • iam-defaulter.cnrm.cloud.google.com
  • management-conflict-annotation-defaulter.cnrm.cloud.google.com

たとえば、次のサンプル YAML ファイルを作成して適用することで、変更用 Webhook container-annotation-handler.cnrm.cloud.google.com のタイムアウトを構成できます。Webhook は、mutating-webhook.cnrm.cloud.google.com 変更用 Webhook の構成の構成の一部です。

  1. configure-mutating-webhook-timeout.yaml という名前のファイルを作成して、次の YAML ファイルをコピーします。

    apiVersion: customize.core.cnrm.cloud.google.com/v1beta1
    kind: MutatingWebhookConfigurationCustomization
    metadata:
      name: mutating-webhook
    spec:
      webhooks:
      - name: container-annotation-handler
        timeoutSeconds: 20
    
  2. kubectl apply を使用して、Webhook タイムアウトのカスタマイズをクラスタに適用します。

    kubectl apply -f configure-mutating-webhook-timeout.yaml
  3. 次のコマンドを実行して、構成が正常であることを確認します。

    kubectl get mutatingwebhookconfigurationcustomizations mutating-webhook -o jsonpath='{.status.healthy}{"\n"}'

    true に設定された status.healthy フィールドが表示されます。

  4. 新しいカスタム タイムアウトがターゲット Webhook に適用されたことを確認します。

    kubectl get mutatingwebhookconfigurations mutating-webhook.cnrm.cloud.google.com -o jsonpath='{.webhooks[?(@.name=="container-annotation-handler.cnrm.cloud.google.com")].timeoutSeconds}{"\n"}'

    カスタマイズの適用には数分かかることがあります。