Skip to content

Commit cb3fee3

Browse files
committed
Create openshift resources only on openshift clusters
Signed-off-by: Roey <[email protected]>
1 parent 15c4674 commit cb3fee3

File tree

4 files changed

+35
-18
lines changed

4 files changed

+35
-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.10
5+
version: 1.0.11
66
appVersion: "1.0.0"
77
maintainers:
88
- name: Palo Alto Networks - Cortex KSPM team

charts/konnector/templates/_helpers.tpl

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,15 @@ spec:
6161
restartPolicy: Never
6262
{{- end -}}
6363

64-
{{/* Returns true if the anyuid SCC exists and is accessible, false otherwise */}}
65-
{{- define "common.hasAnyuidSCC" -}}
66-
{{- if has "security.openshift.io/v1" .Capabilities.APIVersions }}
67-
{{- $scc := lookup "security.openshift.io/v1" "SecurityContextConstraints" "" "anyuid" }}
68-
{{- if $scc }}true{{ else }}false{{ end }}
69-
{{- else }}
70-
false
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 }}
7171
{{- end }}
72+
{{- $_ := set $groups $key true }}
73+
{{- end }}
74+
{{ $groups | toYaml }}
7275
{{- end }}

charts/konnector/templates/rbac.yaml

Lines changed: 12 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,15 @@ roleRef:
3637

3738
{{- range $roleName, $roleInfo := .Values.system.clusterRoles }}
3839
---
40+
{{- $allGroupsAvailable := true }}
41+
{{- range $rule := $roleInfo.rules }}
42+
{{- range $group := $rule.apiGroups }}
43+
{{- if not (hasKey $availableApis $group) }}
44+
{{- $allGroupsAvailable = false }}
45+
{{- end }}
46+
{{- end }}
47+
{{- end }}
48+
{{- if $allGroupsAvailable }}
3949
apiVersion: rbac.authorization.k8s.io/v1
4050
kind: ClusterRole
4151
metadata:
@@ -64,10 +74,11 @@ roleRef:
6474
name: {{ $roleName }}
6575
apiGroup: rbac.authorization.k8s.io
6676
{{- end }}
77+
{{- end }}
6778

6879
{{- range $bindingName, $bindingInfo := .Values.system.extraClusterRoleBindings }}
6980
---
70-
{{- if eq (include "common.hasAnyuidSCC" $) "true" }}
81+
{{- if (has $bindingInfo.roleRef.apiGroup $.Capabilities.APIVersions) }}
7182
apiVersion: rbac.authorization.k8s.io/v1
7283
kind: ClusterRoleBinding
7384
metadata:

charts/konnector/values.yaml

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,11 @@ system:
102102
verbs: ["create", "patch", "delete"]
103103
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"]
@@ -135,14 +138,16 @@ system:
135138
- apiGroups: [""]
136139
resources: ["nodes"]
137140
verbs: ["get", "list", "patch"]
138-
openshift-permissions:
141+
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+
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"]
@@ -166,9 +171,6 @@ 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"]
@@ -179,6 +181,7 @@ system:
179181
extraClusterRoleBindings:
180182
openshift-anyuid-crole-binding:
181183
roleRef:
184+
apiGroup: security.openshift.io/v1
182185
name: system:openshift:scc:anyuid
183186

184187
# ==========================

0 commit comments

Comments
 (0)