| {{/* |
| # 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: {{ printf "%s-%s" (include "common.release" $dot) $role_type }} |
| namespace: {{ include "common.namespace" $dot }} |
| rules: |
| {{- if eq $role_type "read" }} |
| - apiGroups: |
| - "" # "" indicates the core API group |
| - apps |
| - batch |
| - extensions |
| resources: |
| - pods |
| - deployments |
| - deployments/status |
| - jobs |
| - jobs/status |
| - statefulsets |
| - replicasets |
| - replicasets/status |
| - daemonsets |
| verbs: |
| - get |
| - watch |
| - list |
| {{- else }} |
| {{- if eq $role_type "create" }} |
| - apiGroups: |
| - "" # "" indicates the core API group |
| - apps |
| - batch |
| - extensions |
| resources: |
| - pods |
| - deployments |
| - deployments/status |
| - jobs |
| - jobs/status |
| - statefulsets |
| - replicasets |
| - replicasets/status |
| - daemonsets |
| - secrets |
| - services |
| verbs: |
| - get |
| - watch |
| - list |
| - apiGroups: |
| - "" # "" indicates the core API group |
| - apps |
| resources: |
| - statefulsets |
| - configmaps |
| verbs: |
| - patch |
| - apiGroups: |
| - "" # "" indicates the core API group |
| - apps |
| resources: |
| - deployments |
| - secrets |
| - services |
| - pods |
| verbs: |
| - create |
| - apiGroups: |
| - "" # "" indicates the core API group |
| - apps |
| resources: |
| - pods |
| - persistentvolumeclaims |
| - secrets |
| - deployments |
| - services |
| verbs: |
| - delete |
| - apiGroups: |
| - "" # "" indicates the core API group |
| - apps |
| resources: |
| - pods/exec |
| verbs: |
| - create |
| - apiGroups: |
| - cert-manager.io |
| resources: |
| - certificates |
| verbs: |
| - create |
| - delete |
| {{- else }} |
| # if you don't match read or create, then you're not allowed to use API |
| # except to see basic information about yourself |
| - apiGroups: |
| - authorization.k8s.io |
| resources: |
| - selfsubjectaccessreviews |
| - selfsubjectrulesreviews |
| verbs: |
| - create |
| {{- end }} |
| {{- end }} |
| {{- end }} |