apiVersion: policies.kyverno.io/v1alpha1 kind: ValidatingPolicy metadata: name: check-deployment-labels annotations: policies.kyverno.io/title: Check Deployment Labels policies.kyverno.io/category: Other policies.kyverno.io/severity: medium spec: validationActions: - Audit matchConstraints: resourceRules: - apiGroups: [apps] apiVersions: [v1] operations: [CREATE, UPDATE] resources: [deployments] variables: - name: environment expression: >- has(object.metadata.labels) && 'env' in object.metadata.labels && object.metadata.labels['env'] == 'prod' validations: - expression: >- variables.environment == true messageExpression: >- 'Deployment labels must be env=prod' + (has(object.metadata.labels) && 'env' in object.metadata.labels ? ' but found env=' + string(object.metadata.labels['env']) : ' but no env label is present')