首页 > 解决方案 > Openshift 4 RBAC

问题描述

是)我有的:

  1. Openshift 4.6 的默认安装
  2. 集群中的 3 个主/工作节点
  3. 已配置 OAuth
  4. system-auth 组中的 self-provisioner 角色已被删除

详细问题/目标:为用户分配一个自我供应者角色允许用户创建一个项目和项目内的任何资源,我想要实现的是,一个可以创建项目但没有任何进一步权限的用户/权限在项目中。这甚至可能吗?

Openshift 4.6 的文档表明,任何用户创建项目,用户(请求者)都将成为该项目的管理员,这是因为 Openshift API 在创建项目时将使用默认模板。

我对在哪里进行更改以反映我的目标感到困惑,是模板还是使用任何不同的 RBAC 角色。

先感谢您。

标签: openshiftopenshift-enterprise

解决方案


您需要的是自定义项目模板。看这里https://docs.openshift.com/container-platform/4.6/applications/projects/configuring-project-creation.html#modifying-template-for-new-projects_configuring-project-creation

首先,您需要从 openshift-config 备份一个项目项目模板,说实话我不知道该怎么做。如果有人找到方法,请在答案下发表评论。-看看@Stevencommy 的第一个答案

创建新的项目模板

oc adm create-bootstrap-project-template -o yaml > template.yaml

template.yml配置中

kind: Project
...
    name: ${PROJECT_NAME}

新创建项目的默认用户配置在

- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: <YOUR_USER_WITHOUT_RIGHTS_TO_CREATE_PROJECT>

然后创建模板

oc create -f template.yaml -n openshift-config

更新

oc edit project.config.openshift.io/cluster

那里

spec:
  projectRequestTemplate:
    name: <template_name> 

<template_name>默认是project-request你也可以列出oc get templates -n openshift-config | grep project-request

如果一切顺利,您可以使用oc new-project <your-project>. for项目user应该是<YOUR_USER_WITHOUT_RIGHTS_TO_CREATE_PROJECT>


推荐阅读