#kubernetes #openshift #rbac #openshift-enterprise #azure-rbac
#kubernetes #openshift #rbac #openshift-корпоративный #azure-rbac
Вопрос:
Я пытаюсь использовать Openshift REST-API для получения статуса моих cron-заданий. Я являюсь администратором своего пространства имен, но у меня нет доступа к кластеру, поэтому я ничего не могу сделать на уровне кластера.
Теперь, чтобы получить статус, я сначала создаю роль :
# oc create role podreader --verb=get --verb=list --verb=watch --resource=pods,cronjobs.batch,jobs.batch
role.rbac.authorization.k8s.io/podreader created
Но когда я пытаюсь добавить роль в учетную запись службы, это не удается.
# oc create serviceaccount nagios
# oc policy add-role-to-user podreader system:serviceaccount:uc-immoscout-dev:nagios
Warning: role 'podreader' not found
Error from server (NotFound): clusterroles.rbac.authorization.k8s.io "podreader" not found
Моя главная цель — получить статус моих cron-заданий, заданий и модулей, которые я планирую.
Ответ №1:
Вам придется добавить --role-namespace=namespace-of-role
в oc policy add-role-to-user
команду, иначе роль будет рассматриваться как роль кластера.
Из документов:
—role-namespace=»: пространство имен, в котором расположена роль: пустое означает роль, определенную в кластерной политике
Комментарии:
1. Большое спасибо за поддержку. Роль добавлена правильно, но я все еще не могу получить статус моего cronjob. «статус»: «Сбой», «сообщение»: «cronjobs.batch «mycronjob» запрещен: Пользователь «система: учетная запись службы: myproject-пространство имен: nagios » не удается получить cronjobs.batch / status в пространстве имен «myproject-пространство имен «: не соответствует политике RBAC», «группа»: «пакет», «вид»: «cronjobs» «код»: 403 Используемые команды: # oc serviceaccounts получает токен nagios # curl -k -H «Авторизация: $ ТОКЕН на предъявителя» -H ‘Принять: application/json’ https://$ENDPOINT/api/batch/v2alpha1/пространства имен/$NAMESPACE/cronjobs
2. Я думаю, вам следует создать еще один вопрос для этого.