Skip to content

Commit 919b657

Browse files
authored
Merge pull request #11 from PaloAltoNetworks/golan/v1.0.14
Feat: Add backward compatibility
2 parents c77c855 + f933759 commit 919b657

File tree

4 files changed

+62
-18
lines changed

4 files changed

+62
-18
lines changed

charts/konnector/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: v2
22
name: konnector
33
description: Deploys Palo Alto Networks' Cortex KSPM connector for advanced Kubernetes security posture management.
44
type: application
5-
version: 1.0.13
5+
version: 1.0.14
66
appVersion: "1.0.0"
77
maintainers:
88
- name: Palo Alto Networks - Cortex KSPM team

charts/konnector/templates/_helpers.tpl

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,16 @@ spec:
6060
readOnly: true
6161
restartPolicy: Never
6262
{{- end -}}
63+
64+
{{- define "common.apiGroupsWithoutVersions" }}
65+
{{- $groups := dict }}
66+
{{- range .Capabilities.APIVersions }}
67+
{{- $parts := splitList "/" . }}
68+
{{- $key := "" }}
69+
{{- if gt (len $parts) 1 }}
70+
{{- $key = index $parts 0 }}
71+
{{- end }}
72+
{{- $_ := set $groups $key true }}
73+
{{- end }}
74+
{{ $groups | toYaml }}
75+
{{- end }}

charts/konnector/templates/rbac.yaml

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{{- $namespace := .Values.namespace.name }}
22
{{- $sa := .Values.system.serviceAccount.name }}
3+
{{- $availableApis := include "common.apiGroupsWithoutVersions" $ | fromYaml}}
34

45
{{- range $roleName, $roleInfo := .Values.system.roles }}
56
---
@@ -36,6 +37,17 @@ roleRef:
3637

3738
{{- range $roleName, $roleInfo := .Values.system.clusterRoles }}
3839
---
40+
{{- $allGroupsAvailable := true }}
41+
{{- if not $roleInfo.skipValidation }}
42+
{{- range $rule := $roleInfo.rules }}
43+
{{- range $group := $rule.apiGroups }}
44+
{{- if not (hasKey $availableApis $group) }}
45+
{{- $allGroupsAvailable = false }}
46+
{{- end }}
47+
{{- end }}
48+
{{- end }}
49+
{{- end }}
50+
{{- if $allGroupsAvailable }}
3951
apiVersion: rbac.authorization.k8s.io/v1
4052
kind: ClusterRole
4153
metadata:
@@ -64,13 +76,15 @@ roleRef:
6476
name: {{ $roleName }}
6577
apiGroup: rbac.authorization.k8s.io
6678
{{- end }}
79+
{{- end }}
6780

6881
{{- range $bindingName, $bindingInfo := .Values.system.extraClusterRoleBindings }}
6982
---
83+
{{- if (has $bindingInfo.roleRef.apiGroup $.Capabilities.APIVersions) }}
7084
apiVersion: rbac.authorization.k8s.io/v1
7185
kind: ClusterRoleBinding
7286
metadata:
73-
name: {{ $bindingName }}
87+
name: {{ $bindingName }}-binding
7488
labels:
7589
{{- include "common.labels" $ | nindent 4 }}
7690
subjects:
@@ -82,3 +96,4 @@ roleRef:
8296
name: {{ $bindingInfo.roleRef.name }}
8397
apiGroup: rbac.authorization.k8s.io
8498
{{- end }}
99+
{{- end }}

