Skip to content

feat(kubernetes): install kyverno #462

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 4, 2024
Merged

feat(kubernetes): install kyverno #462

merged 1 commit into from
Mar 4, 2024

Conversation

martinohmann
Copy link
Owner

No description provided.

@github-actions github-actions bot added the area/kubernetes Changes made in the kubernetes directory label Mar 4, 2024
Copy link

github-actions bot commented Mar 4, 2024

--- HelmRelease: kyverno-system/kyverno PodDisruptionBudget: kyverno-system/kyverno-admission-controller

+++ HelmRelease: kyverno-system/kyverno PodDisruptionBudget: kyverno-system/kyverno-admission-controller

@@ -0,0 +1,19 @@

+---
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+  name: kyverno-admission-controller
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: admission-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+spec:
+  minAvailable: 1
+  selector:
+    matchLabels:
+      app.kubernetes.io/component: admission-controller
+      app.kubernetes.io/instance: kyverno
+      app.kubernetes.io/part-of: kyverno
+
--- HelmRelease: kyverno-system/kyverno ServiceAccount: kyverno-system/kyverno-admission-controller

+++ HelmRelease: kyverno-system/kyverno ServiceAccount: kyverno-system/kyverno-admission-controller

@@ -0,0 +1,12 @@

+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: kyverno-admission-controller
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: admission-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+
--- HelmRelease: kyverno-system/kyverno ServiceAccount: kyverno-system/kyverno-background-controller

+++ HelmRelease: kyverno-system/kyverno ServiceAccount: kyverno-system/kyverno-background-controller

@@ -0,0 +1,12 @@

+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: kyverno-background-controller
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: background-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+
--- HelmRelease: kyverno-system/kyverno ServiceAccount: kyverno-system/kyverno-cleanup-controller

+++ HelmRelease: kyverno-system/kyverno ServiceAccount: kyverno-system/kyverno-cleanup-controller

@@ -0,0 +1,12 @@

+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: kyverno-cleanup-controller
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: cleanup-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+
--- HelmRelease: kyverno-system/kyverno ServiceAccount: kyverno-system/kyverno-cleanup-jobs

+++ HelmRelease: kyverno-system/kyverno ServiceAccount: kyverno-system/kyverno-cleanup-jobs

@@ -0,0 +1,11 @@

+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: kyverno-cleanup-jobs
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+
--- HelmRelease: kyverno-system/kyverno ServiceAccount: kyverno-system/kyverno-reports-controller

+++ HelmRelease: kyverno-system/kyverno ServiceAccount: kyverno-system/kyverno-reports-controller

@@ -0,0 +1,12 @@

+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: kyverno-reports-controller
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: reports-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+
--- HelmRelease: kyverno-system/kyverno ConfigMap: kyverno-system/kyverno-grafana-grafana

+++ HelmRelease: kyverno-system/kyverno ConfigMap: kyverno-system/kyverno-grafana-grafana

@@ -0,0 +1,2889 @@

