mirror of
https://github.com/hanzokms/kubernetes-operator.git
synced 2026-10-30 20:30:51 +00:00
146 lines
3.0 KiB
YAML
146 lines
3.0 KiB
YAML
{{- $namespaces := (include "secrets-operator.scopedNamespaces" . | fromJson).list }}
|
|
{{- $isScopedMode := and $namespaces .Values.scopedRBAC }}
|
|
|
|
{{- /* Define the rules once to avoid repetition */ -}}
|
|
{{- define "secrets-operator.managerRules" }}
|
|
rules:
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- configmaps
|
|
- secrets
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- pods
|
|
verbs:
|
|
- get
|
|
- list
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- serviceaccounts
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- serviceaccounts/token
|
|
verbs:
|
|
- create
|
|
- apiGroups:
|
|
- apps
|
|
resources:
|
|
- daemonsets
|
|
- deployments
|
|
- statefulsets
|
|
verbs:
|
|
- get
|
|
- list
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- authentication.k8s.io
|
|
resources:
|
|
- tokenreviews
|
|
verbs:
|
|
- create
|
|
- apiGroups:
|
|
- kms.hanzo.ai
|
|
resources:
|
|
- clustergenerators
|
|
- kmsdynamicsecrets
|
|
- kmspushsecrets
|
|
- kmssecrets
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- patch
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- kms.hanzo.ai
|
|
resources:
|
|
- kmsdynamicsecrets/finalizers
|
|
- kmspushsecrets/finalizers
|
|
- kmssecrets/finalizers
|
|
verbs:
|
|
- update
|
|
- apiGroups:
|
|
- kms.hanzo.ai
|
|
resources:
|
|
- kmsdynamicsecrets/status
|
|
- kmspushsecrets/status
|
|
- kmssecrets/status
|
|
verbs:
|
|
- get
|
|
- patch
|
|
- update
|
|
{{- end }}
|
|
|
|
{{- if $isScopedMode }}
|
|
{{- /* Scoped mode: Create a Role and RoleBinding in each namespace */ -}}
|
|
{{- range $ns := $namespaces }}
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: Role
|
|
metadata:
|
|
name: {{ include "secrets-operator.fullname" $ }}-manager-role
|
|
namespace: {{ $ns | quote }}
|
|
labels:
|
|
{{- include "secrets-operator.labels" $ | nindent 4 }}
|
|
{{- include "secrets-operator.managerRules" $ }}
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: RoleBinding
|
|
metadata:
|
|
name: {{ include "secrets-operator.fullname" $ }}-manager-rolebinding
|
|
namespace: {{ $ns | quote }}
|
|
labels:
|
|
{{- include "secrets-operator.labels" $ | nindent 4 }}
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: Role
|
|
name: {{ include "secrets-operator.fullname" $ }}-manager-role
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: {{ include "secrets-operator.serviceAccountName" $ }}
|
|
namespace: {{ $.Release.Namespace }}
|
|
{{- end }}
|
|
{{- else }}
|
|
{{- /* Cluster-scoped mode: Create a ClusterRole and ClusterRoleBinding */ -}}
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: {{ include "secrets-operator.fullname" . }}-manager-role
|
|
labels:
|
|
{{- include "secrets-operator.labels" . | nindent 4 }}
|
|
{{- include "secrets-operator.managerRules" . }}
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
name: {{ include "secrets-operator.fullname" . }}-manager-rolebinding
|
|
labels:
|
|
{{- include "secrets-operator.labels" . | nindent 4 }}
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: ClusterRole
|
|
name: {{ include "secrets-operator.fullname" . }}-manager-role
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: {{ include "secrets-operator.serviceAccountName" . }}
|
|
namespace: {{ .Release.Namespace }}
|
|
{{- end }}
|