apiVersion: policies.kyverno.io/v1
kind: ValidatingPolicy
metadata: {name: check-labels}
spec:
validationActions: [Deny]
matchConstraints:
resourceRules:
- apiGroups: [""]
apiVersions: [v1]
operations: [CREATE, UPDATE]
resources: [pods]
validations:
- message: label 'environment' ist Pflicht
expression: >-
'environment' in
object.metadata.?labels.orValue([])
Enforcement & Modi
validationActions: Deny blockt,
Audit protokolliert nur.
spec.evaluation: admission und
background getrennt schaltbar;
mode: JSON prüft beliebige JSON-/YAML-Payloads
auch außerhalb des Clusters (CI-Pipeline).
matchConstraints folgt der API der K8s
ValidatingAdmissionPolicy.