values.yaml如何设置RBAC?

How to set RBAC in this values.yaml?

OPA 图表的文件 values.yaml 中,我必须使用以下部分激活 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

如上所述,我必须添加动词:get、list、watch、patch 和 update 到种类 configmap

不幸的是,我不知道如何让它们适合 yaml...


我不明白以下语法:

cluster: []
#     - [group/]version/resource
    namespace: []
#     - [group/]version/resource
    path: kubernetes

但我想动词以某种方式适合那里...

我会在 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