apiVersion: kyverno.io/v1 kind: ClusterPolicy metadata: name: require-resource-limits annotations: policies.kyverno.io/title: Require Resource Limits policies.kyverno.io/category: Zero Trust policies.kyverno.io/severity: medium spec: validationFailureAction: Audit background: true rules: - name: require-limits match: any: - resources: kinds: - Pod exclude: any: - resources: namespaces: - kube-system - kube-node-lease - kyverno - argocd - authentik - cert-manager - cnpg-system - envoy-gateway-system - external-secrets - istio-system - kiali-operator - mariadb-system - prometheus - redis-operator - reloader - rook-ceph - scylla-operator - vault - gitlab - netbird - grafana - crowdsec - external-dns - nextcloud - mqtt - home-assistant - guacamole - teslamate - unpoller - frigate - checkov - scylla-manager validate: message: "All containers must have CPU and memory limits defined." pattern: spec: containers: - resources: limits: cpu: "?*" memory: "?*"