charts/konnector/values.yaml

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ system:
8686
# Cluster Role Resources
8787
# ==========================
8888
clusterRoles:
89-
connector-manager-creator:
89+
konnector-manager-creator:
9090
rules:
9191
- apiGroups: [""]
9292
resources: ["configmaps", "services", "serviceaccounts"]
@@ -100,15 +100,18 @@ system:
100100
- apiGroups: ["rbac.authorization.k8s.io"]
101101
resources: ["clusterroles", "roles", "rolebindings", "clusterrolebindings"]
102102
verbs: ["create", "patch", "delete"]
103-
cluster-manager:
103+
konnector-cluster-manager:
104104
rules:
105-
- apiGroups: ["", "coordination.k8s.io"]
106-
resources: ["leases", "namespaces", "secrets", "configmaps"]
105+
- apiGroups: [""]
106+
resources: ["namespaces", "secrets", "configmaps"]
107+
verbs: ["get", "update", "patch", "list", "watch"]
108+
- apiGroups: ["coordination.k8s.io"]
109+
resources: ["leases"]
107110
verbs: ["get", "update", "patch", "list", "watch"]
108111
- apiGroups: ["admissionregistration.k8s.io"]
109112
resources: ["validatingwebhookconfigurations"]
110113
verbs: ["update", "list", "watch", "get", "create", "patch", "delete"]
111-
read-inventory:
114+
konnector-read-inventory:
112115
rules:
113116
- apiGroups: [""]
114117
resources: ["namespaces", "pods", "serviceaccounts", "endpoints", "services", "configmaps", "secrets", "nodes", "nodes/proxy"]
@@ -125,24 +128,26 @@ system:
125128
- apiGroups: ["networking.k8s.io"]
126129
resources: ["networkpolicies", "ingresses"]
127130
verbs: ["get", "list", "watch"]
128-
crd-manager:
131+
konnector-crd-manager:
129132
rules:
130133
- apiGroups: ["apiextensions.k8s.io"]
131134
resources: ["customresourcedefinitions"]
132135
verbs: ["create", "get", "patch", "delete"]
133-
node-vm-discovery:
136+
konnector-node-vm-discovery:
134137
rules:
135138
- apiGroups: [""]
136139
resources: ["nodes"]
137140
verbs: ["get", "list", "patch"]
138-
openshift-permissions:
141+
konnector-aro-openshift-permissions:
139142
rules:
140-
- apiGroups: ["config.openshift.io"]
141-
resources: ["clusterversions", "apiservers", "authentications", "clusteroperators", "oauths", "infrastructures"]
142-
verbs: ["get", "list", "watch"]
143143
- apiGroups: ["aro.openshift.io"]
144144
resources: ["clusters"]
145145
verbs: ["get", "list", "watch"]
146+
konnector-general-openshift-permissions:
147+
rules:
148+
- apiGroups: ["config.openshift.io"]
149+
resources: ["clusterversions", "apiservers", "authentications", "clusteroperators", "oauths", "infrastructures"]
150+
verbs: ["get", "list", "watch"]
146151
- apiGroups: ["operator.openshift.io"]
147152
resources: ["kubeapiservers", "openshiftapiservers", "ingresscontrollers", "networks"]
148153
verbs: ["get", "list", "watch"]
@@ -155,7 +160,7 @@ system:
155160
- apiGroups: ["security.openshift.io"]
156161
resources: ["securitycontextconstraints"]
157162
verbs: ["get", "list", "watch"]
158-
otel:
163+
konnector-otel:
159164
rules:
160165
- apiGroups: [""]
161166
resources: ["nodes/stats"]
@@ -166,20 +171,31 @@ system:
166171
- apiGroups: ["apps"]
167172
resources: ["daemonsets", "deployments", "replicasets", "statefulsets"]
168173
verbs: ["get", "list", "watch"]
169-
- apiGroups: ["extensions"]
170-
resources: ["daemonsets", "deployments", "replicasets"]
171-
verbs: ["get", "list", "watch"]
172174
- apiGroups: ["batch"]
173175
resources: ["jobs", "cronjobs"]
174176
verbs: ["get", "list", "watch"]
175177
- apiGroups: ["autoscaling"]
176178
resources: ["horizontalpodautoscalers"]
177179
verbs: ["get", "list", "watch"]
180+
konnector-bc:
181+
skipValidation: "true"
182+
rules:
183+
- apiGroups: ["extensions"]
184+
resources: ["daemonsets", "deployments", "replicasets"]
185+
verbs: ["get", "list", "watch"]
186+
- apiGroups: ["", "coordination.k8s.io"]
187+
resources: ["leases", "namespaces", "secrets", "configmaps"]
188+
verbs: ["get", "update", "patch", "list", "watch"]
178189

179190
extraClusterRoleBindings:
180-
openshift-anyuid-crole-binding:
191+
konnector-openshift-anyuid:
181192
roleRef:
193+
apiGroup: security.openshift.io/v1
182194
name: system:openshift:scc:anyuid
195+
konnector-openshift-privileged:
196+
roleRef:
197+
apiGroup: security.openshift.io/v1
198+
name: system:openshift:scc:privileged
183199

184200
# ==========================
185201
# Secrets Resources

0 commit comments

Comments
 (0)