Как предоставить всем учетным записям службы Kubernetes доступ к определенному пространству имен? - PullRequest
1 голос
/ 10 ноября 2019

У меня есть кластер Kubernetes с поддержкой RBAC в GCP

. Имеется одно пространство имен для Tiller и несколько для служб

Прямо сейчас я могу назначить роль читателя для конкретной учетной записи службы, учитывая ее полное имя

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
  name: tiller-reader
  namespace: tiller
rules:
  - apiGroups: [""]
    resources: ["pods"]
    verbs:
    - "get"
    - "watch"
    - "list"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: tiller-reader-role-binding
  namespace: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: tiller-reader
subjects:
  - apiGroup: rbac.authorization.k8s.io
    kind: User
    name: system:serviceaccount:my-namespace-1:my-namespace-1-service-account

Пространства имен и учетные записи Service создаются динамически . Как мне автоматически предоставить всем учетным записям служб доступ к пространству имен Tiller, например: для получения пакетов?

1 Ответ

3 голосов
/ 10 ноября 2019

для предоставления роли всем учетным записям служб необходимо использовать систему групп: учетные записи служб.

вы можете попробовать следующую конфигурацию:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
  name: tiller-reader
  namespace: tiller
rules:
  - apiGroups: [""]
    resources: ["pods"]
    verbs:
    - "get"
    - "watch"
    - "list"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: tiller-reader-role-binding
  namespace: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: tiller-reader
subjects:
  - apiGroup: rbac.authorization.k8s.io
    kind: Group
    name: system:serviceaccounts
...