8.11. 部署租户自定义资源

租户自定义资源也称为 Provider 帐户

创建 APIManager 自定义资源表示要部署 3scale 的 Operator。默认 3scale 安装包括可供使用的默认租户。另外,您可以创建其他租户创建租户自定义资源对象。

先决条件

要在 3scale 实例中部署新租户,您需要一些准备步骤:

  1. 获取或创建 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>
  2. 创建新 secret 以存储新租户的 admin 帐户的密码:ADMIN_SECRET.在此命令中,机密的名称为可选。机密名称将在租户自定义资源中使用。

    oc create secret generic ecorp-admin-secret --from-literal=admin_password=<admin password value>
  3. 获取 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}"

流程

  1. 部署新的租户自定义资源:

    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
  2. 创建租户资源:

    oc create -f <yaml-name>
    • 此命令会在 3scale 解决方案中触发新租户的创建。
    • 3scale 操作器将创建新机密,并将新租户凭据存储在机密中。
    • 新租户 provider_keyadmin 域 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 参考