8.11. 部署租户自定义资源
租户自定义资源也称为 Provider 帐户。
创建 APIManager 自定义资源表示要部署 3scale 的 Operator。默认 3scale 安装包括可供使用的默认租户。另外,您可以创建其他租户创建租户自定义资源对象。
先决条件
要在 3scale 实例中部署新租户,您需要一些准备步骤:
获取或创建 3scale master 凭证 secret:MASTER_SECRET
您只能使用 3scale master 帐户凭据(最好是访问令牌)来执行租户管理任务。您有以下选项:
-
如果租户资源是在与 3scale 相同的命名空间中创建的,则具有 master 帐户凭证的机密已创建好,它称为
system-seed
。 如果没有在与 3scale 相同的命名空间中创建租户资源,请使用 master 帐户凭证创建一个 secret。在此命令中,机密的名称为可选。secret 名称将在租户自定义资源中使用:
oc create secret generic system-seed --from-literal=MASTER_ACCESS_TOKEN=<master access token>
-
如果租户资源是在与 3scale 相同的命名空间中创建的,则具有 master 帐户凭证的机密已创建好,它称为
创建新 secret 以存储新租户的 admin 帐户的密码:ADMIN_SECRET.在此命令中,机密的名称为可选。机密名称将在租户自定义资源中使用。
oc create secret generic ecorp-admin-secret --from-literal=admin_password=<admin password value>
获取 3scale master 帐户主机名:MASTER_HOSTNAME.当您使用操作器部署 3scale 时,master 帐户具有具有此模式的固定 URL:
master.${wildcardDomain}
如果您可以访问安装 3scale 的命名空间,获得 master 帐户主机名:
oc get routes --field-selector=spec.to.name==system-master -o jsonpath="{.items[].spec.host}"
流程
部署新的租户自定义资源:
apiVersion: capabilities.3scale.net/v1alpha1 kind: Tenant metadata: name: ecorp-tenant spec: username: admin systemMasterUrl: https://<MASTER_HOSTNAME> email: admin@ecorp.com organizationName: ECorp masterCredentialsRef: name: <MASTER_SECRET> passwordCredentialsRef: name: <ADMIN_SECRET*> tenantSecretRef: name: tenant-secret
创建租户资源:
oc create -f <yaml-name>
- 此命令会在 3scale 解决方案中触发新租户的创建。
- 3scale 操作器将创建新机密,并将新租户凭据存储在机密中。
-
新租户
provider_key
和admin 域 url
将存储在机密中。 -
可以使用
tenantSecretRef
租户规格键指定 secret 位置。
作为参考,这是创建的 secret 内容示例:
apiVersion: v1 kind: Secret metadata: name: tenant-secret type: Opaque stringData: adminURL: https://my3scale-admin.example.com:443 token: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
有关租户自定义资源字段和可能值的详情,请参阅 Tenant CRD 参考。