8.12. 通过部署自定义资源来管理 3scale 开发人员
作为 3scale 管理员,您可以使用自定义资源(CR)来部署将各个开发人员用户分组在一起的开发人员帐户。通过这些帐户,您可以在开发人员门户中组织和管理开发人员对 3scale 管理的 API 的访问权限。
租户可以包含任意数量的开发人员帐户,每个开发人员帐户链接到正好一个租户。开发人员帐户可以包含任意数量的开发人员用户和每个开发人员用户链接到正好一个开发人员帐户。租户计划决定您可以创建的开发人员帐户数量以及每个开发人员帐户中可以分组多少开发人员用户。
若要使用开发人员自定义资源,3scale 操作员必须已安装 3scale。您只能在包含 3scale 操作器的命名空间中部署开发人员自定义资源。部署开发人员自定义资源是使用 3scale 管理门户或 3scale 内部 API 来管理开发人员的替代选择。
通过部署自定义资源创建开发人员帐户或开发人员用户时,您无法使用管理门户或内部 3scale API 来更新这些开发人员帐户或开发人员用户。务必要注意这一点,因为在部署开发人员 CR 后,管理门户在其帐户页面中会显示新的开发人员帐户或新开发人员用户。如果您尝试使用管理门户或 API 更新使用 CR 部署的开发人员帐户或开发人员用户,3scale 操作器将还原更改以反映部署的 CR。这是预期在以后的发行版本中删除的限制。但是,您可以使用管理门户或 API 删除您通过部署 CR 创建的开发人员帐户或开发人员用户。
8.12.1. 前提条件
- 3scale 由 3scale 操作器安装。
-
在
帐户管理
API 范围内具有读写权限的访问令牌,为 3scale 提供管理员特权。
8.12.2. 通过部署 DeveloperAccount 自定义资源来管理 3scale 开发人员帐户
当使用 3scale 操作器安装 3scale 时,您可以部署 DeveloperAccount
和 DeveloperUser
自定义资源(CR)。这些 CR 允许您创建和更新开发人员对 Developer Portal 中 3scale 管理的 API 的访问帐户。
要部署新的 DeveloperAccount
CR,还必须为具有 admin
角色的用户部署 DeveloperUser
CR。此处提供的步骤是部署新的 DeveloperAccount
CR。部署 DeveloperAccount
CR 后,更新或删除它的过程与任何其他 CR 相同。
您只能在包含 3scale Operator 的命名空间中部署 CR。
前提条件
- 了解 3scale 操作器如何标识自定义资源链接的租户。
如果您要创建一个
DeveloperAccount
自定义资源,该资源没有链接到位于同一命名空间中的 3scale 实例中的默认租户,则包含DeveloperAccount
CR 的命名空间包含一个 secret,用于标识DeveloperAccount
CR 链接的租户。secret 的名称是以下之一:-
threescale-provider-account
- 用户定义
此机密包含 3scale 实例的 URL 和令牌,其中包含用于访问 3scale 实例中某一租户的凭据。
-
-
您至少有一位开发人员用户的用户名、密码和电子邮件地址,该用户在新的
DeveloperAccount
CR 中拥有admin
角色。
流程
在包含 3scale 操作器的命名空间中,创建并保存资源文件,以定义一个含有开发人员帐户资源中的
admin
角色的用户用户名和密码的机密。例如,myusername01.yaml
文件可能包含:apiVersion: v1 kind: Secret metadata: name: myusername01 stringData: password: "123456"
创建 secret.例如:
oc create -f myusername01.yaml
对于给定示例,输出为:
secret/myusername01 created
创建并保存一个
.yaml
文件,为拥有admin
角色的用户定义DeveloperUser
CR。3scale 操作器需要此DeveloperUser
CR 来部署新的DeveloperAccount
CR。例如,developeruser01.yaml
文件可能包含:apiVersion: capabilities.3scale.net/v1beta1 kind: DeveloperUser metadata: name: developeruser01 spec: username: myusername01 email: myusername01@example.com passwordCredentialsRef: name: myusername01 role: admin developerAccountRef: name: developeraccount1 providerAccountRef: name: mytenant
在
DeveloperUser
CR 中:-
开发人员用户帐户名称、用户名和电子邮件必须在包含
DeveloperAccount
链接的租户中唯一。 -
您在此指定的开发人员帐户名称必须与在此流程中
部署的 DeveloperAccount
CR 的名称匹配。在创建此DeveloperUser
CR 之前或之后创建DeveloperAccount
CR 都无关紧要。 -
DeveloperUser
CR 链接的租户必须是与指定的DeveloperAccount
CR 链接相同的租户。
-
开发人员用户帐户名称、用户名和电子邮件必须在包含
创建您刚刚定义的资源。例如:
oc create -f developeruser01.yaml
对于给定示例,输出为:
developeruser.capabilities.3scale.net/developeruser01 created
创建并保存定义
DeveloperAccount
CR 的.yaml
文件。在这个.yaml
文件中,spec.OrgName
字段必须指定一个机构名称。例如,developeraccount01.yaml
文件可能包含:apiVersion: capabilities.3scale.net/v1beta1 kind: DeveloperAccount metadata: name: developeraccount01 spec: orgName: Ecorp providerAccountRef: name: mytenant
创建您刚刚定义的资源。例如:
oc create -f developeraccount01.yaml
对于给定示例,输出为:
developeraccount.capabilities.3scale.net/developeraccount01 created
后续步骤
3scale 操作器需要几秒钟时间才能更新 3scale 配置来反映新的或更新的自定义资源。要检查 Operator 是否成功传播自定义资源信息,请检查 DeveloperAccount
自定义资源 status
字段或运行 oc wait
命令,例如:
oc wait --for=condition=Ready --timeout=30s developeraccount/developeraccount1
如果失败,自定义资源的 status
字段指示错误是临时还是永久性的,并提供有助于解决问题的错误消息。
通知任何新的开发人员用户,他们可以登录开发人员门户。您可能还需要传达其登录凭据。
您可以像更新或删除任何其他自定义资源一样更新或删除部署的 DeveloperAccount
自定义资源。但是,当删除 DeveloperAccount
CR 时,3scale 操作器不会实际将其删除。如果您尝试部署一个新的 DeveloperAccount
CR,其名称与您删除的 DeveloperAccount
CR 的名称相同,您会收到一条消息:具有该名称的 DeveloperAccount
CR 已存在。您必须为新的 DeveloperAccount
CR 指定不同的名称。
8.12.3. 通过部署 DeveloperUser 自定义资源来管理 3scale 开发人员用户
当使用 3scale 操作器安装 3scale 时,您可以部署 DeveloperUser
自定义资源(CR)来管理开发人员对 Developer Portal 中 3scale 管理的 API 的访问。此处提供的步骤是部署新的 DeveloperUser
CR。部署 DeveloperUser
CR 后,更新或删除它的过程与任何其他 CR 相同。
您只能在包含 3scale Operator 的命名空间中部署 CR。
前提条件
- 了解 3scale 操作器如何标识自定义资源链接的租户。
至少一个部署的
DeveloperAccount
自定义资源包含至少一个部署的DeveloperUser
CR,用于具有admin 角色的用户
。如果您要创建一个DeveloperUser
自定义资源,该资源没有链接到同一命名空间中的 3scale 实例中的默认租户,则包含DeveloperUser
CR 的命名空间包含一个 secret,用于标识DeveloperUser
CR 链接的租户。secret 的名称是以下之一:-
threescale-provider-account
- 用户定义
此机密包含 3scale 实例的 URL 和令牌,其中包含用于访问 3scale 实例中某一租户的凭据。
-
-
对于新的
DeveloperUser
自定义资源,您有该开发人员的用户名、密码和电子邮件地址。
流程
在包含 3scale 操作器的命名空间中,创建并保存一个资源文件,以定义一个包含开发人员用户的用户名和密码的 secret。例如,
myusername02.yaml
文件可能包含:apiVersion: v1 kind: Secret metadata: name: myusername02 stringData: password: "987654321"
创建 secret.例如:
oc create -f myusername02.yaml
对于给定示例,输出为:
secret/myusername02 created
创建并保存定义
DeveloperUser
CR 的一个.yaml
文件。在spec.role
字段中,指定admin
或member
。例如,developeruser02.yaml
文件可能包含:apiVersion: capabilities.3scale.net/v1beta1 kind: DeveloperUser metadata: name: developeruser02 spec: username: myusername02 email: myusername02@example.com passwordCredentialsRef: name: myusername02 role: member developerAccountRef: name: developeraccount1 providerAccountRef: name: mytenant
在
DeveloperUser
CR 中:-
开发人员用户名(在
metadata.name
字段中指定),用户名和电子邮件必须在包含DeveloperAccount
链接的租户中唯一。 -
developerAccountRef
字段必须指定已部署的DeveloperAccount
CR 的名称。 -
DeveloperUser
CR 链接的租户必须是与指定的DeveloperAccount
CR 链接相同的租户。
-
开发人员用户名(在
创建您刚刚定义的资源。例如:
oc create -f developefuser02.yaml
对于给定示例,输出为:
developeruser.capabilities.3scale.net/developeruser02 created
后续步骤
3scale 操作器需要几秒钟时间才能更新 3scale 配置来反映新的或更新的自定义资源。要检查 Operator 是否成功传播自定义资源信息,请检查 DeveloperUser
自定义资源 status
字段或运行 oc wait
命令,例如:
oc wait --for=condition=Ready --timeout=30s developeruser/developeruser02
如果失败,自定义资源的 status
字段指示错误是临时还是永久性的,并提供有助于解决问题的错误消息。
通知任何新的开发人员用户,他们可以登录开发人员门户。您可能还需要传达其登录凭据。
您可以像更新或删除任何其他自定义资源一样更新或删除部署的 DeveloperUser
自定义资源。但是,当删除 DeveloperUser
CR 时,3scale 操作器不会实际将其删除。如果您尝试部署具有与您删除的 DeveloperUser
CR 相同的帐户名称、用户名或电子邮件的新 DeveloperUser
CR,您会收到 DeveloperUser
CR 已存在的消息。您必须为新的 DeveloperUser
CR 指定不同的开发人员用户帐户名称、用户名或电子邮件。
其他资源