From b795f5aa8f02eba45b57faf12675098445732003 Mon Sep 17 00:00:00 2001 From: Scooby Husky Date: Tue, 10 Mar 2026 22:43:22 -0500 Subject: [PATCH] Add Kyverno PolicyExceptions for third-party charts ArgoCD, NetBird operator, and Scylla Manager are upstream Helm charts that don't set resource limits, probes, drop-all capabilities, or disable SA token automount. These audit-mode policy violations inflated the cumulative Prometheus failure counter to ~3800. - argocd: exempt from require-resource-limits, require-probes - netbird-operator: exempt from require-resource-limits, disallow-automount-sa-token, require-probes - scylla-manager: exempt from require-drop-all-capabilities, disallow-automount-sa-token Co-Authored-By: Claude Opus 4.6 --- .../kyverno/policies/argocd-exception.yaml | 27 +++++++++++++++ .../policies/netbird-operator-exception.yaml | 33 +++++++++++++++++++ .../kyverno/policies/scylla-exception.yaml | 27 +++++++++++++++ 3 files changed, 87 insertions(+) create mode 100644 infrastructure/kyverno/policies/argocd-exception.yaml create mode 100644 infrastructure/kyverno/policies/netbird-operator-exception.yaml create mode 100644 infrastructure/kyverno/policies/scylla-exception.yaml diff --git a/infrastructure/kyverno/policies/argocd-exception.yaml b/infrastructure/kyverno/policies/argocd-exception.yaml new file mode 100644 index 0000000..ad16dc8 --- /dev/null +++ b/infrastructure/kyverno/policies/argocd-exception.yaml @@ -0,0 +1,27 @@ +# ArgoCD upstream Helm chart does not set resource limits or probes on +# several components. These are audit-mode policies and ArgoCD is a +# third-party chart we don't control. +apiVersion: kyverno.io/v2 +kind: PolicyException +metadata: + name: argocd-exemption + namespace: kyverno +spec: + exceptions: + - policyName: require-resource-limits + ruleNames: + - require-limits + - autogen-require-limits + - policyName: require-probes + ruleNames: + - require-probes + match: + any: + - resources: + kinds: + - Deployment + - StatefulSet + - ReplicaSet + - Pod + namespaces: + - argocd diff --git a/infrastructure/kyverno/policies/netbird-operator-exception.yaml b/infrastructure/kyverno/policies/netbird-operator-exception.yaml new file mode 100644 index 0000000..1d89859 --- /dev/null +++ b/infrastructure/kyverno/policies/netbird-operator-exception.yaml @@ -0,0 +1,33 @@ +# NetBird operator upstream chart does not set resource limits and +# automounts the SA token for Kubernetes API access. +apiVersion: kyverno.io/v2 +kind: PolicyException +metadata: + name: netbird-operator-exemption + namespace: kyverno +spec: + exceptions: + - policyName: require-resource-limits + ruleNames: + - require-limits + - autogen-require-limits + - policyName: disallow-automount-sa-token + ruleNames: + - validate-automount + - autogen-validate-automount + - policyName: require-probes + ruleNames: + - require-probes + match: + any: + - resources: + kinds: + - Deployment + - ReplicaSet + - Pod + namespaces: + - netbird-operator + - netbird + names: + - netbird-operator* + - netbird-cluster-router* diff --git a/infrastructure/kyverno/policies/scylla-exception.yaml b/infrastructure/kyverno/policies/scylla-exception.yaml new file mode 100644 index 0000000..7581d90 --- /dev/null +++ b/infrastructure/kyverno/policies/scylla-exception.yaml @@ -0,0 +1,27 @@ +# Scylla Manager and ScyllaDB upstream charts do not drop all +# capabilities and automount the SA token for cluster management. +apiVersion: kyverno.io/v2 +kind: PolicyException +metadata: + name: scylla-exemption + namespace: kyverno +spec: + exceptions: + - policyName: require-drop-all-capabilities + ruleNames: + - require-drop-all + - autogen-require-drop-all + - policyName: disallow-automount-sa-token + ruleNames: + - validate-automount + - autogen-validate-automount + match: + any: + - resources: + kinds: + - Deployment + - StatefulSet + - ReplicaSet + - Pod + namespaces: + - scylla-manager