8.11. 部署租户自定义资源
租户
自定义资源也称为 Provider Account。
当您部署使用 3scale Operator 部署 3scale 的 APIManager
自定义资源(CR)时。默认 3scale 安装包括可供使用的默认租户。另外,您可以通过部署租户
自定义资源来创建其他租户。
前提条件
- 一般先决条件
-
在新的
租户
CR 命名空间中具有create
权限的 OpenShift 角色。
流程
进入到安装 3scale 的 OpenShift 项目。例如,如果项目名称是
my-3scale-project
,请运行以下命令:oc project my-3scale-project
创建一个包含新租户 3scale admin 帐户密码的 secret。在
Tenant
CR 的定义中,将passwordCredentialsRef
属性设置为此 secret 的名称。在第 4 步定义的租户
CR 示例中,ADMIN_SECRET
是此 secret 的占位符。以下命令提供了创建 secret 的示例:oc create secret generic ecorp-admin-secret --from-literal=admin_password=<admin password value>
获取 3scale master 帐户主机名。当您使用操作器部署 3scale 时,master 帐户具有具有此模式的固定 URL:
master.${wildcardDomain}
如果可以访问安装 3scale 的命名空间,您可以使用这个命令获取 master 帐户主机名:
oc get routes --field-selector=spec.to.name==system-master -o jsonpath="{.items[].spec.host}"
在第 4 步中定义
租户
CR 的示例中,MASTER_HOSTNAME
是此名称的占位符。创建定义新
租户
自定义资源的文件。在
Tenant
CR 的定义中,将masterCredentialsRef.name
属性设置为system-seed
。您只能使用 3scale master 帐户凭证(最好使用访问令牌)来执行租户管理任务。在部署APIManager
CR 时,Operator 会创建包含 master 帐户凭证的 secret。secret 的名称是system-seed
。如果以 cluster wide 的形式安装了 3scale,您可以在与包含 3scale 的命名空间不同的命名空间中部署新租户。要做到这一点,将
masterCredentialsRef.namespace
设置为包含 3scale 安装的命名空间。以下示例假设以 cluster wide 模式下安装 3scale。
apiVersion: capabilities.3scale.net/v1alpha1 kind: Tenant metadata: name: ecorp-tenant namespace: <namespace-in-which-to-create-Tenant-CR> spec: username: admin systemMasterUrl: https://<MASTER_HOSTNAME> email: admin@ecorp.com organizationName: ECorp masterCredentialsRef: name: system-seed namespace: <namespace-where-3scale-is-deployed> passwordCredentialsRef: name: <ADMIN_SECRET> tenantSecretRef: name: tenant-secret
创建
Tenant
自定义资源。例如,如果您在mytenant.yaml
文件中保存了前面的示例 CR,您将运行以下命令:oc create -f mytenant.yaml
因此:
-
Operator 通过设置
spec.systemMasterUrl
属性在 3scale 安装中部署一个租户。 3scale operator 创建一个 secret,其中包含新租户的凭证。secret 的名称是您为
tenantSecretRef.name
属性指定的值。此 secret 包含新的租户的 admin URL 和访问令牌。作为参考,这是 Operator 创建的 secret 示例:
apiVersion: v1 kind: Secret metadata: name: tenant-secret type: Opaque stringData: adminURL: https://my3scale-admin.example.com:443 token: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
-
现在,您可以部署链接到您的新组合的
Product
,Backend
,OpenAPI
,DeveloperAccount
, 和DeveloperUser
CR。
-
Operator 通过设置
删除 租户
自定义资源
要删除部署的 租户
自定义资源,您可以指定包含资源定义的文件的名称,例如:
oc delete -f mytenant.yaml
另外,您可以运行 oc delete
命令,在 租户
CR 中指定名称,并指定租户的命名空间。例如:
oc delete tenant.capabilities.3scale.net mytenant -n mynamespace
当删除租户时,3scale Operator 会进行以下操作:
- 从 3scale 安装中隐藏租户。
- 删除租户拥有的部署自定义资源。
- 标记要在 15 天后删除的租户。
删除租户后,您无法恢复它。您有 15 天时间来备份所有拥有租户的资源,并且只能在管理门户中执行此操作。15 天后,3scale 删除租户。为了遵守数据保护法律,一些数据将保留下来以备将来参考。
如果您使用租户 CR 部署了该租户,请不要在管理门户中删除 租户
。如果这样做,Operator 会将 CR 用于您要删除的租户。
其他资源