Menu Close

8.8. テナントカスタムリソースのデプロイ

テナントカスタムリソースは、プロバイダーアカウント とも呼ばれます。

APIManager カスタムリソースを作成すると、3scale をデプロイすることが operator に示されます。デフォルトの 3scale インストール環境には、使用可能なデフォルトのテナントが含まれます。オプションで、その他のテナントを作成してテナントカスタムリソースオブジェクトを作成することができます。

前提条件

3scale インスタンスに新規テナントをデプロイするには、準備手順が必要です。

  1. 3scale マスタークレデンシャルシークレット MASTER_SECRET を取得または作成します。

    テナント管理タスクは、3scale マスターアカウントのクレデンシャルを使用してのみ実行できます (アクセストークンの使用が推奨されます)。以下のオプションを使用できます。

    • テナントリソースが 3scale と同じ namespace に作成される場合には、system-seed と呼ばれるマスターアカウントのクレデンシャルを使用するシークレットがすでに作成されています。
    • テナントリソースが 3scale と同じ namespace に作成されない場合には、マスターアカウントのクレデンシャルでシークレットを作成します。以下のコマンドでは、シークレットの名前は任意です。シークレット名はテナントカスタムリソースで使用されます。

      oc create secret generic system-seed --from-literal=MASTER_ACCESS_TOKEN=<master access token>
  2. 新規テナントの管理アカウントのパスワードを保存する新しいシークレット ADMIN_SECRET を作成します。以下のコマンドでは、シークレットの名前は任意です。シークレット名はテナントカスタムリソースで使用されます。

    oc create secret generic ecorp-admin-secret --from-literal=admin_password=<admin password value>
  3. 3scale マスターアカウントのホスト名 MASTER_HOSTNAME を取得します。operator を使用して 3scale をデプロイする場合、マスターアカウントには、master.${wildcardDomain} のパターンの固定 URL があります。

    • 3scale がインストールされている namespace にアクセスできる場合は、マスターアカウントのホスト名を取得します。

      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 operator は新しいシークレットを作成し、新しいテナントのクレデンシャルをシークレットに保存します。
    • 新しいテナント provider_keyadmin domain url はシークレットに保存されます。
    • シークレットの場所は、tenantSecretRef テナント仕様キーを使用して指定できます。

参照として、作成されたシークレットのコンテンツの例を以下に示します。

apiVersion: v1
kind: Secret
metadata:
  name: tenant-secret
type: Opaque
stringData:
  adminURL: https://my3scale-admin.example.com:443
  token: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

テナントカスタムリソースのフィールドおよび設定可能な値の詳細は、Tenant CRD field reference を参照してください。