Добавление разрешения на создание для pods / portforward, по-видимому, удаляет разрешение на получение для конфигурационных карт. - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь запустить helm status --tiller-namespace=$NAMESPACE $RELEASE_NAME из контейнера внутри этого пространства имен.

У меня есть роль с правилом

  - apiGroups:
      - ""
    resources:
      - pods
      - configmaps
    verbs:
      - get
      - watch

, привязанная к учетной записи службы по умолчанию. Но я получаю ошибку

Ошибка: pods запрещен: Пользователь "system: serviceaccount: mynamespace: default" не может перечислить ресурс "pods" в группе API "" в пространстве имен "mynamespace"

Итак, я добавил глагол list примерно так:

  - apiGroups:
      - ""
    resources:
      - pods
      - configmaps
    verbs:
      - get
      - watch
      - list

, и теперь я перешел к ошибке cannot create resource "pods/portforward" in API group "". Я не смог найти в документации k8s ничего о том, как назначать разные глаголы разным ресурсам в одной и той же apiGroup, но на основании этого примера Я предполагал, что это должно работать:

  - apiGroups:
      - ""
    resources:
      - pods
      - configmaps
    verbs:
      - get
      - watch
      - list
  - apiGroups:
      - ""
    resources:
      - pods/portforward
    verbs:
      - create

однако Теперь я получаю ошибку cannot get resource "configmaps" in API group "". Примечание. Я запускаю kubectl get cm $CMNAME до . Я запускаю команду helm status.

Так что, похоже, у меня было разрешение на kubectl get cm до Я пытался добавить разрешение на создание pods / portforward.

Может кто-нибудь объяснить мне, пожалуйста?

также на кластере запущена версия k8s

Server Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.7+1.2.3.el7", GitCommit:"cfc2012a27408ac61c8883084204d10b31fe020c", GitTreeState:"archive", BuildDate:"2019-05-23T20:00:05Z", GoVersion:"go1.10.8", Compiler:"gc", Platform:"linux/amd64"}

и версия руля

Server: &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"}

1 Ответ

2 голосов
/ 04 мая 2020

Моя проблема заключалась в том, что я развертывал манифесты этих ролей как часть схемы управления. Однако служебная учетная запись для румпеля, выполняющего развертывание, не имела разрешения create pods/portforward. Таким образом, он не смог предоставить это разрешение и поэтому допустил ошибку при попытке развернуть манифест с ролями. Это означало, что configmap не получил права доступа, поэтому произошла странная ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...