Может ли вся учетная запись управляемой службы gitlab иметь определенную привязку роли - PullRequest
0 голосов
/ 25 мая 2020
• 1000 Но при запуске конвейера gitlab, создающего его, возникает ошибка, заключающаяся в том, что этот ресурс не может быть создан с помощью
 servicemonitors.monitoring.coreos.com "service-monitor" is forbidden: User "system:serviceaccount:ABC_NAMESPACE:ABC-dev-service-account" cannot get resource "servicemonitors" in API group "monitoring.coreos.com" in the namespace "ABC_NAMESPACE"

. Итак, я обходной путь для одного mircroservice, применяя Role и RoleBinding для одного пространства имен, но делая это для всех действительно хорошо.

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: service_cluster_monitor_reader
rules:
  - apiGroups: ["monitoring.coreos.com"] # "" indicates the core API group
    resources: ["servicemonitors"]
    verbs: ["get", "create", "update", "patch", "delete"]
---
kind: CluserRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: cluster-monitor-binding
subjects:
  - kind: ServiceAccount
    name: gitlab-project-id-dev-service-account
roleRef:
  kind: ClusterRole
  name: service_cluster_monitor_reader
  apiGroup: rbac.authorization.k8s.io

Можно ли присвоить всему пространству имен, созданному gitlab, привязку ролей для получения этих разрешений?

1 Ответ

1 голос
/ 25 мая 2020

Хотя дать это разрешение учетным записям служб только в пространствах имен, созданных с помощью gitlab, нетривиально, вы можете назначить это разрешение для всех учетных записей служб во всех пространствах имен в кластере, используя ниже. разрешение

kubectl auth can-i get servicemonitors --as=system:serviceaccount:ABC_NAMESPACE:ABC-dev-service-account -n ABC_NAMESPACE
...