Menu Close

6.8.2. 通过部署 DeveloperAccount 自定义资源来管理 3scale 开发人员帐户

当使用 3scale 操作器安装 3scale 时,您可以部署 DeveloperAccountDeveloperUser 自定义资源(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 角色。

步骤

  1. 在包含 3scale 操作器的命名空间中,创建并保存资源文件,以定义一个含有开发人员帐户资源中的 admin 角色的用户用户名和密码的机密。例如,my username01.yaml 文件可能包含:

    apiVersion: v1
    kind: Secret
    metadata:
      name: myusername01
    stringData:
      password: "123456"
  2. 创建 secret.例如:

    oc create -f myusername01.yaml

    对于给定示例,输出为:

    secret/myusername01 created
  3. 创建并保存 a .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 的名称匹配。在创建此 Developer User CR 之前或之后创建 Developer Account CR 都无关紧要。
    • DeveloperUser CR 链接的租户必须是与指定的 DeveloperAccount CR 链接相同的租户。
  4. 创建您刚刚定义的资源。例如:

    oc create -f developeruser01.yaml

    对于给定示例,输出为:

    developeruser.capabilities.3scale.net/developeruser01 created
  5. 创建并保存定义 DeveloperAccount CR 的 a .yaml 文件。在这个 .yaml 文件中,spec.OrgName 字段必须指定一个机构名称。例如,developeraccount01.yaml 文件可能包含:

    apiVersion: capabilities.3scale.net/v1beta1
    kind: DeveloperAccount
    metadata:
      name: developeraccount01
    spec:
      orgName: Ecorp
      providerAccountRef:
        name: mytenant
  6. 创建您刚刚定义的资源。例如:

    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 指定不同的名称。