Admission Controllers — intercept and modify requests to API server.
1# ValidatingWebhookConfiguration2apiVersion: admissionregistration.k8s.io/v13kind: ValidatingWebhookConfiguration4metadata:5 name: pod-validation6webhooks:7- name: validate-pod.example.com8 clientConfig:9 service:10 name: validation-service11 namespace: kube-system12 path: /validate13 caBundle: <base64-ca-cert>14 rules:15 - operations: ["CREATE", "UPDATE"]16 apiGroups: [""]17 apiVersions: ["v1"]18 resources: ["pods"]19 failurePolicy: Fail20 sideEffects: None21 admissionReviewVersions: ["v1"]22---23# MutatingWebhookConfiguration24apiVersion: admissionregistration.k8s.io/v125kind: MutatingWebhookConfiguration26metadata:27 name: pod-mutation28webhooks:29- name: mutate-pod.example.com30 clientConfig:31 service:32 name: mutation-service33 namespace: kube-system34 path: /mutate35 caBundle: <base64-ca-cert>36 rules:37 - operations: ["CREATE"]38 apiGroups: [""]39 apiVersions: ["v1"]40 resources: ["pods"]41 sideEffects: None
1# Commands2kubectl get validatingwebhookconfigurations3kubectl get mutatingwebhookconfigurations4kubectl describe validatingwebhookconfiguration pod-validation56# Disable webhook temporarily7kubectl delete validatingwebhookconfiguration pod-validation89# Check API server admission plugins10kubectl proxy &11curl http://localhost:8001/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations
Built-in Admission Plugins: