{{/*
# 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 }}
