Role and RoleBinding for fission-fetcher and fission-builder for user configured namespaces (#2574)

* Role and RoleBinding for fission-fetcher and fission-builder can be created in additional namespaces
* Added template file for fetcher and builder role and rolebinding
This commit is contained in:
Runit Misra
2022-10-19 18:06:17 +05:30
committed by GitHub
parent 827baea974
commit 7eeb3ead66
3 changed files with 103 additions and 72 deletions
@@ -0,0 +1,79 @@
{{- define "fissionFunction.roles" }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: {{ .Release.Name }}-fission-fetcher
namespace: {{ .namespace }}
rules:
- apiGroups:
- ""
resources:
- configmaps
- secrets
verbs:
- get
- apiGroups:
- ""
resources:
- pods
verbs:
- list
- apiGroups:
- fission.io
resources:
- packages
verbs:
- "get"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: {{ .Release.Name }}-fission-builder
namespace: {{ .namespace }}
rules:
- apiGroups:
- fission.io
resources:
- packages
verbs:
- "get"
- apiGroups:
- ""
resources:
- configmaps
- secrets
verbs:
- get
{{- end -}}
{{- define "fissionFunction.rolebindings" }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: {{ .Release.Name }}-fission-fetcher
namespace: {{ .namespace }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: {{ .Release.Name }}-fission-fetcher
subjects:
- kind: ServiceAccount
name: fission-fetcher
namespace: {{ .Values.functionNamespace }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: {{ .Release.Name }}-fission-builder
namespace: {{ .namespace }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: {{ .Release.Name }}-fission-builder
subjects:
- kind: ServiceAccount
name: fission-builder
namespace: {{ .Values.builderNamespace }}
{{- end -}}
@@ -1,28 +1,9 @@
apiVersion: rbac.authorization.k8s.io/v1 {{/*
kind: Role Passing namespace as an argument to the "fissionFunction.roles" template.
metadata: Need to use merge function to pass in the current scope so that ".Release" values
name: {{ .Release.Name }}-fission-fetcher can be used
namespace: {{ .Values.defaultNamespace }} */}}
rules: {{ include "fissionFunction.roles" (merge (dict "namespace" .Values.defaultNamespace) .) }}
- apiGroups:
- ""
resources:
- configmaps
- secrets
verbs:
- get
- apiGroups:
- ""
resources:
- pods
verbs:
- list
- apiGroups:
- fission.io
resources:
- packages
verbs:
- "get"
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: Role kind: Role
@@ -41,23 +22,9 @@ rules:
- "create" - "create"
- "update" - "update"
- "patch" - "patch"
---
apiVersion: rbac.authorization.k8s.io/v1 {{- if not .Values.singleDefaultNamespace }}
kind: Role {{- range $namespace := $.Values.additionalFissionNamespaces }}
metadata: {{ include "fissionFunction.roles" (merge (dict "namespace" $namespace) $) }}
name: {{ .Release.Name }}-fission-builder {{- end }}
namespace: {{ .Values.defaultNamespace }} {{- end }}
rules:
- apiGroups:
- fission.io
resources:
- packages
verbs:
- "get"
- apiGroups:
- ""
resources:
- configmaps
- secrets
verbs:
- get
@@ -1,16 +1,9 @@
apiVersion: rbac.authorization.k8s.io/v1 {{/*
kind: RoleBinding Passing namespace as an argument to the "fissionFunction.rolebindings" template.
metadata: Need to use merge function to pass in the current scope so that ".Release" values
name: {{ .Release.Name }}-fission-fetcher can be used
namespace: {{ .Values.defaultNamespace }} */}}
roleRef: {{ include "fissionFunction.rolebindings" (merge (dict "namespace" .Values.defaultNamespace) .) }}
apiGroup: rbac.authorization.k8s.io
kind: Role
name: {{ .Release.Name }}-fission-fetcher
subjects:
- kind: ServiceAccount
name: fission-fetcher
namespace: {{ .Values.functionNamespace }}
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding kind: RoleBinding
@@ -25,17 +18,9 @@ subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: fission-fetcher name: fission-fetcher
namespace: {{ .Values.functionNamespace }} namespace: {{ .Values.functionNamespace }}
---
apiVersion: rbac.authorization.k8s.io/v1 {{- if not .Values.singleDefaultNamespace }}
kind: RoleBinding {{- range $namespace := $.Values.additionalFissionNamespaces }}
metadata: {{ include "fissionFunction.rolebindings" (merge (dict "namespace" $namespace) $) }}
name: {{ .Release.Name }}-fission-builder {{- end }}
namespace: {{ .Values.defaultNamespace }} {{- end }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: {{ .Release.Name }}-fission-builder
subjects:
- kind: ServiceAccount
name: fission-builder
namespace: {{ .Values.builderNamespace }}