问题描述
我正在尝试使用Openshift REST-API来获取我的cron-jobs的状态。我是我的命名空间的管理员,但是我没有群集访问权限,因此我无法在群集级别执行任何操作。
# 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-jobs,jobs和pods的状态。
解决方法
您必须将--role-namespace=namespace-of-role
添加到oc policy add-role-to-user
命令中,否则该角色将被视为群集角色。
从文档中
-role-namespace ='':角色所在的名称空间:空表示在群集策略中定义的角色