Skip to content

Commit

Permalink
update operator rbac template resource naming to support multiple hel…
Browse files Browse the repository at this point in the history
…m chart installations (#502)

* make Role naming consistent with ClusterRole to support multi installation of a helm chart

* fix roleRef

* add changelog

* update unit test

* pr feedback
  • Loading branch information
conradhanson authored Sep 19, 2023
1 parent f3f6193 commit eb9e7cf
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 18 deletions.
6 changes: 6 additions & 0 deletions changelog/v0.34.4/ns-rbac-resource-naming-fix.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
changelog:
- type: FIX
issueLink: https://github.com/solo-io/gloo-mesh-enterprise/issues/10521
description: >
Adds helm release information to k8s resources that use namespace-scoped rbac policies so we support multiple installations of a helm chart.
resolvesIssue: false
12 changes: 6 additions & 6 deletions codegen/cmd_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2062,7 +2062,7 @@ roleRef:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: painter-{{ .Release.Name }}-{{ .Release.Namespace }}
name: painter-{{ .Release.Name }}-{{ .Release.Namespace }}-namespaced
labels:
app: painter
rules:
Expand All @@ -2080,7 +2080,7 @@ rules:
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: painter-{{ .Release.Name }}-{{ .Release.Namespace }}
name: painter-{{ .Release.Name }}-{{ .Release.Namespace }}-namespaced
labels:
app: painter
subjects:
Expand All @@ -2089,13 +2089,13 @@ subjects:
namespace: {{ default .Release.Namespace $painter.namespace }}
roleRef:
kind: ClusterRole
name: painter-{{ .Release.Name }}-{{ .Release.Namespace }}
name: painter-{{ .Release.Name }}-{{ .Release.Namespace }}-namespaced
apiGroup: rbac.authorization.k8s.io`
roleTmpl := `
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: painter
name: painter-{{ $.Release.Name }}-{{ $.Release.Namespace }}-namespaced
namespace: {{ $ns }}
labels:
app: painter
Expand All @@ -2114,7 +2114,7 @@ rules:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: painter
name: painter-{{ $.Release.Name }}-{{ $.Release.Namespace }}-namespaced
namespace: {{ $ns }}
labels:
app: painter
Expand All @@ -2124,7 +2124,7 @@ subjects:
namespace: {{ default $.Release.Namespace $painter.namespace }}
roleRef:
kind: Role
name: painter
name: painter-{{ $.Release.Name }}-{{ $.Release.Namespace }}-namespaced
apiGroup: rbac.authorization.k8s.io`
Expect(string(rbac)).To(ContainSubstring(clusterRole1Tmpl))
Expect(string(rbac)).To(ContainSubstring(clusterRoleBinding1Tmpl))
Expand Down
12 changes: 6 additions & 6 deletions codegen/templates/chart/operator-rbac.yamltmpl
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ We need the following variables:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: [[ $operator.Name ]]-{{ .Release.Name }}-{{ .Release.Namespace }}
name: [[ $operator.Name ]]-{{ .Release.Name }}-{{ .Release.Namespace }}-namespaced
labels:
app: [[ $operator.Name ]]
rules:
Expand All @@ -125,7 +125,7 @@ rules:
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: [[ $operator.Name ]]-{{ .Release.Name }}-{{ .Release.Namespace }}
name: [[ $operator.Name ]]-{{ .Release.Name }}-{{ .Release.Namespace }}-namespaced
labels:
app: [[ $operator.Name ]]
subjects:
Expand All @@ -138,7 +138,7 @@ subjects:
[[- end ]]
roleRef:
kind: ClusterRole
name: [[ $operator.Name ]]-{{ .Release.Name }}-{{ .Release.Namespace }}
name: [[ $operator.Name ]]-{{ .Release.Name }}-{{ .Release.Namespace }}-namespaced
apiGroup: rbac.authorization.k8s.io
{{- end }}

Expand All @@ -149,7 +149,7 @@ roleRef:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: [[ $operator.Name ]]
name: [[ $operator.Name ]]-{{ $.Release.Name }}-{{ $.Release.Namespace }}-namespaced
namespace: {{ $ns }}
labels:
app: [[ $operator.Name ]]
Expand All @@ -167,7 +167,7 @@ rules:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: [[ $operator.Name ]]
name: [[ $operator.Name ]]-{{ $.Release.Name }}-{{ $.Release.Namespace }}-namespaced
namespace: {{ $ns }}
labels:
app: [[ $operator.Name ]]
Expand All @@ -181,7 +181,7 @@ subjects:
[[- end ]]
roleRef:
kind: Role
name: [[ $operator.Name ]]
name: [[ $operator.Name ]]-{{ $.Release.Name }}-{{ $.Release.Namespace }}-namespaced
apiGroup: rbac.authorization.k8s.io

{{- end }}[[/* range $ns, $resources := $[[ $operatorVar ]]NsToResources */]]
Expand Down
12 changes: 6 additions & 6 deletions codegen/test/chart/templates/rbac.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ roleRef:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: painter-{{ .Release.Name }}-{{ .Release.Namespace }}
name: painter-{{ .Release.Name }}-{{ .Release.Namespace }}-namespaced
labels:
app: painter
rules:
Expand All @@ -80,7 +80,7 @@ rules:
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: painter-{{ .Release.Name }}-{{ .Release.Namespace }}
name: painter-{{ .Release.Name }}-{{ .Release.Namespace }}-namespaced
labels:
app: painter
subjects:
Expand All @@ -89,7 +89,7 @@ subjects:
namespace: {{ default .Release.Namespace $painter.namespace }}
roleRef:
kind: ClusterRole
name: painter-{{ .Release.Name }}-{{ .Release.Namespace }}
name: painter-{{ .Release.Name }}-{{ .Release.Namespace }}-namespaced
apiGroup: rbac.authorization.k8s.io
{{- end }}

Expand All @@ -100,7 +100,7 @@ roleRef:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: painter
name: painter-{{ $.Release.Name }}-{{ $.Release.Namespace }}-namespaced
namespace: {{ $ns }}
labels:
app: painter
Expand All @@ -121,7 +121,7 @@ rules:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: painter
name: painter-{{ $.Release.Name }}-{{ $.Release.Namespace }}-namespaced
namespace: {{ $ns }}
labels:
app: painter
Expand All @@ -131,7 +131,7 @@ subjects:
namespace: {{ default $.Release.Namespace $painter.namespace }}
roleRef:
kind: Role
name: painter
name: painter-{{ $.Release.Name }}-{{ $.Release.Namespace }}-namespaced
apiGroup: rbac.authorization.k8s.io

{{- end }}
Expand Down

0 comments on commit eb9e7cf

Please sign in to comment.