+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: kyverno-grafana-grafana
+  namespace: kyverno-system
+  annotations:
+    grafana_folder: ''
+  labels:
+    grafana_dashboard: '1'
+data:
+  dashboard.json: |
+    {
+        "__inputs": [
+            {
+                "name": "DS_PROMETHEUS_KYVERNO",
+                "label": "Prometheus Data Source exposing Kyverno's metrics",
+                "description": "Prometheus Data Source exposing Kyverno's metrics",
+                "type": "datasource"
+            }
+        ],
+        "annotations": {
+            "list": [
+                {
+                    "builtIn": 1,
+                    "datasource": "-- Grafana --",
+                    "enable": true,
+                    "hide": true,
+                    "iconColor": "rgba(0, 211, 255, 1)",
+                    "name": "Annotations & Alerts",
+                    "target": {
+                        "limit": 100,
+                        "matchAny": false,
+                        "tags": [],
+                        "type": "dashboard"
+                    },
+                    "type": "dashboard"
+                }
+            ]
+        },
+        "description": "",
+        "editable": true,
+        "gnetId": null,
+        "graphTooltip": 0,
+        "id": 2,
+        "iteration": 1628375170149,
+        "links": [],
+        "panels": [
+            {
+                "datasource": "${DS_PROMETHEUS_KYVERNO}",
+                "gridPos": {
+                    "h": 6,
+                    "w": 24,
+                    "x": 0,
+                    "y": 0
+                },
+                "id": 42,
+                "options": {
+                    "content": "# Kyverno\nA Kubernetes-native policy management engine\n\n#### About this dashboard\n\nThis dashboard represents generic insights that can be extracted from a cluster with Kyverno running.\n\n#### For more details around the metrics\n\nCheckout the [official docs of Kyverno metrics](https://kyverno.io/docs/monitoring/)",
+                    "mode": "markdown"
+                },
+                "pluginVersion": "8.1.0",
+                "timeFrom": null,
+                "timeShift": null,
+                "transparent": true,
+                "type": "text"
+            },
+            {
+                "collapsed": false,
+                "datasource": "${DS_PROMETHEUS_KYVERNO}",
+                "fieldConfig": {
+                    "defaults": {},
+                    "overrides": []
+                },
+                "gridPos": {
+                    "h": 1,
+                    "w": 24,
+                    "x": 0,
+                    "y": 6
+                },
+                "id": 12,
+                "panels": [],
+                "title": "Latest Status",
+                "type": "row"
+            },
+            {
+                "datasource": "${DS_PROMETHEUS_KYVERNO}",
+                "fieldConfig": {
+                    "defaults": {
+                        "color": {
+                            "mode": "thresholds"
+                        },
+                        "mappings": [],
+                        "max": 100,
+                        "min": 0,
+                        "thresholds": {
+                            "mode": "absolute",
+                            "steps": [
+                                {
+                                  "color": "text",
+                                  "value": null
+                                },
+                                {
+                                  "value": 0,
+                                  "color": "green"
+                                },
+                                {
+                                  "color": "#eab839",
+                                  "value": 25
+                                },
+                                {
+                                  "color": "red",
+                                  "value": 50
+                                },
+                                {
+                                  "color": "red",
+                                  "value": 100
+                                }
+                            ]
+                        },
+                        "unit": "percent"
+                    },
+                    "overrides": []
+                },
+                "gridPos": {
+                    "h": 6,
+                    "w": 6,
+                    "x": 0,
+                    "y": 7
+                },
+                "id": 29,
+                "options": {
+                    "reduceOptions": {
+                        "calcs": [
+                            "lastNotNull"
+                        ],
+                        "fields": "",
+                        "values": false
+                    },
+                    "showThresholdLabels": false,
+                    "showThresholdMarkers": true,
+                    "text": {}
+                },
+                "pluginVersion": "8.1.0",
+                "targets": [
+                    {
+                        "exemplar": true,
+                        "expr": "sum(increase(kyverno_policy_results_total{rule_result=\"fail\", cluster=~\"$cluster\"}[24h]) or vector(0))*100/sum(increase(kyverno_policy_results_total{cluster=~\"$cluster\"}[24h]))",
+                        "interval": "",
+                        "legendFormat": "",
+                        "refId": "A"
+                    }
+                ],
+                "title": "Rule Execution Failure Rate (Last 24 Hours)",
+                "transparent": true,
+                "type": "gauge"
+            },
+            {
+                "datasource": "${DS_PROMETHEUS_KYVERNO}",
+                "fieldConfig": {
+                    "defaults": {
+                        "color": {
+                            "mode": "thresholds"
+                        },
+                        "mappings": [],
+                        "noValue": "0",
+                        "thresholds": {
+                            "mode": "absolute",
+                            "steps": [
+                                {
+                                    "color": "green",
+                                    "value": null
+                                }
+                            ]
+                        }
+                    },
+                    "overrides": []
+                },
+                "gridPos": {
+                    "h": 5,
+                    "w": 4,
+                    "x": 8,
+                    "y": 7
+                },
+                "id": 2,
+                "options": {
+                    "colorMode": "background",
+                    "graphMode": "none",
+                    "justifyMode": "auto",
+                    "orientation": "auto",
+                    "reduceOptions": {
+                        "calcs": [
+                            "lastNotNull"
+                        ],
+                        "fields": "",
+                        "values": false
+                    },
+                    "text": {},
+                    "textMode": "auto"
+                },
+                "pluginVersion": "8.1.0",
+                "targets": [
+                    {
+                        "exemplar": true,
+                        "expr": "count(count(kyverno_policy_rule_info_total{policy_type=\"cluster\",cluster=~\"$cluster\"}==1) by (policy_name))",
+                        "interval": "",
+                        "legendFormat": "",
+                        "refId": "A"
+                    }
+                ],
+                "timeFrom": null,
+                "timeShift": null,
+                "title": "Cluster Policies",
+                "type": "stat"
+            },
+            {
+                "datasource": "${DS_PROMETHEUS_KYVERNO}",
+                "fieldConfig": {
+                    "defaults": {
+                        "color": {
+                            "mode": "thresholds"
+                        },
+                        "mappings": [],
+                        "noValue": "0",
+                        "thresholds": {
+                            "mode": "absolute",
+                            "steps": [
+                                {
+                                    "color": "green",
+                                    "value": null
+                                }
+                            ]
+                        }
+                    },
+                    "overrides": []
+                },
+                "gridPos": {
+                    "h": 5,
+                    "w": 4,
+                    "x": 12,
+                    "y": 7
+                },
+                "id": 3,
+                "options": {
+                    "colorMode": "background",
+                    "graphMode": "none",
+                    "justifyMode": "auto",
+                    "orientation": "auto",
+                    "reduceOptions": {
+                        "calcs": [
+                            "lastNotNull"
+                        ],
+                        "fields": "",
+                        "values": false
+                    },
+                    "text": {},
+                    "textMode": "auto"
+                },
+                "pluginVersion": "8.1.0",
+                "targets": [
+                    {
+                        "exemplar": true,
+                        "expr": "count(count(kyverno_policy_rule_info_total{policy_type=\"namespaced\", cluster=~\"$cluster\"}==1) by (policy_name))",
+                        "interval": "",
+                        "legendFormat": "",
+                        "refId": "A"
+                    }
+                ],
+                "timeFrom": null,
+                "timeShift": null,
+                "title": "Policies",
+                "type": "stat"
+            },
+            {
+                "datasource": "${DS_PROMETHEUS_KYVERNO}",
[Diff truncated by flux-local]
--- HelmRelease: kyverno-system/kyverno ConfigMap: kyverno-system/kyverno

+++ HelmRelease: kyverno-system/kyverno ConfigMap: kyverno-system/kyverno

@@ -0,0 +1,67 @@

+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: kyverno
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: config
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+data:
+  enableDefaultRegistryMutation: 'true'
+  defaultRegistry: docker.io
+  generateSuccessEvents: 'false'
+  excludeGroups: system:nodes
+  resourceFilters: '[*/*,kyverno-system,*] [Event,*,*] [*/*,kube-system,*] [*/*,kube-public,*]
+    [*/*,kube-node-lease,*] [Node,*,*] [Node/*,*,*] [APIService,*,*] [APIService/*,*,*]
+    [TokenReview,*,*] [SubjectAccessReview,*,*] [SelfSubjectAccessReview,*,*] [Binding,*,*]
+    [Pod/binding,*,*] [ReplicaSet,*,*] [ReplicaSet/*,*,*] [AdmissionReport,*,*] [AdmissionReport/*,*,*]
+    [ClusterAdmissionReport,*,*] [ClusterAdmissionReport/*,*,*] [BackgroundScanReport,*,*]
+    [BackgroundScanReport/*,*,*] [ClusterBackgroundScanReport,*,*] [ClusterBackgroundScanReport/*,*,*]
+    [ClusterRole,*,kyverno:admission-controller] [ClusterRole,*,kyverno:admission-controller:core]
+    [ClusterRole,*,kyverno:admission-controller:additional] [ClusterRole,*,kyverno:background-controller]
+    [ClusterRole,*,kyverno:background-controller:core] [ClusterRole,*,kyverno:background-controller:additional]
+    [ClusterRole,*,kyverno:cleanup-controller] [ClusterRole,*,kyverno:cleanup-controller:core]
+    [ClusterRole,*,kyverno:cleanup-controller:additional] [ClusterRole,*,kyverno:reports-controller]
+    [ClusterRole,*,kyverno:reports-controller:core] [ClusterRole,*,kyverno:reports-controller:additional]
+    [ClusterRoleBinding,*,kyverno:admission-controller] [ClusterRoleBinding,*,kyverno:background-controller]
+    [ClusterRoleBinding,*,kyverno:cleanup-controller] [ClusterRoleBinding,*,kyverno:reports-controller]
+    [ServiceAccount,kyverno-system,kyverno-admission-controller] [ServiceAccount/*,kyverno-system,kyverno-admission-controller]
+    [ServiceAccount,kyverno-system,kyverno-background-controller] [ServiceAccount/*,kyverno-system,kyverno-background-controller]
+    [ServiceAccount,kyverno-system,kyverno-cleanup-controller] [ServiceAccount/*,kyverno-system,kyverno-cleanup-controller]
+    [ServiceAccount,kyverno-system,kyverno-reports-controller] [ServiceAccount/*,kyverno-system,kyverno-reports-controller]
+    [Role,kyverno-system,kyverno:admission-controller] [Role,kyverno-system,kyverno:background-controller]
+    [Role,kyverno-system,kyverno:cleanup-controller] [Role,kyverno-system,kyverno:reports-controller]
+    [RoleBinding,kyverno-system,kyverno:admission-controller] [RoleBinding,kyverno-system,kyverno:background-controller]
+    [RoleBinding,kyverno-system,kyverno:cleanup-controller] [RoleBinding,kyverno-system,kyverno:reports-controller]
+    [ConfigMap,kyverno-system,kyverno] [ConfigMap,kyverno-system,kyverno-metrics]
+    [Deployment,kyverno-system,kyverno-admission-controller] [Deployment/*,kyverno-system,kyverno-admission-controller]
+    [Deployment,kyverno-system,kyverno-background-controller] [Deployment/*,kyverno-system,kyverno-background-controller]
+    [Deployment,kyverno-system,kyverno-cleanup-controller] [Deployment/*,kyverno-system,kyverno-cleanup-controller]
+    [Deployment,kyverno-system,kyverno-reports-controller] [Deployment/*,kyverno-system,kyverno-reports-controller]
+    [Pod,kyverno-system,kyverno-admission-controller-*] [Pod/*,kyverno-system,kyverno-admission-controller-*]
+    [Pod,kyverno-system,kyverno-background-controller-*] [Pod/*,kyverno-system,kyverno-background-controller-*]
+    [Pod,kyverno-system,kyverno-cleanup-controller-*] [Pod/*,kyverno-system,kyverno-cleanup-controller-*]
+    [Pod,kyverno-system,kyverno-reports-controller-*] [Pod/*,kyverno-system,kyverno-reports-controller-*]
+    [Job,kyverno-system,kyverno-hook-pre-delete] [Job/*,kyverno-system,kyverno-hook-pre-delete]
+    [NetworkPolicy,kyverno-system,kyverno-admission-controller] [NetworkPolicy/*,kyverno-system,kyverno-admission-controller]
+    [NetworkPolicy,kyverno-system,kyverno-background-controller] [NetworkPolicy/*,kyverno-system,kyverno-background-controller]
+    [NetworkPolicy,kyverno-system,kyverno-cleanup-controller] [NetworkPolicy/*,kyverno-system,kyverno-cleanup-controller]
+    [NetworkPolicy,kyverno-system,kyverno-reports-controller] [NetworkPolicy/*,kyverno-system,kyverno-reports-controller]
+    [PodDisruptionBudget,kyverno-system,kyverno-admission-controller] [PodDisruptionBudget/*,kyverno-system,kyverno-admission-controller]
+    [PodDisruptionBudget,kyverno-system,kyverno-background-controller] [PodDisruptionBudget/*,kyverno-system,kyverno-background-controller]
+    [PodDisruptionBudget,kyverno-system,kyverno-cleanup-controller] [PodDisruptionBudget/*,kyverno-system,kyverno-cleanup-controller]
+    [PodDisruptionBudget,kyverno-system,kyverno-reports-controller] [PodDisruptionBudget/*,kyverno-system,kyverno-reports-controller]
+    [Service,kyverno-system,kyverno-svc] [Service/*,kyverno-system,kyverno-svc] [Service,kyverno-system,kyverno-svc-metrics]
+    [Service/*,kyverno-system,kyverno-svc-metrics] [Service,kyverno-system,kyverno-background-controller-metrics]
+    [Service/*,kyverno-system,kyverno-background-controller-metrics] [Service,kyverno-system,kyverno-cleanup-controller]
+    [Service/*,kyverno-system,kyverno-cleanup-controller] [Service,kyverno-system,kyverno-cleanup-controller-metrics]
+    [Service/*,kyverno-system,kyverno-cleanup-controller-metrics] [Service,kyverno-system,kyverno-reports-controller-metrics]
+    [Service/*,kyverno-system,kyverno-reports-controller-metrics] [ServiceMonitor,kyverno-system,kyverno-admission-controller]
+    [ServiceMonitor,kyverno-system,kyverno-background-controller] [ServiceMonitor,kyverno-system,kyverno-cleanup-controller]
+    [ServiceMonitor,kyverno-system,kyverno-reports-controller] [Secret,kyverno-system,kyverno-svc.kyverno-system.svc.*]
+    [Secret,kyverno-system,kyverno-cleanup-controller.kyverno-system.svc.*]'
+  webhooks: '[{"namespaceSelector": {"matchExpressions": [{"key":"kubernetes.io/metadata.name","operator":"NotIn","values":["kyverno-system"]}]}}]'
+
--- HelmRelease: kyverno-system/kyverno ConfigMap: kyverno-system/kyverno-metrics

+++ HelmRelease: kyverno-system/kyverno ConfigMap: kyverno-system/kyverno-metrics

@@ -0,0 +1,16 @@

+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: kyverno-metrics
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: config
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+data:
+  namespaces: '{"exclude":[],"include":[]}'
+  bucketBoundaries: 0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10, 15, 20,
+    25, 30
+
--- HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:admission-controller

+++ HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:admission-controller

@@ -0,0 +1,17 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: kyverno:admission-controller
+  labels:
+    app.kubernetes.io/component: admission-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+aggregationRule:
+  clusterRoleSelectors:
+  - matchLabels:
+      app.kubernetes.io/component: admission-controller
+      app.kubernetes.io/instance: kyverno
+      app.kubernetes.io/part-of: kyverno
+
--- HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:admission-controller:core

+++ HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:admission-controller:core

@@ -0,0 +1,97 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: kyverno:admission-controller:core
+  labels:
+    app.kubernetes.io/component: admission-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+rules:
+- apiGroups:
+  - admissionregistration.k8s.io
+  resources:
+  - mutatingwebhookconfigurations
+  - validatingwebhookconfigurations
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - patch
+  - update
+  - watch
+  - deletecollection
+- apiGroups:
+  - rbac.authorization.k8s.io
+  resources:
+  - roles
+  - clusterroles
+  - rolebindings
+  - clusterrolebindings
+  verbs:
+  - list
+  - watch
+- apiGroups:
+  - kyverno.io
+  resources:
+  - policies
+  - policies/status
+  - clusterpolicies
+  - clusterpolicies/status
+  - updaterequests
+  - updaterequests/status
+  - admissionreports
+  - clusteradmissionreports
+  - backgroundscanreports
+  - clusterbackgroundscanreports
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - patch
+  - update
+  - watch
+  - deletecollection
+- apiGroups:
+  - wgpolicyk8s.io
+  resources:
+  - policyreports
+  - policyreports/status
+  - clusterpolicyreports
+  - clusterpolicyreports/status
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - patch
+  - update
+  - watch
+  - deletecollection
+- apiGroups:
+  - ''
+  - events.k8s.io
+  resources:
+  - events
+  verbs:
+  - create
+  - update
+  - patch
+- apiGroups:
+  - authorization.k8s.io
+  resources:
+  - subjectaccessreviews
+  verbs:
+  - create
+- apiGroups:
+  - '*'
+  resources:
+  - '*'
+  verbs:
+  - get
+  - list
+  - watch
+
--- HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:admission-controller:additional

+++ HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:admission-controller:additional

@@ -0,0 +1,20 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: kyverno:admission-controller:additional
+  labels:
+    app.kubernetes.io/component: admission-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+rules:
+- apiGroups:
+  - ''
+  resources:
+  - pods
+  verbs:
+  - create
+  - update
+  - delete
+
--- HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:background-controller

+++ HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:background-controller

@@ -0,0 +1,17 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: kyverno:background-controller
+  labels:
+    app.kubernetes.io/component: background-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+aggregationRule:
+  clusterRoleSelectors:
+  - matchLabels:
+      app.kubernetes.io/component: background-controller
+      app.kubernetes.io/instance: kyverno
+      app.kubernetes.io/part-of: kyverno
+
--- HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:background-controller:core

+++ HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:background-controller:core

@@ -0,0 +1,91 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: kyverno:background-controller:core
+  labels:
+    app.kubernetes.io/component: background-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+rules:
+- apiGroups:
+  - kyverno.io
+  resources:
+  - policies
+  - clusterpolicies
+  - policyexceptions
+  - updaterequests
+  - updaterequests/status
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - patch
+  - update
+  - watch
+  - deletecollection
+- apiGroups:
+  - ''
+  resources:
+  - namespaces
+  - configmaps
+  verbs:
+  - get
+  - list
+  - watch
+- apiGroups:
+  - ''
+  - events.k8s.io
+  resources:
+  - events
+  verbs:
+  - create
+  - get
+  - list
+  - patch
+  - update
+  - watch
+- apiGroups:
+  - '*'
+  resources:
+  - '*'
+  verbs:
+  - get
+  - list
+  - watch
+- apiGroups:
+  - networking.k8s.io
+  resources:
+  - ingresses
+  - ingressclasses
+  - networkpolicies
+  verbs:
+  - create
+  - update
+  - patch
+  - delete
+- apiGroups:
+  - rbac.authorization.k8s.io
+  resources:
+  - rolebindings
+  - roles
+  verbs:
+  - create
+  - update
+  - patch
+  - delete
+- apiGroups:
+  - ''
+  resources:
+  - configmaps
+  - secrets
+  - resourcequotas
+  - limitranges
+  verbs:
+  - create
+  - update
+  - patch
+  - delete
+
--- HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:background-controller:additional

+++ HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:background-controller:additional

@@ -0,0 +1,23 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: kyverno:background-controller:additional
+  labels:
+    app.kubernetes.io/component: background-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+rules:
+- apiGroups:
+  - ''
+  resources:
+  - pods
+  verbs:
+  - create
+  - update
+  - patch
+  - delete
+  - get
+  - list
+
--- HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:cleanup-controller

+++ HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:cleanup-controller

@@ -0,0 +1,17 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: kyverno:cleanup-controller
+  labels:
+    app.kubernetes.io/component: cleanup-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+aggregationRule:
+  clusterRoleSelectors:
+  - matchLabels:
+      app.kubernetes.io/component: cleanup-controller
+      app.kubernetes.io/instance: kyverno
+      app.kubernetes.io/part-of: kyverno
+
--- HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:cleanup-controller:core

+++ HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:cleanup-controller:core

@@ -0,0 +1,69 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: kyverno:cleanup-controller:core
+  labels:
+    app.kubernetes.io/component: cleanup-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+rules:
+- apiGroups:
+  - admissionregistration.k8s.io
+  resources:
+  - validatingwebhookconfigurations
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - update
+  - watch
+- apiGroups:
+  - ''
+  resources:
+  - namespaces
+  verbs:
+  - get
+  - list
+  - watch
+- apiGroups:
+  - kyverno.io
+  resources:
+  - clustercleanuppolicies
+  - cleanuppolicies
+  verbs:
+  - list
+  - watch
+- apiGroups:
+  - kyverno.io
+  resources:
+  - clustercleanuppolicies/status
+  - cleanuppolicies/status
+  verbs:
+  - update
+- apiGroups:
+  - ''
+  resources:
+  - configmaps
+  verbs:
+  - get
+  - list
+  - watch
+- apiGroups:
+  - ''
+  - events.k8s.io
+  resources:
+  - events
+  verbs:
+  - create
+  - patch
+  - update
+- apiGroups:
+  - authorization.k8s.io
+  resources:
+  - subjectaccessreviews
+  verbs:
+  - create
+
--- HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno-cleanup-jobs

+++ HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno-cleanup-jobs

@@ -0,0 +1,20 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: kyverno-cleanup-jobs
+  labels:
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+rules:
+- apiGroups:
+  - kyverno.io
+  resources:
+  - admissionreports
+  - clusteradmissionreports
+  verbs:
+  - list
+  - deletecollection
+  - delete
+
--- HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:rbac:admin:policies

+++ HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:rbac:admin:policies

@@ -0,0 +1,28 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: kyverno:rbac:admin:policies
+  labels:
+    app.kubernetes.io/component: rbac
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+    rbac.authorization.k8s.io/aggregate-to-admin: 'true'
+rules:
+- apiGroups:
+  - kyverno.io
+  resources:
+  - cleanuppolicies
+  - clustercleanuppolicies
+  - policies
+  - clusterpolicies
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - patch
+  - update
+  - watch
+
--- HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:rbac:view:policies

+++ HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:rbac:view:policies

@@ -0,0 +1,24 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: kyverno:rbac:view:policies
+  labels:
+    app.kubernetes.io/component: rbac
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+    rbac.authorization.k8s.io/aggregate-to-view: 'true'
+rules:
+- apiGroups:
+  - kyverno.io
+  resources:
+  - cleanuppolicies
+  - clustercleanuppolicies
+  - policies
+  - clusterpolicies
+  verbs:
+  - get
+  - list
+  - watch
+
--- HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:rbac:admin:policyreports

+++ HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:rbac:admin:policyreports

@@ -0,0 +1,26 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: kyverno:rbac:admin:policyreports
+  labels:
+    app.kubernetes.io/component: rbac
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+    rbac.authorization.k8s.io/aggregate-to-admin: 'true'
+rules:
+- apiGroups:
+  - wgpolicyk8s.io
+  resources:
+  - policyreports
+  - clusterpolicyreports
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - patch
+  - update
+  - watch
+
--- HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:rbac:view:policyreports

+++ HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:rbac:view:policyreports

@@ -0,0 +1,22 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: kyverno:rbac:view:policyreports
+  labels:
+    app.kubernetes.io/component: rbac
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+    rbac.authorization.k8s.io/aggregate-to-view: 'true'
+rules:
+- apiGroups:
+  - wgpolicyk8s.io
+  resources:
+  - policyreports
+  - clusterpolicyreports
+  verbs:
+  - get
+  - list
+  - watch
+
--- HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:rbac:admin:reports

+++ HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:rbac:admin:reports

@@ -0,0 +1,28 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: kyverno:rbac:admin:reports
+  labels:
+    app.kubernetes.io/component: rbac
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+    rbac.authorization.k8s.io/aggregate-to-admin: 'true'
+rules:
+- apiGroups:
+  - kyverno.io
+  resources:
+  - admissionreports
+  - clusteradmissionreports
+  - backgroundscanreports
+  - clusterbackgroundscanreports
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - patch
+  - update
+  - watch
+
--- HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:rbac:view:reports

+++ HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:rbac:view:reports

@@ -0,0 +1,24 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: kyverno:rbac:view:reports
+  labels:
+    app.kubernetes.io/component: rbac
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+    rbac.authorization.k8s.io/aggregate-to-view: 'true'
+rules:
+- apiGroups:
+  - kyverno.io
+  resources:
+  - admissionreports
+  - clusteradmissionreports
+  - backgroundscanreports
+  - clusterbackgroundscanreports
+  verbs:
+  - get
+  - list
+  - watch
+
--- HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:rbac:admin:updaterequests

+++ HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:rbac:admin:updaterequests

@@ -0,0 +1,25 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: kyverno:rbac:admin:updaterequests
+  labels:
+    app.kubernetes.io/component: rbac
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+    rbac.authorization.k8s.io/aggregate-to-admin: 'true'
+rules:
+- apiGroups:
+  - kyverno.io
+  resources:
+  - updaterequests
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - patch
+  - update
+  - watch
+
--- HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:rbac:view:updaterequests

+++ HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:rbac:view:updaterequests

@@ -0,0 +1,21 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: kyverno:rbac:view:updaterequests
+  labels:
+    app.kubernetes.io/component: rbac
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+    rbac.authorization.k8s.io/aggregate-to-view: 'true'
+rules:
+- apiGroups:
+  - kyverno.io
+  resources:
+  - updaterequests
+  verbs:
+  - get
+  - list
+  - watch
+
--- HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:reports-controller

+++ HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:reports-controller

@@ -0,0 +1,17 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: kyverno:reports-controller
+  labels:
+    app.kubernetes.io/component: reports-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+aggregationRule:
+  clusterRoleSelectors:
+  - matchLabels:
+      app.kubernetes.io/component: reports-controller
+      app.kubernetes.io/instance: kyverno
+      app.kubernetes.io/part-of: kyverno
+
--- HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:reports-controller:core

+++ HelmRelease: kyverno-system/kyverno ClusterRole: kyverno-system/kyverno:reports-controller:core

@@ -0,0 +1,60 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: kyverno:reports-controller:core
+  labels:
+    app.kubernetes.io/component: reports-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+rules:
+- apiGroups:
+  - '*'
+  resources:
+  - '*'
+  verbs:
+  - get
+  - list
+  - watch
+- apiGroups:
+  - kyverno.io
+  resources:
+  - admissionreports
+  - clusteradmissionreports
+  - backgroundscanreports
+  - clusterbackgroundscanreports
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - patch
+  - update
+  - watch
+  - deletecollection
+- apiGroups:
+  - wgpolicyk8s.io
+  resources:
+  - policyreports
+  - policyreports/status
+  - clusterpolicyreports
+  - clusterpolicyreports/status
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - patch
+  - update
+  - watch
+  - deletecollection
+- apiGroups:
+  - ''
+  - events.k8s.io
+  resources:
+  - events
+  verbs:
+  - create
+  - patch
+
--- HelmRelease: kyverno-system/kyverno ClusterRoleBinding: kyverno-system/kyverno:admission-controller

+++ HelmRelease: kyverno-system/kyverno ClusterRoleBinding: kyverno-system/kyverno:admission-controller

@@ -0,0 +1,19 @@

+---
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: kyverno:admission-controller
+  labels:
+    app.kubernetes.io/component: admission-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: kyverno:admission-controller
+subjects:
+- kind: ServiceAccount
+  name: kyverno-admission-controller
+  namespace: kyverno-system
+
--- HelmRelease: kyverno-system/kyverno ClusterRoleBinding: kyverno-system/kyverno:background-controller

+++ HelmRelease: kyverno-system/kyverno ClusterRoleBinding: kyverno-system/kyverno:background-controller

@@ -0,0 +1,19 @@

+---
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: kyverno:background-controller
+  labels:
+    app.kubernetes.io/component: background-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: kyverno:background-controller
+subjects:
+- kind: ServiceAccount
+  name: kyverno-background-controller
+  namespace: kyverno-system
+
--- HelmRelease: kyverno-system/kyverno ClusterRoleBinding: kyverno-system/kyverno:cleanup-controller

+++ HelmRelease: kyverno-system/kyverno ClusterRoleBinding: kyverno-system/kyverno:cleanup-controller

@@ -0,0 +1,19 @@

+---
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: kyverno:cleanup-controller
+  labels:
+    app.kubernetes.io/component: cleanup-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: kyverno:cleanup-controller
+subjects:
+- kind: ServiceAccount
+  name: kyverno-cleanup-controller
+  namespace: kyverno-system
+
--- HelmRelease: kyverno-system/kyverno ClusterRoleBinding: kyverno-system/kyverno-cleanup-jobs

+++ HelmRelease: kyverno-system/kyverno ClusterRoleBinding: kyverno-system/kyverno-cleanup-jobs

@@ -0,0 +1,18 @@

+---
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: kyverno-cleanup-jobs
+  labels:
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: kyverno-cleanup-jobs
+subjects:
+- kind: ServiceAccount
+  name: kyverno-cleanup-jobs
+  namespace: kyverno-system
+
--- HelmRelease: kyverno-system/kyverno ClusterRoleBinding: kyverno-system/kyverno:reports-controller

+++ HelmRelease: kyverno-system/kyverno ClusterRoleBinding: kyverno-system/kyverno:reports-controller

@@ -0,0 +1,19 @@

+---
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: kyverno:reports-controller
+  labels:
+    app.kubernetes.io/component: reports-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: kyverno:reports-controller
+subjects:
+- kind: ServiceAccount
+  name: kyverno-reports-controller
+  namespace: kyverno-system
+
--- HelmRelease: kyverno-system/kyverno Role: kyverno-system/kyverno:admission-controller

+++ HelmRelease: kyverno-system/kyverno Role: kyverno-system/kyverno:admission-controller

@@ -0,0 +1,56 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+  name: kyverno:admission-controller
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: admission-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+rules:
+- apiGroups:
+  - ''
+  resources:
+  - secrets
+  verbs:
+  - get
+  - list
+  - watch
+  - create
+  - update
+  - delete
+- apiGroups:
+  - ''
+  resources:
+  - configmaps
+  verbs:
+  - get
+  - list
+  - watch
+  resourceNames:
+  - kyverno
+  - kyverno-metrics
+- apiGroups:
+  - coordination.k8s.io
+  resources:
+  - leases
+  verbs:
+  - create
+  - delete
+  - get
+  - patch
+  - update
+- apiGroups:
+  - apps
+  resources:
+  - deployments
+  - deployments/scale
+  verbs:
+  - get
+  - list
+  - watch
+  - patch
+  - update
+
--- HelmRelease: kyverno-system/kyverno Role: kyverno-system/kyverno:background-controller

+++ HelmRelease: kyverno-system/kyverno Role: kyverno-system/kyverno:background-controller

@@ -0,0 +1,49 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+  name: kyverno:background-controller
+  labels:
+    app.kubernetes.io/component: background-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+  namespace: kyverno-system
+rules:
+- apiGroups:
+  - ''
+  resources:
+  - configmaps
+  verbs:
+  - get
+  - list
+  - watch
+  resourceNames:
+  - kyverno
+  - kyverno-metrics
+- apiGroups:
+  - coordination.k8s.io
+  resources:
+  - leases
+  verbs:
+  - create
+- apiGroups:
+  - coordination.k8s.io
+  resources:
+  - leases
+  verbs:
+  - delete
+  - get
+  - patch
+  - update
+  resourceNames:
+  - kyverno-background-controller
+- apiGroups:
+  - ''
+  resources:
+  - secrets
+  verbs:
+  - get
+  - list
+  - watch
+
--- HelmRelease: kyverno-system/kyverno Role: kyverno-system/kyverno:cleanup-controller

+++ HelmRelease: kyverno-system/kyverno Role: kyverno-system/kyverno:cleanup-controller

@@ -0,0 +1,60 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+  name: kyverno:cleanup-controller
+  labels:
+    app.kubernetes.io/component: cleanup-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+  namespace: kyverno-system
+rules:
+- apiGroups:
+  - ''
+  resources:
+  - secrets
+  verbs:
+  - create
+- apiGroups:
+  - ''
+  resources:
+  - secrets
+  verbs:
+  - delete
+  - get
+  - list
+  - update
+  - watch
+  resourceNames:
+  - kyverno-cleanup-controller.kyverno-system.svc.kyverno-tls-ca
+  - kyverno-cleanup-controller.kyverno-system.svc.kyverno-tls-pair
+- apiGroups:
+  - ''
+  resources:
+  - configmaps
+  verbs:
+  - get
+  - list
+  - watch
+  resourceNames:
+  - kyverno
+  - kyverno-metrics
+- apiGroups:
+  - coordination.k8s.io
+  resources:
+  - leases
+  verbs:
+  - create
+- apiGroups:
+  - coordination.k8s.io
+  resources:
+  - leases
+  verbs:
+  - delete
+  - get
+  - patch
+  - update
+  resourceNames:
+  - kyverno-cleanup-controller
+
--- HelmRelease: kyverno-system/kyverno Role: kyverno-system/kyverno:reports-controller

+++ HelmRelease: kyverno-system/kyverno Role: kyverno-system/kyverno:reports-controller

@@ -0,0 +1,41 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+  name: kyverno:reports-controller
+  labels:
+    app.kubernetes.io/component: reports-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+  namespace: kyverno-system
+rules:
+- apiGroups:
+  - ''
+  resources:
+  - configmaps
+  verbs:
+  - get
+  - list
+  - watch
+  resourceNames:
+  - kyverno
+  - kyverno-metrics
+- apiGroups:
+  - coordination.k8s.io
+  resources:
+  - leases
+  verbs:
+  - create
+- apiGroups:
+  - coordination.k8s.io
+  resources:
+  - leases
+  verbs:
+  - delete
+  - get
+  - patch
+  - update
+  resourceNames:
+  - kyverno-reports-controller
+
--- HelmRelease: kyverno-system/kyverno RoleBinding: kyverno-system/kyverno:admission-controller

+++ HelmRelease: kyverno-system/kyverno RoleBinding: kyverno-system/kyverno:admission-controller

@@ -0,0 +1,20 @@

+---
+kind: RoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: kyverno:admission-controller
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: admission-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: Role
+  name: kyverno:admission-controller
+subjects:
+- kind: ServiceAccount
+  name: kyverno-admission-controller
+  namespace: kyverno-system
+
--- HelmRelease: kyverno-system/kyverno RoleBinding: kyverno-system/kyverno:background-controller

+++ HelmRelease: kyverno-system/kyverno RoleBinding: kyverno-system/kyverno:background-controller

@@ -0,0 +1,20 @@

+---
+kind: RoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: kyverno:background-controller
+  labels:
+    app.kubernetes.io/component: background-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+  namespace: kyverno-system
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: Role
+  name: kyverno:background-controller
+subjects:
+- kind: ServiceAccount
+  name: kyverno-background-controller
+  namespace: kyverno-system
+
--- HelmRelease: kyverno-system/kyverno RoleBinding: kyverno-system/kyverno:cleanup-controller

+++ HelmRelease: kyverno-system/kyverno RoleBinding: kyverno-system/kyverno:cleanup-controller

@@ -0,0 +1,20 @@

+---
+kind: RoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: kyverno:cleanup-controller
+  labels:
+    app.kubernetes.io/component: cleanup-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+  namespace: kyverno-system
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: Role
+  name: kyverno:cleanup-controller
+subjects:
+- kind: ServiceAccount
+  name: kyverno-cleanup-controller
+  namespace: kyverno-system
+
--- HelmRelease: kyverno-system/kyverno RoleBinding: kyverno-system/kyverno:reports-controller

+++ HelmRelease: kyverno-system/kyverno RoleBinding: kyverno-system/kyverno:reports-controller

@@ -0,0 +1,20 @@

+---
+kind: RoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: kyverno:reports-controller
+  labels:
+    app.kubernetes.io/component: reports-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+  namespace: kyverno-system
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: Role
+  name: kyverno:reports-controller
+subjects:
+- kind: ServiceAccount
+  name: kyverno-reports-controller
+  namespace: kyverno-system
+
--- HelmRelease: kyverno-system/kyverno Service: kyverno-system/kyverno-svc

+++ HelmRelease: kyverno-system/kyverno Service: kyverno-system/kyverno-svc

@@ -0,0 +1,23 @@

+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: kyverno-svc
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: admission-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+spec:
+  ports:
+  - port: 443
+    targetPort: https
+    protocol: TCP
+    name: https
+  selector:
+    app.kubernetes.io/component: admission-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/part-of: kyverno
+  type: ClusterIP
+
--- HelmRelease: kyverno-system/kyverno Service: kyverno-system/kyverno-svc-metrics

+++ HelmRelease: kyverno-system/kyverno Service: kyverno-system/kyverno-svc-metrics

@@ -0,0 +1,23 @@

+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: kyverno-svc-metrics
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: admission-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+spec:
+  ports:
+  - port: 8000
+    targetPort: 8000
+    protocol: TCP
+    name: metrics-port
+  selector:
+    app.kubernetes.io/component: admission-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/part-of: kyverno
+  type: ClusterIP
+
--- HelmRelease: kyverno-system/kyverno Service: kyverno-system/kyverno-background-controller-metrics

+++ HelmRelease: kyverno-system/kyverno Service: kyverno-system/kyverno-background-controller-metrics

@@ -0,0 +1,23 @@

+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: kyverno-background-controller-metrics
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: background-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+spec:
+  ports:
+  - port: 8000
+    targetPort: 8000
+    protocol: TCP
+    name: metrics-port
+  selector:
+    app.kubernetes.io/component: background-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/part-of: kyverno
+  type: ClusterIP
+
--- HelmRelease: kyverno-system/kyverno Service: kyverno-system/kyverno-cleanup-controller

+++ HelmRelease: kyverno-system/kyverno Service: kyverno-system/kyverno-cleanup-controller

@@ -0,0 +1,23 @@

+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: kyverno-cleanup-controller
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: cleanup-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+spec:
+  ports:
+  - port: 443
+    targetPort: https
+    protocol: TCP
+    name: https
+  selector:
+    app.kubernetes.io/component: cleanup-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/part-of: kyverno
+  type: ClusterIP
+
--- HelmRelease: kyverno-system/kyverno Service: kyverno-system/kyverno-cleanup-controller-metrics

+++ HelmRelease: kyverno-system/kyverno Service: kyverno-system/kyverno-cleanup-controller-metrics

@@ -0,0 +1,23 @@

+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: kyverno-cleanup-controller-metrics
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: cleanup-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+spec:
+  ports:
+  - port: 8000
+    targetPort: 8000
+    protocol: TCP
+    name: metrics-port
+  selector:
+    app.kubernetes.io/component: cleanup-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/part-of: kyverno
+  type: ClusterIP
+
--- HelmRelease: kyverno-system/kyverno Service: kyverno-system/kyverno-reports-controller-metrics

+++ HelmRelease: kyverno-system/kyverno Service: kyverno-system/kyverno-reports-controller-metrics

@@ -0,0 +1,23 @@

+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: kyverno-reports-controller-metrics
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: reports-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+spec:
+  ports:
+  - port: 8000
+    targetPort: 8000
+    protocol: TCP
+    name: metrics-port
+  selector:
+    app.kubernetes.io/component: reports-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/part-of: kyverno
+  type: ClusterIP
+
--- HelmRelease: kyverno-system/kyverno Deployment: kyverno-system/kyverno-admission-controller

+++ HelmRelease: kyverno-system/kyverno Deployment: kyverno-system/kyverno-admission-controller

@@ -0,0 +1,200 @@

+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: kyverno-admission-controller
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: admission-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+spec:
+  replicas: 3
+  strategy:
+    rollingUpdate:
+      maxSurge: 1
+      maxUnavailable: 40%
+    type: RollingUpdate
+  selector:
+    matchLabels:
+      app.kubernetes.io/component: admission-controller
+      app.kubernetes.io/instance: kyverno
+      app.kubernetes.io/part-of: kyverno
+  template:
+    metadata:
+      labels:
+        app.kubernetes.io/component: admission-controller
+        app.kubernetes.io/instance: kyverno
+        app.kubernetes.io/managed-by: Helm
+        app.kubernetes.io/part-of: kyverno
+    spec:
+      topologySpreadConstraints:
+      - labelSelector:
+          matchLabels:
+            app.kubernetes.io/component: kyverno
+            app.kubernetes.io/instance: kyverno
+        maxSkew: 1
+        topologyKey: kubernetes.io/hostname
+        whenUnsatisfiable: DoNotSchedule
+      dnsPolicy: ClusterFirst
+      affinity:
+        podAntiAffinity:
+          preferredDuringSchedulingIgnoredDuringExecution:
+          - podAffinityTerm:
+              labelSelector:
+                matchExpressions:
+                - key: app.kubernetes.io/component
+                  operator: In
+                  values:
+                  - admission-controller
+              topologyKey: kubernetes.io/hostname
+            weight: 1
+      serviceAccountName: kyverno-admission-controller
+      initContainers:
+      - name: kyverno-pre
+        image: ghcr.io/kyverno/kyvernopre:v1.11.4
+        imagePullPolicy: IfNotPresent
+        args:
+        - --loggingFormat=text
+        - --v=2
+        resources:
+          limits:
+            cpu: 100m
+            memory: 256Mi
+          requests:
+            cpu: 10m
+            memory: 64Mi
+        securityContext:
+          allowPrivilegeEscalation: false
+          capabilities:
+            drop:
+            - ALL
+          privileged: false
+          readOnlyRootFilesystem: true
+          runAsNonRoot: true
+          seccompProfile:
+            type: RuntimeDefault
+        env:
+        - name: KYVERNO_SERVICEACCOUNT_NAME
+          value: kyverno-admission-controller
+        - name: INIT_CONFIG
+          value: kyverno
+        - name: METRICS_CONFIG
+          value: kyverno-metrics
+        - name: KYVERNO_NAMESPACE
+          valueFrom:
+            fieldRef:
+              fieldPath: metadata.namespace
+        - name: KYVERNO_POD_NAME
+          valueFrom:
+            fieldRef:
+              fieldPath: metadata.name
+        - name: KYVERNO_DEPLOYMENT
+          value: kyverno-admission-controller
+        - name: KYVERNO_SVC
+          value: kyverno-svc
+      containers:
+      - name: kyverno
+        image: ghcr.io/kyverno/kyverno:v1.11.4
+        imagePullPolicy: IfNotPresent
+        args:
+        - --caSecretName=kyverno-svc.kyverno-system.svc.kyverno-tls-ca
+        - --tlsSecretName=kyverno-svc.kyverno-system.svc.kyverno-tls-pair
+        - --backgroundServiceAccountName=system:serviceaccount:kyverno-system:kyverno-background-controller
+        - --servicePort=443
+        - --disableMetrics=false
+        - --otelConfig=prometheus
+        - --metricsPort=8000
+        - --admissionReports=true
+        - --autoUpdateWebhooks=true
+        - --enableConfigMapCaching=true
+        - --enableDeferredLoading=true
+        - --dumpPayload=false
+        - --forceFailurePolicyIgnore=false
+        - --generateValidatingAdmissionPolicy=false
+        - --loggingFormat=text
+        - --v=2
+        - --enablePolicyException=true
+        - --protectManagedResources=false
+        - --allowInsecureRegistry=false
+        - --registryCredentialHelpers=default,google,amazon,azure,github
+        resources:
+          limits:
+            memory: 384Mi
+          requests:
+            cpu: 100m
+            memory: 128Mi
+        securityContext:
+          allowPrivilegeEscalation: false
+          capabilities:
+            drop:
+            - ALL
+          privileged: false
+          readOnlyRootFilesystem: true
+          runAsNonRoot: true
+          seccompProfile:
+            type: RuntimeDefault
+        ports:
+        - containerPort: 9443
+          name: https
+          protocol: TCP
+        - containerPort: 8000
+          name: metrics-port
+          protocol: TCP
+        env:
+        - name: INIT_CONFIG
+          value: kyverno
+        - name: METRICS_CONFIG
+          value: kyverno-metrics
+        - name: KYVERNO_NAMESPACE
+          valueFrom:
+            fieldRef:
+              fieldPath: metadata.namespace
+        - name: KYVERNO_POD_NAME
+          valueFrom:
+            fieldRef:
+              fieldPath: metadata.name
+        - name: KYVERNO_SERVICEACCOUNT_NAME
+          value: kyverno-admission-controller
+        - name: KYVERNO_SVC
+          value: kyverno-svc
+        - name: TUF_ROOT
+          value: /.sigstore
+        - name: KYVERNO_DEPLOYMENT
+          value: kyverno-admission-controller
+        startupProbe:
+          failureThreshold: 20
+          httpGet:
+            path: /health/liveness
+            port: 9443
+            scheme: HTTPS
+          initialDelaySeconds: 2
+          periodSeconds: 6
+        livenessProbe:
+          failureThreshold: 2
+          httpGet:
+            path: /health/liveness
+            port: 9443
+            scheme: HTTPS
+          initialDelaySeconds: 15
+          periodSeconds: 30
+          successThreshold: 1
+          timeoutSeconds: 5
+        readinessProbe:
+          failureThreshold: 6
+          httpGet:
+            path: /health/readiness
+            port: 9443
+            scheme: HTTPS
+          initialDelaySeconds: 5
+          periodSeconds: 10
+          successThreshold: 1
+          timeoutSeconds: 5
+        volumeMounts:
+        - mountPath: /.sigstore
+          name: sigstore
+      volumes:
+      - name: sigstore
+        emptyDir: {}
+
--- HelmRelease: kyverno-system/kyverno Deployment: kyverno-system/kyverno-background-controller

+++ HelmRelease: kyverno-system/kyverno Deployment: kyverno-system/kyverno-background-controller

@@ -0,0 +1,99 @@

+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: kyverno-background-controller
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: background-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+spec:
+  replicas: null
+  strategy:
+    rollingUpdate:
+      maxSurge: 1
+      maxUnavailable: 40%
+    type: RollingUpdate
+  selector:
+    matchLabels:
+      app.kubernetes.io/component: background-controller
+      app.kubernetes.io/instance: kyverno
+      app.kubernetes.io/part-of: kyverno
+  template:
+    metadata:
+      labels:
+        app.kubernetes.io/component: background-controller
+        app.kubernetes.io/instance: kyverno
+        app.kubernetes.io/managed-by: Helm
+        app.kubernetes.io/part-of: kyverno
+    spec:
+      dnsPolicy: ClusterFirst
+      affinity:
+        podAntiAffinity:
+          preferredDuringSchedulingIgnoredDuringExecution:
+          - podAffinityTerm:
+              labelSelector:
+                matchExpressions:
+                - key: app.kubernetes.io/component
+                  operator: In
+                  values:
+                  - background-controller
+              topologyKey: kubernetes.io/hostname
+            weight: 1
+      serviceAccountName: kyverno-background-controller
+      containers:
+      - name: controller
+        image: ghcr.io/kyverno/background-controller:v1.11.4
+        imagePullPolicy: IfNotPresent
+        ports:
+        - containerPort: 9443
+          name: https
+          protocol: TCP
+        - containerPort: 8000
+          name: metrics
+          protocol: TCP
+        args:
+        - --disableMetrics=false
+        - --otelConfig=prometheus
+        - --metricsPort=8000
+        - --enableConfigMapCaching=true
+        - --enableDeferredLoading=true
+        - --loggingFormat=text
+        - --v=2
+        - --enablePolicyException=true
+        env:
+        - name: KYVERNO_SERVICEACCOUNT_NAME
+          value: kyverno-background-controller
+        - name: KYVERNO_DEPLOYMENT
+          value: kyverno-background-controller
+        - name: INIT_CONFIG
+          value: kyverno
+        - name: METRICS_CONFIG
+          value: kyverno-metrics
+        - name: KYVERNO_POD_NAME
+          valueFrom:
+            fieldRef:
+              fieldPath: metadata.name
+        - name: KYVERNO_NAMESPACE
+          valueFrom:
+            fieldRef:
+              fieldPath: metadata.namespace
+        resources:
+          limits:
+            memory: 128Mi
+          requests:
+            cpu: 100m
+            memory: 64Mi
+        securityContext:
+          allowPrivilegeEscalation: false
+          capabilities:
+            drop:
+            - ALL
+          privileged: false
+          readOnlyRootFilesystem: true
+          runAsNonRoot: true
+          seccompProfile:
+            type: RuntimeDefault
+
--- HelmRelease: kyverno-system/kyverno Deployment: kyverno-system/kyverno-cleanup-controller

+++ HelmRelease: kyverno-system/kyverno Deployment: kyverno-system/kyverno-cleanup-controller

@@ -0,0 +1,132 @@

+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: kyverno-cleanup-controller
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: cleanup-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+spec:
+  replicas: null
+  strategy:
+    rollingUpdate:
+      maxSurge: 1
+      maxUnavailable: 40%
+    type: RollingUpdate
+  selector:
+    matchLabels:
+      app.kubernetes.io/component: cleanup-controller
+      app.kubernetes.io/instance: kyverno
+      app.kubernetes.io/part-of: kyverno
+  template:
+    metadata:
+      labels:
+        app.kubernetes.io/component: cleanup-controller
+        app.kubernetes.io/instance: kyverno
+        app.kubernetes.io/managed-by: Helm
+        app.kubernetes.io/part-of: kyverno
+    spec:
+      dnsPolicy: ClusterFirst
+      affinity:
+        podAntiAffinity:
+          preferredDuringSchedulingIgnoredDuringExecution:
+          - podAffinityTerm:
+              labelSelector:
+                matchExpressions:
+                - key: app.kubernetes.io/component
+                  operator: In
+                  values:
+                  - cleanup-controller
+              topologyKey: kubernetes.io/hostname
+            weight: 1
+      serviceAccountName: kyverno-cleanup-controller
+      containers:
+      - name: controller
+        image: ghcr.io/kyverno/cleanup-controller:v1.11.4
+        imagePullPolicy: IfNotPresent
+        ports:
+        - containerPort: 9443
+          name: https
+          protocol: TCP
+        - containerPort: 8000
+          name: metrics
+          protocol: TCP
+        args:
+        - --caSecretName=kyverno-cleanup-controller.kyverno-system.svc.kyverno-tls-ca
+        - --tlsSecretName=kyverno-cleanup-controller.kyverno-system.svc.kyverno-tls-pair
+        - --servicePort=443
+        - --disableMetrics=false
+        - --otelConfig=prometheus
+        - --metricsPort=8000
+        - --enableDeferredLoading=true
+        - --dumpPayload=false
+        - --loggingFormat=text
+        - --v=2
+        - --ttlReconciliationInterval=1m
+        env:
+        - name: KYVERNO_DEPLOYMENT
+          value: kyverno-cleanup-controller
+        - name: INIT_CONFIG
+          value: kyverno
+        - name: METRICS_CONFIG
+          value: kyverno-metrics
+        - name: KYVERNO_POD_NAME
+          valueFrom:
+            fieldRef:
+              fieldPath: metadata.name
+        - name: KYVERNO_SERVICEACCOUNT_NAME
+          value: kyverno-cleanup-controller
+        - name: KYVERNO_NAMESPACE
+          valueFrom:
+            fieldRef:
+              fieldPath: metadata.namespace
+        - name: KYVERNO_SVC
+          value: kyverno-cleanup-controller
+        resources:
+          limits:
+            memory: 128Mi
+          requests:
+            cpu: 100m
+            memory: 64Mi
+        securityContext:
+          allowPrivilegeEscalation: false
+          capabilities:
+            drop:
+            - ALL
+          privileged: false
+          readOnlyRootFilesystem: true
+          runAsNonRoot: true
+          seccompProfile:
+            type: RuntimeDefault
+        startupProbe:
+          failureThreshold: 20
+          httpGet:
+            path: /health/liveness
+            port: 9443
+            scheme: HTTPS
+          initialDelaySeconds: 2
+          periodSeconds: 6
+        livenessProbe:
+          failureThreshold: 2
+          httpGet:
+            path: /health/liveness
+            port: 9443
+            scheme: HTTPS
+          initialDelaySeconds: 15
+          periodSeconds: 30
+          successThreshold: 1
+          timeoutSeconds: 5
+        readinessProbe:
+          failureThreshold: 6
+          httpGet:
+            path: /health/readiness
+            port: 9443
+            scheme: HTTPS
+          initialDelaySeconds: 5
+          periodSeconds: 10
+          successThreshold: 1
+          timeoutSeconds: 5
+
--- HelmRelease: kyverno-system/kyverno Deployment: kyverno-system/kyverno-reports-controller

+++ HelmRelease: kyverno-system/kyverno Deployment: kyverno-system/kyverno-reports-controller

@@ -0,0 +1,118 @@

+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: kyverno-reports-controller
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: reports-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+spec:
+  replicas: null
+  strategy:
+    rollingUpdate:
+      maxSurge: 1
+      maxUnavailable: 40%
+    type: RollingUpdate
+  selector:
+    matchLabels:
+      app.kubernetes.io/component: reports-controller
+      app.kubernetes.io/instance: kyverno
+      app.kubernetes.io/part-of: kyverno
+  template:
+    metadata:
+      labels:
+        app.kubernetes.io/component: reports-controller
+        app.kubernetes.io/instance: kyverno
+        app.kubernetes.io/managed-by: Helm
+        app.kubernetes.io/part-of: kyverno
+    spec:
+      dnsPolicy: ClusterFirst
+      affinity:
+        podAntiAffinity:
+          preferredDuringSchedulingIgnoredDuringExecution:
+          - podAffinityTerm:
+              labelSelector:
+                matchExpressions:
+                - key: app.kubernetes.io/component
+                  operator: In
+                  values:
+                  - reports-controller
+              topologyKey: kubernetes.io/hostname
+            weight: 1
+      serviceAccountName: kyverno-reports-controller
+      containers:
+      - name: controller
+        image: ghcr.io/kyverno/reports-controller:v1.11.4
+        imagePullPolicy: IfNotPresent
+        ports:
+        - containerPort: 9443
+          name: https
+          protocol: TCP
+        - containerPort: 8000
+          name: metrics
+          protocol: TCP
+        args:
+        - --disableMetrics=false
+        - --otelConfig=prometheus
+        - --metricsPort=8000
+        - --admissionReports=true
+        - --aggregateReports=true
+        - --policyReports=true
+        - --validatingAdmissionPolicyReports=false
+        - --backgroundScan=true
+        - --backgroundScanWorkers=2
+        - --backgroundScanInterval=1h
+        - --skipResourceFilters=true
+        - --enableConfigMapCaching=true
+        - --enableDeferredLoading=true
+        - --loggingFormat=text
+        - --v=2
+        - --enablePolicyException=true
+        - --reportsChunkSize=1000
+        - --allowInsecureRegistry=false
+        - --registryCredentialHelpers=default,google,amazon,azure,github
+        env:
+        - name: KYVERNO_SERVICEACCOUNT_NAME
+          value: kyverno-reports-controller
+        - name: KYVERNO_DEPLOYMENT
+          value: kyverno-reports-controller
+        - name: INIT_CONFIG
+          value: kyverno
+        - name: METRICS_CONFIG
+          value: kyverno-metrics
+        - name: KYVERNO_POD_NAME
+          valueFrom:
+            fieldRef:
+              fieldPath: metadata.name
+        - name: KYVERNO_NAMESPACE
+          valueFrom:
+            fieldRef:
+              fieldPath: metadata.namespace
+        - name: TUF_ROOT
+          value: /.sigstore
+        resources:
+          limits:
+            memory: 128Mi
+          requests:
+            cpu: 100m
+            memory: 64Mi
+        securityContext:
+          allowPrivilegeEscalation: false
+          capabilities:
+            drop:
+            - ALL
+          privileged: false
+          readOnlyRootFilesystem: true
+          runAsNonRoot: true
+          seccompProfile:
+            type: RuntimeDefault
+        volumeMounts:
+        - mountPath: /.sigstore
+          name: sigstore
+      volumes:
+      - name: sigstore
+        emptyDir: {}
+
--- HelmRelease: kyverno-system/kyverno CronJob: kyverno-system/kyverno-cleanup-admission-reports

+++ HelmRelease: kyverno-system/kyverno CronJob: kyverno-system/kyverno-cleanup-admission-reports

@@ -0,0 +1,49 @@

+---
+apiVersion: batch/v1
+kind: CronJob
+metadata:
+  name: kyverno-cleanup-admission-reports
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: cleanup
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+spec:
+  schedule: '*/10 * * * *'
+  concurrencyPolicy: Forbid
+  successfulJobsHistoryLimit: 1
+  failedJobsHistoryLimit: 1
+  jobTemplate:
+    spec:
+      template:
+        metadata: null
+        spec:
+          serviceAccountName: kyverno-cleanup-jobs
+          containers:
+          - name: cleanup
+            image: bitnami/kubectl:1.28.5
+            imagePullPolicy: null
+            command:
+            - /bin/sh
+            - -c
+            - |
+              COUNT=$(kubectl get admissionreports.kyverno.io -A | wc -l)
+              if [ "$COUNT" -gt 10000 ]; then
+                echo "too many reports found ($COUNT), cleaning up..."
+                kubectl delete admissionreports.kyverno.io -A -l='!audit.kyverno.io/report.aggregate'
+              else
+                echo "($COUNT) reports found, no clean up needed"
+              fi
+            securityContext:
+              allowPrivilegeEscalation: false
+              capabilities:
+                drop:
+                - ALL
+              privileged: false
+              readOnlyRootFilesystem: true
+              runAsNonRoot: true
+              seccompProfile:
+                type: RuntimeDefault
+          restartPolicy: OnFailure
+
--- HelmRelease: kyverno-system/kyverno CronJob: kyverno-system/kyverno-cleanup-cluster-admission-reports

+++ HelmRelease: kyverno-system/kyverno CronJob: kyverno-system/kyverno-cleanup-cluster-admission-reports

@@ -0,0 +1,49 @@

+---
+apiVersion: batch/v1
+kind: CronJob
+metadata:
+  name: kyverno-cleanup-cluster-admission-reports
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: cleanup
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+spec:
+  schedule: '*/10 * * * *'
+  concurrencyPolicy: Forbid
+  successfulJobsHistoryLimit: 1
+  failedJobsHistoryLimit: 1
+  jobTemplate:
+    spec:
+      template:
+        metadata: null
+        spec:
+          serviceAccountName: kyverno-cleanup-jobs
+          containers:
+          - name: cleanup
+            image: bitnami/kubectl:1.28.5
+            imagePullPolicy: null
+            command:
+            - /bin/sh
+            - -c
+            - |
+              COUNT=$(kubectl get clusteradmissionreports.kyverno.io -A | wc -l)
+              if [ "$COUNT" -gt 10000 ]; then
+                echo "too many reports found ($COUNT), cleaning up..."
+                kubectl delete clusteradmissionreports.kyverno.io -A -l='!audit.kyverno.io/report.aggregate'
+              else
+                echo "($COUNT) reports found, no clean up needed"
+              fi
+            securityContext:
+              allowPrivilegeEscalation: false
+              capabilities:
+                drop:
+                - ALL
+              privileged: false
+              readOnlyRootFilesystem: true
+              runAsNonRoot: true
+              seccompProfile:
+                type: RuntimeDefault
+          restartPolicy: OnFailure
+
--- HelmRelease: kyverno-system/kyverno ServiceMonitor: kyverno-system/kyverno-admission-controller

+++ HelmRelease: kyverno-system/kyverno ServiceMonitor: kyverno-system/kyverno-admission-controller

@@ -0,0 +1,25 @@

+---
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+  name: kyverno-admission-controller
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: admission-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+spec:
+  selector:
+    matchLabels:
+      app.kubernetes.io/component: admission-controller
+      app.kubernetes.io/instance: kyverno
+      app.kubernetes.io/part-of: kyverno
+  namespaceSelector:
+    matchNames:
+    - kyverno-system
+  endpoints:
+  - port: metrics-port
+    interval: 30s
+    scrapeTimeout: 25s
+
--- HelmRelease: kyverno-system/kyverno ServiceMonitor: kyverno-system/kyverno-background-controller

+++ HelmRelease: kyverno-system/kyverno ServiceMonitor: kyverno-system/kyverno-background-controller

@@ -0,0 +1,25 @@

+---
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+  name: kyverno-background-controller
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: background-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+spec:
+  selector:
+    matchLabels:
+      app.kubernetes.io/component: background-controller
+      app.kubernetes.io/instance: kyverno
+      app.kubernetes.io/part-of: kyverno
+  namespaceSelector:
+    matchNames:
+    - kyverno-system
+  endpoints:
+  - port: metrics-port
+    interval: 30s
+    scrapeTimeout: 25s
+
--- HelmRelease: kyverno-system/kyverno ServiceMonitor: kyverno-system/kyverno-cleanup-controller

+++ HelmRelease: kyverno-system/kyverno ServiceMonitor: kyverno-system/kyverno-cleanup-controller

@@ -0,0 +1,25 @@

+---
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+  name: kyverno-cleanup-controller
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: cleanup-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+spec:
+  selector:
+    matchLabels:
+      app.kubernetes.io/component: cleanup-controller
+      app.kubernetes.io/instance: kyverno
+      app.kubernetes.io/part-of: kyverno
+  namespaceSelector:
+    matchNames:
+    - kyverno-system
+  endpoints:
+  - port: metrics-port
+    interval: 30s
+    scrapeTimeout: 25s
+
--- HelmRelease: kyverno-system/kyverno ServiceMonitor: kyverno-system/kyverno-reports-controller

+++ HelmRelease: kyverno-system/kyverno ServiceMonitor: kyverno-system/kyverno-reports-controller

@@ -0,0 +1,25 @@

+---
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+  name: kyverno-reports-controller
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: reports-controller
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+spec:
+  selector:
+    matchLabels:
+      app.kubernetes.io/component: reports-controller
+      app.kubernetes.io/instance: kyverno
+      app.kubernetes.io/part-of: kyverno
+  namespaceSelector:
+    matchNames:
+    - kyverno-system
+  endpoints:
+  - port: metrics-port
+    interval: 30s
+    scrapeTimeout: 25s
+
--- HelmRelease: kyverno-system/kyverno Job: kyverno-system/kyverno-hook-post-upgrade

+++ HelmRelease: kyverno-system/kyverno Job: kyverno-system/kyverno-hook-post-upgrade

@@ -0,0 +1,52 @@

+---
+apiVersion: batch/v1
+kind: Job
+metadata:
+  name: kyverno-hook-post-upgrade
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: hooks
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+  annotations:
+    helm.sh/hook: post-upgrade
+    helm.sh/hook-delete-policy: hook-succeeded,hook-failed
+spec:
+  backoffLimit: 2
+  template:
+    spec:
+      serviceAccount: kyverno-admission-controller
+      restartPolicy: Never
+      containers:
+      - name: kubectl
+        image: bitnami/kubectl:1.28.5
+        imagePullPolicy: null
+        command:
+        - /bin/bash
+        - -c
+        - "NAMESPACES=$(kubectl get namespaces --no-headers=true | awk '{print $1}')\n\
+          \nfor ns in ${NAMESPACES[@]};\ndo\n  COUNT=$(kubectl get policyreports.wgpolicyk8s.io\
+          \ -n $ns --no-headers=true | awk '/pol/{print $1}' | wc -l)\n\n  if [ $COUNT\
+          \ -gt 0 ]; then\n    echo \"deleting $COUNT policyreports in namespace $ns\"\
+          \n    kubectl get policyreports.wgpolicyk8s.io -n $ns --no-headers=true\
+          \ | awk '/pol/{print $1}' | xargs kubectl delete -n $ns policyreports.wgpolicyk8s.io\n\
+          \  else\n    echo \"no policyreports in namespace $ns\"\n  fi\ndone\n\n\
+          COUNT=$(kubectl get clusterpolicyreports.wgpolicyk8s.io --no-headers=true\
+          \ | awk '/pol/{print $1}' | wc -l)\n  \nif [ $COUNT -gt 0 ]; then\n  echo\
+          \ \"deleting $COUNT clusterpolicyreports\"\n  kubectl get clusterpolicyreports.wgpolicyk8s.io\
+          \ --no-headers=true | awk '/pol/{print $1}' | xargs kubectl delete clusterpolicyreports.wgpolicyk8s.io\n\
+          else\n  echo \"no clusterpolicyreports\"\nfi\n"
+        securityContext:
+          allowPrivilegeEscalation: false
+          capabilities:
+            drop:
+            - ALL
+          privileged: false
+          readOnlyRootFilesystem: true
+          runAsGroup: 65534
+          runAsNonRoot: true
+          runAsUser: 65534
+          seccompProfile:
+            type: RuntimeDefault
+
--- HelmRelease: kyverno-system/kyverno Job: kyverno-system/kyverno-hook-pre-delete

+++ HelmRelease: kyverno-system/kyverno Job: kyverno-system/kyverno-hook-pre-delete

@@ -0,0 +1,45 @@

+---
+apiVersion: batch/v1
+kind: Job
+metadata:
+  name: kyverno-hook-pre-delete
+  namespace: kyverno-system
+  labels:
+    app.kubernetes.io/component: hooks
+    app.kubernetes.io/instance: kyverno
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/part-of: kyverno
+  annotations:
+    helm.sh/hook: pre-delete
+    helm.sh/hook-delete-policy: hook-succeeded,hook-failed
+spec:
+  backoffLimit: 2
+  template:
+    spec:
+      serviceAccount: kyverno-admission-controller
+      restartPolicy: Never
+      containers:
+      - name: kubectl
+        image: bitnami/kubectl:1.28.5
+        imagePullPolicy: null
+        command:
+        - sh
+        - -c
+        - |-
+          kubectl scale -n kyverno-system deployment -l app.kubernetes.io/part-of=kyverno --replicas=0
+          sleep 30
+          kubectl delete validatingwebhookconfiguration -l webhook.kyverno.io/managed-by=kyverno
+          kubectl delete mutatingwebhookconfiguration -l webhook.kyverno.io/managed-by=kyverno
+        securityContext:
+          allowPrivilegeEscalation: false
+          capabilities:
+            drop:
+            - ALL
+          privileged: false
+          readOnlyRootFilesystem: true
+          runAsGroup: 65534
+          runAsNonRoot: true
+          runAsUser: 65534
+          seccompProfile:
+            type: RuntimeDefault
+

Copy link

github-actions bot commented Mar 4, 2024

--- kubernetes/flux Kustomization: flux-system/cluster HelmRepository: flux-system/kyverno

+++ kubernetes/flux Kustomization: flux-system/cluster HelmRepository: flux-system/kyverno

@@ -0,0 +1,13 @@

+---
+apiVersion: source.toolkit.fluxcd.io/v1beta2
+kind: HelmRepository
+metadata:
+  labels:
+    kustomize.toolkit.fluxcd.io/name: cluster
+    kustomize.toolkit.fluxcd.io/namespace: flux-system
+  name: kyverno
+  namespace: flux-system
+spec:
+  interval: 2h
+  url: https://kyverno.github.io/kyverno/
+
--- kubernetes/apps Kustomization: flux-system/cluster-apps Namespace: flux-system/kyverno-system

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Namespace: flux-system/kyverno-system

@@ -0,0 +1,10 @@

+---
+apiVersion: v1
+kind: Namespace
+metadata:
+  labels:
+    kustomize.toolkit.fluxcd.io/name: cluster-apps
+    kustomize.toolkit.fluxcd.io/namespace: flux-system
+    kustomize.toolkit.fluxcd.io/prune: disabled
+  name: kyverno-system
+
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: flux-system/kyverno

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: flux-system/kyverno

@@ -0,0 +1,34 @@

+---
+apiVersion: kustomize.toolkit.fluxcd.io/v1
+kind: Kustomization
+metadata:
+  labels:
+    kustomize.toolkit.fluxcd.io/name: cluster-apps
+    kustomize.toolkit.fluxcd.io/namespace: flux-system
+  name: kyverno
+  namespace: flux-system
+spec:
+  commonMetadata:
+    labels:
+      app.kubernetes.io/name: kyverno
+  decryption:
+    provider: sops
+    secretRef:
+      name: sops-age
+  interval: 2h
+  path: ./kubernetes/apps/kyverno-system/kyverno/app
+  postBuild:
+    substituteFrom:
+    - kind: ConfigMap
+      name: cluster-settings
+    - kind: Secret
+      name: cluster-secrets
+  prune: true
+  retryInterval: 1m
+  sourceRef:
+    kind: GitRepository
+    name: home-kubernetes
+  targetNamespace: kyverno-system
+  timeout: 5m
+  wait: false
+
--- kubernetes/apps/kyverno-system/kyverno/app Kustomization: flux-system/kyverno HelmRelease: kyverno-system/kyverno

+++ kubernetes/apps/kyverno-system/kyverno/app Kustomization: flux-system/kyverno HelmRelease: kyverno-system/kyverno

@@ -0,0 +1,83 @@

+---
+apiVersion: helm.toolkit.fluxcd.io/v2beta2
+kind: HelmRelease
+metadata:
+  labels:
+    app.kubernetes.io/name: kyverno
+    kustomize.toolkit.fluxcd.io/name: kyverno
+    kustomize.toolkit.fluxcd.io/namespace: flux-system
+  name: kyverno
+  namespace: kyverno-system
+spec:
+  chart:
+    spec:
+      chart: kyverno
+      sourceRef:
+        kind: HelmRepository
+        name: kyverno
+        namespace: flux-system
+      version: 3.1.4
+  install:
+    remediation:
+      retries: 3
+  interval: 2h
+  uninstall:
+    keepHistory: false
+  upgrade:
+    cleanupOnFail: true
+    remediation:
+      retries: 3
+  values:
+    admissionController:
+      rbac:
+        clusterRole:
+          extraResources:
+          - apiGroups:
+            - ''
+            resources:
+            - pods
+            verbs:
+            - create
+            - update
+            - delete
+      replicas: 3
+      serviceMonitor:
+        enabled: true
+      topologySpreadConstraints:
+      - labelSelector:
+          matchLabels:
+            app.kubernetes.io/component: kyverno
+            app.kubernetes.io/instance: kyverno
+        maxSkew: 1
+        topologyKey: kubernetes.io/hostname
+        whenUnsatisfiable: DoNotSchedule
+    backgroundController:
+      rbac:
+        clusterRole:
+          extraResources:
+          - apiGroups:
+            - ''
+            resources:
+            - pods
+            verbs:
+            - create
+            - update
+            - patch
+            - delete
+            - get
+            - list
+      serviceMonitor:
+        enabled: true
+    cleanupController:
+      serviceMonitor:
+        enabled: true
+    crds:
+      install: true
+    grafana:
+      annotations:
+        grafana_folder: ''
+      enabled: true
+    reportsController:
+      serviceMonitor:
+        enabled: true
+

@martinohmann martinohmann merged commit 3f1fd99 into main Mar 4, 2024
4 checks passed
@martinohmann martinohmann deleted the kyverno/install branch March 4, 2024 12:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/kubernetes Changes made in the kubernetes directory
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant