Configurer le délai avant expiration du webhook


Cette page explique comment configurer le délai avant expiration du webhook pour Config Connector. Vous pouvez configurer ces webhooks dans Config Connector 1.110 et versions ultérieures.

Configurer le délai avant expiration pour la validation des webhooks

Vous pouvez configurer les webhooks de validation suivants:

  • 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

Par exemple, vous pouvez configurer le délai avant expiration de la validation des webhooks deny-immutable-field-updates.cnrm.cloud.google.com et deny-unknown-fields.cnrm.cloud.google.com en créant et en appliquant l'exemple de fichier YAML suivant. Ces webhooks font partie de la configuration de la validation de la configuration du webhook validating-webhook.cnrm.cloud.google.com.

  1. Créez un fichier nommé configure-validating-webhook-timeout.yaml et copiez-y le code YAML suivant:

    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. Utilisez kubectl apply pour personnaliser le délai avant expiration du webhook à votre cluster:

    kubectl apply -f configure-validating-webhook-timeout.yaml
  3. Vérifiez que la configuration a réussi en exécutant la commande suivante:

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

    Il devrait afficher le champ status.healthy défini sur true.

  4. Vérifiez que le nouveau délai avant expiration personnalisé a été appliqué aux webhooks cibles:

    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"}'

    L'application de la personnalisation peut prendre quelques minutes.

Configurer le délai avant expiration pour la mutation des webhooks

Vous pouvez configurer les webhooks en mutation suivants:

  • 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

Par exemple, vous pouvez configurer le délai avant expiration de la mutation du webhook container-annotation-handler.cnrm.cloud.google.com en créant et en appliquant l'exemple de fichier YAML suivant. Le webhook fait partie de la configuration de la configuration du webhook en mutation mutating-webhook.cnrm.cloud.google.com.

  1. Créez un fichier nommé configure-mutating-webhook-timeout.yaml et copiez-y le code YAML suivant:

    apiVersion: customize.core.cnrm.cloud.google.com/v1beta1
    kind: MutatingWebhookConfigurationCustomization
    metadata:
      name: mutating-webhook
    spec:
      webhooks:
      - name: container-annotation-handler
        timeoutSeconds: 20
    
  2. Utilisez kubectl apply pour personnaliser le délai avant expiration du webhook à votre cluster:

    kubectl apply -f configure-mutating-webhook-timeout.yaml
  3. Vérifiez que la configuration a réussi en exécutant la commande suivante:

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

    Il devrait afficher le champ status.healthy défini sur true.

  4. Vérifiez que le nouveau délai avant expiration personnalisé a été appliqué aux webhooks cibles:

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

    L'application de la personnalisation peut prendre quelques minutes.