6.3. 设置专用命名空间
为防止裸机即服务(BMaaS)工作负载和 OpenShift Container Platform 基础架构之间的意外干扰,请设置专用命名空间。为每个 BMaaS 项目重复此步骤。
先决条件
- 您已配置了可识别的供应商。
流程
在身份提供程序中配置 BMaaS
bmadmin用户,并在 OpenShift 中创建 secret:在身份提供程序中创建
bmadmin用户。例如,如果使用htpasswd身份提供程序,请运行以下命令:$ htpasswd -c -B -b ./users_htpasswd <username> <password>- <username>
-
身份提供程序的用户名。将
<username>替换为您的首选用户名。本例使用bmadmin。 - <password>
-
用户的密码。将
<password>替换为安全的密码。
运行以下命令,在
openshift-config命名空间中创建 secret 来存储身份提供程序配置:$ oc create secret generic <identity_provider_arguments> -n openshift-config例如,在使用
htpasswd身份提供程序时,运行以下命令:$ oc create secret generic htpass-secret --from-file=htpasswd=users_htpasswd -n openshift-config- <identity_provider_arguments>
-
特定于身份提供程序 secret 的参数。将
<identity_provider_arguments>替换为身份提供程序的适当参数。
配置 OAuth 以使用身份提供程序:
运行以下命令来编辑 OAuth 资源:
$ oc edit oauth cluster编辑器会打开并显示 Oauth 资源。
将身份提供程序配置添加到
spec.identityProviders列表中:Expand 表 6.1. 身份提供程序配置示例 类型 Example htpasswd
# ... - name: my_bmaas_provider mappingMethod: claim type: htpasswd htpasswd: fileData: name: <secret> # ...LDAP
# ... - name: my_bmaas_provider mappingMethod: claim type: ldap ldap: attributes: id: - dn email: - mail name: - cn preferredUsername: - uid # ...GitHub
# ... - name: my_bmaas_provider mappingMethod: claim type: GitHub github: ca: name: ca-config-map clientID: {...} clientSecret: name: github-secret hostname: ... organizations: - myorganization1 - myorganization2 teams: - myorganization1/team-a - myorganization2/team-b # ...有关标识提供程序的更多信息,请参阅身份验证和授权。
- 保存并退出编辑器。
运行以下命令来创建 BMaaS
bmadmin用户:$ oc create user <username>- <username>
-
用户名。将
<username>替换为您的用户名。以下示例使用bmadmin作为用户名。
运行以下命令,为 BMaaS 主机创建一个专用的
bmaas命名空间:$ oc new-project <namespace><namespace>-
将 <namespace> 替换为您要使用的命名空间名称。这个示例使用
bmaas。
运行以下命令,将
edit角色分配给bmaas命名空间中的 BMaaSbmadmin用户:$ oc adm policy add-role-to-user edit <username> -n bmaas运行以下命令克隆
baremetal-operator存储库,以获取基于角色的访问控制(RBAC)角色定义:$ git clone -b release-4.20 https://github.com/openshift/baremetal-operator.git对于您要添加的每个角色,运行以下命令来从存储库应用适当的 RBAC 角色 YAML 文件:
$ oc apply -f baremetal-operator/config/base/rbac/<role_filename>.yaml运行以下命令,将自定义 RBAC 角色分配给
bmaas命名空间中的 BMaaSbmadmin用户:$ oc adm policy add-role-to-user <role_name> bmadmin -n bmaas运行以下命令,以
bmadmin用户身份登录:$ oc login <api_server_url>:6443<api_server_url>- Kubernetes API 的 URL。