8.5. 3scale 操作器如何标识自定义资源链接的租户
您可以部署 3scale 自定义资源(CR)来管理各种 3scale 对象。一个 3scale CR 链接到一个租户。
如果 3scale Operator 安装在与 3scale 相同的命名空间中,则默认的行为是 3scale CR 链接到该 3scale 实例的默认租户。要将 3scale CR 链接到不同的租户,您可以执行以下操作之一:
在包含 3scale CR 的命名空间中创建
threescale-provider-account
secret。部署 3scale CR 时,Operator 会读取此 secret 来标识 CR 链接的租户。要使 Operator 使用此 secret,需要满足以下条件之一:-
3scale CR 将
spec.providerAccountRef
字段指定为 null。 3scale CR 省略
spec.providerAccountRef
字段。threescale-provider-account
机密标识 CR 链接的租户。secret 必须包含对 3scale 实例的引用,格式为 URL 和凭据,以便以令牌的形式访问该 3scale 实例中的租户。例如:oc create secret generic threescale-provider-account --from-literal=adminURL=https://3scale-admin.example.com --from-literal=token=123456
threescale-provider-account
机密可以标识任何 3scale 实例中的任何租户,只要 HTTP 连接可用。换句话说,3scale CR 和 3scale 实例,其中包含 CR 链接到的租户,也可以位于不同的 OpenShift 集群中。
-
3scale CR 将
在 3scale CR 中,指定
spec.providerAccountRef
,并将它设置为对标识该租户的 OpenShiftSecret
的本地引用的名称。在以下 3scaleDeveloperAccount
CR 示例中,mytenant
是 secret:apiVersion: capabilities.3scale.net/v1beta1 kind: DeveloperAccount metadata: name: developeraccount-simple-sample spec: orgName: Ecorp providerAccountRef: name: mytenant
在 secret 中:
-
adminURL
指定 3scale 实例的 URL,它可以位于任何命名空间中。 token
指定用于访问 3scale 实例中的一个租户的凭据。此租户可以是默认租户,也可以是该实例中的任何其他租户。通常,当部署租户自定义资源时,您会创建此 secret。例如:
apiVersion: v1 kind: Secret metadata: name: mytenant type: Opaque stringData: adminURL: https://my3scale-admin.example.com:443 token: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
-
如果 3scale 操作器无法识别 CR 链接的租户,Operator 会生成错误消息。