| {{/* |
| # Copyright © 2020 Orange |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| */}} |
| |
| {{- $dot := . -}} |
| {{- range $role_type := $dot.Values.roles }} |
| --- |
| apiVersion: rbac.authorization.k8s.io/v1 |
| kind: Role |
| metadata: |
| name: {{ include "common.fullname" (dict "suffix" $role_type "dot" $dot )}} |
| namespace: {{ include "common.namespace" $dot }} |
| rules: |
| {{- if eq $role_type "read" }} |
| - apiGroups: |
| - "" # "" indicates the core API group |
| - apps |
| - batch |
| resources: |
| - pods |
| - deployments |
| - jobs |
| - jobs/status |
| - statefulsets |
| - replicasets |
| - daemonsets |
| verbs: |
| - get |
| - watch |
| - list |
| {{- else }} |
| {{- if eq $role_type "create" }} |
| - apiGroups: |
| - "" # "" indicates the core API group |
| - apps |
| - batch |
| resources: |
| - pods |
| - deployments |
| - jobs |
| - jobs/status |
| - statefulsets |
| - replicasets |
| - daemonsets |
| - secrets |
| verbs: |
| - get |
| - watch |
| - list |
| - apiGroups: |
| - "" # "" indicates the core API group |
| - apps |
| resources: |
| - statefulsets |
| verbs: |
| - patch |
| - apiGroups: |
| - "" # "" indicates the core API group |
| - apps |
| resources: |
| - deployments |
| - secrets |
| verbs: |
| - create |
| - apiGroups: |
| - "" # "" indicates the core API group |
| - apps |
| resources: |
| - pods |
| - persistentvolumeclaims |
| - secrets |
| - deployment |
| verbs: |
| - delete |
| - apiGroups: |
| - "" # "" indicates the core API group |
| - apps |
| resources: |
| - pods/exec |
| verbs: |
| - create |
| {{- else }} |
| {{- if hasKey $dot.Values.new_roles_definitions $role_type }} |
| {{ include "common.tplValue" ( dict "value" (index $dot.Values.new_roles_definitions $role_type ) "context" $dot) }} |
| {{- else}} |
| # if you don't match read or create, then you're not allowed to use API |
| - apiGroups: [] |
| resources: [] |
| verbs: [] |
| {{- end }} |
| {{- end }} |
| {{- end }} |
| {{- end }} |