CEL-Typen: policies.kyverno.io/v1
Seit 1.17 stable (v1):
ValidatingPolicy, MutatingPolicy,
GeneratingPolicy, DeletingPolicy,
ImageValidatingPolicy, dazu
PolicyException. Jeder Policy-Typ auch namespaced
(NamespacedValidatingPolicy usw.). Ein CR pro
Zweck, CEL statt JMESPath/Pattern; seit 1.19 Feature-Parität
zu ClusterPolicy.
Storage-Version bleibt bis 1.19
v1beta1, mit 1.20 v1: danach
gespeicherte Objekte per kyverno migrate
umschreiben. v1alpha1 ist deprecated, Manifeste auf
v1 heben.
Legacy: ClusterPolicy / Policy
kyverno.io/v1: validate-, mutate-, generate- und
verifyImages-Regeln in einem CR. ClusterPolicy
cluster-weit, Policy namespaced.
Deprecated: abgekündigt mit 1.17,
offiziell seit 1.19 (Admission-Warnung beim Anlegen/Ändern).
1.19 ist das letzte Release mit vollem Support,
Removal mit 1.20 (geschätzt Nov 2026),
zusammen mit (Cluster)CleanupPolicy und der
Legacy-PolicyException kyverno.io/v2. Bestand nach
Migrations-Guide umziehen.
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata: {name: require-ns-purpose-label}
spec:
rules:
- name: require-ns-purpose-label
match:
any:
- resources: {kinds: [Namespace]}
validate:
failureAction: Enforce # oder Audit
message: "Label `purpose` ist Pflicht."
pattern:
metadata:
labels:
purpose: production