Admission Controllers — intercept and modify requests to K8s API.
MutatingWebhook (Injector Istio):
1apiVersion: admissionregistration.k8s.io/v12kind: MutatingWebhookConfiguration3metadata:4 name: sidecar-injector5webhooks:6 - name: sidecar.istio.io7 clientConfig:8 service:9 name: istiod10 namespace: istio-system11 path: "/inject"12 rules:13 - operations: ["CREATE"]14 apiGroups: [""]15 resources: ["pods"]16 namespaceSelector:17 matchLabels:18 istio-injection: enabled
ValidatingWebhook (Require Labels):
1apiVersion: admissionregistration.k8s.io/v12kind: ValidatingWebhookConfiguration3metadata:4 name: require-labels5webhooks:6 - name: require-team-label7 clientConfig:8 service:9 name: label-validator10 path: "/validate"11 rules:12 - operations: ["CREATE", "UPDATE"]13 apiGroups: ["apps"]14 resources: ["deployments"]15 failurePolicy: Fail
Built-in: NamespaceLifecycle, LimitRanger, ResourceQuota, PodSecurity.
Alternatives: OPA Gatekeeper, Kyverno.