Rechercher

9.4. Types de plugins d'admission aux webhooks

download PDF

Les administrateurs de clusters peuvent faire appel à des serveurs webhook par l'intermédiaire du plugin d'admission de mutation ou du plugin d'admission de validation dans la chaîne d'admission du serveur API.

9.4.1. Mutation du plugin d'admission

Le plugin d'admission à la mutation est invoqué pendant la phase de mutation du processus d'admission, ce qui permet de modifier le contenu de la ressource avant qu'elle ne soit conservée. Un exemple de webhook qui peut être appelé par le plugin d'admission à la mutation est la fonctionnalité Pod Node Selector, qui utilise une annotation sur un espace de noms pour trouver un sélecteur d'étiquette et l'ajouter à la spécification du pod.

Exemple de configuration du plugin d'admission à la mutation

apiVersion: admissionregistration.k8s.io/v1beta1
kind: MutatingWebhookConfiguration 1
metadata:
  name: <webhook_name> 2
webhooks:
- name: <webhook_name> 3
  clientConfig: 4
    service:
      namespace: default 5
      name: kubernetes 6
      path: <webhook_url> 7
    caBundle: <ca_signing_certificate> 8
  rules: 9
  - operations: 10
    - <operation>
    apiGroups:
    - ""
    apiVersions:
    - "*"
    resources:
    - <resource>
  failurePolicy: <policy> 11
  sideEffects: None

1
Spécifie une configuration de plugin d'admission à la mutation.
2
Le nom de l'objet MutatingWebhookConfiguration. Remplacer <webhook_name> par la valeur appropriée.
3
Le nom du webhook à appeler. Remplacez <webhook_name> par la valeur appropriée.
4
Informations sur la manière de se connecter au serveur webhook, de lui faire confiance et de lui envoyer des données.
5
L'espace de noms dans lequel le service frontal est créé.
6
Le nom du service frontal.
7
URL du webhook utilisé pour les demandes d'admission. Remplacez <webhook_url> par la valeur appropriée.
8
Un certificat d'autorité de certification codé en PEM qui signe le certificat de serveur utilisé par le serveur webhook. Remplacez <ca_signing_certificate> par le certificat approprié au format base64.
9
Règles qui définissent quand le serveur API doit utiliser ce plugin d'admission au webhook.
10
Une ou plusieurs opérations qui déclenchent l'appel du serveur API à ce plugin d'admission au webhook. Les valeurs possibles sont create, update, delete ou connect. Remplacez <operation> et <resource> par les valeurs appropriées.
11
Indique comment la politique doit se dérouler si le serveur webhook n'est pas disponible. Remplacez <policy> par Ignore (pour accepter inconditionnellement la demande en cas d'échec) ou Fail (pour refuser la demande qui a échoué). L'utilisation de Ignore peut entraîner un comportement imprévisible pour tous les clients.
Important

Dans OpenShift Container Platform 4.12, les objets créés par des utilisateurs ou des boucles de contrôle via un plugin d'admission mutant peuvent renvoyer des résultats inattendus, notamment si les valeurs définies dans une requête initiale sont écrasées, ce qui n'est pas recommandé.

9.4.2. Validation du plugin d'admission

Un plugin d'admission validant est invoqué pendant la phase de validation du processus d'admission. Cette phase permet d'appliquer des invariants à des ressources API particulières afin de s'assurer que la ressource ne sera pas modifiée à nouveau. Le Pod Node Selector est également un exemple de webhook appelé par le plugin de validation d'admission, pour s'assurer que tous les champs nodeSelector sont contraints par les restrictions du sélecteur de nœuds sur l'espace de noms.

Exemple de validation de la configuration du plugin d'admission

apiVersion: admissionregistration.k8s.io/v1beta1
kind: ValidatingWebhookConfiguration 1
metadata:
  name: <webhook_name> 2
webhooks:
- name: <webhook_name> 3
  clientConfig: 4
    service:
      namespace: default  5
      name: kubernetes 6
      path: <webhook_url> 7
    caBundle: <ca_signing_certificate> 8
  rules: 9
  - operations: 10
    - <operation>
    apiGroups:
    - ""
    apiVersions:
    - "*"
    resources:
    - <resource>
  failurePolicy: <policy> 11
  sideEffects: Unknown

1
Spécifie la configuration d'un plugin de validation des admissions.
2
Le nom de l'objet ValidatingWebhookConfiguration. Remplacer <webhook_name> par la valeur appropriée.
3
Le nom du webhook à appeler. Remplacez <webhook_name> par la valeur appropriée.
4
Informations sur la manière de se connecter au serveur webhook, de lui faire confiance et de lui envoyer des données.
5
L'espace de noms dans lequel le service frontal est créé.
6
Le nom du service frontal.
7
URL du webhook utilisé pour les demandes d'admission. Remplacez <webhook_url> par la valeur appropriée.
8
Un certificat d'autorité de certification codé en PEM qui signe le certificat de serveur utilisé par le serveur webhook. Remplacez <ca_signing_certificate> par le certificat approprié au format base64.
9
Règles qui définissent quand le serveur API doit utiliser ce plugin d'admission au webhook.
10
Une ou plusieurs opérations qui déclenchent l'appel du serveur API à ce plugin d'admission au webhook. Les valeurs possibles sont create, update, delete ou connect. Remplacez <operation> et <resource> par les valeurs appropriées.
11
Indique comment la politique doit se dérouler si le serveur webhook n'est pas disponible. Remplacez <policy> par Ignore (pour accepter inconditionnellement la demande en cas d'échec) ou Fail (pour refuser la demande qui a échoué). L'utilisation de Ignore peut entraîner un comportement imprévisible pour tous les clients.
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.