Как установить RBAC в этом values.yaml?
Внутри файла values.yaml на OPA графике я должен активировать RBAC, используя следующий раздел:
# NOTE IF you use these, remember to update the RBAC rules below to allow
# permissions to get, list, watch, patch and update configmaps
enabled: false
namespaces: [opa, kube-federation-scheduling-policy]
requireLabel: true
replicate:
# NOTE IF you use these, remember to update the RBAC rules below to allow
# permissions to replicate these things
cluster: []
# - [group/]version/resource
namespace: []
# - [group/]version/resource
path: kubernetes
Как указано выше, я должен добавить глаголы: получить, список, смотреть, патчить и обновить в конфигурационную карту вида.
К сожалению, я понятия не имею, как подогнать их под ямл...
Я не понимаю следующий синтаксис:
cluster: []
# - [group/]version/resource
namespace: []
# - [group/]version/resource
path: kubernetes
Но я думаю, что глаголы как-то там вписываются...
2 ответа
Решение
Я бы добавил следующую строфу в файл values.yaml
rbac:
# If true, create & use RBAC resources
#
create: true
rules:
cluster:
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- list
- watch
- patch
- update
Лучше поместить все правила RBAC в шаблон и использовать переключатель для отображения этого шаблона, но также можно поместить правила в values.yaml и отобразить его.
Пример:
В values.yaml создайте такой раздел:
rbac:
enabled: true
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
В шаблоне (например, template/rbac.yaml), отвечающем за создание отображаемого манифеста rbac:
{{- if .Values.rbac.enabled -}}
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: pod-reader
rules:
{{ toYaml .Values.rbac.rules | indent 2 }}
---
....
{{- end -}}
Проверьте выходные манифесты k8s:
$ helm install -f values.yaml . --dry-run --debug