8.11. テナントカスタムリソースのデプロイ
テナントカスタムリソースは、プロバイダーアカウント とも呼ばれます。
APIManager カスタムリソースを作成すると、3scale をデプロイすることが operator に示されます。デフォルトの 3scale インストール環境には、使用可能なデフォルトのテナントが含まれます。オプションで、その他のテナントを作成してテナントカスタムリソースオブジェクトを作成することができます。
前提条件
3scale インスタンスに新規テナントをデプロイするには、準備手順が必要です。
3scale マスタークレデンシャルシークレット MASTER_SECRET を取得または作成します。
テナント管理タスクは、3scale マスターアカウントのクレデンシャルを使用してのみ実行できます (アクセストークンの使用が推奨されます)。以下のオプションを使用できます。
-
テナントリソースが 3scale と同じ namespace に作成される場合には、
system-seed
と呼ばれるマスターアカウントのクレデンシャルを使用するシークレットがすでに作成されています。 テナントリソースが 3scale と同じ namespace に作成されない場合には、マスターアカウントのクレデンシャルでシークレットを作成します。以下のコマンドでは、シークレットの名前は任意です。シークレット名はテナントカスタムリソースで使用されます。
oc create secret generic system-seed --from-literal=MASTER_ACCESS_TOKEN=<master access token>
-
テナントリソースが 3scale と同じ namespace に作成される場合には、
新規テナントの管理アカウントのパスワードを保存する新しいシークレット ADMIN_SECRET を作成します。以下のコマンドでは、シークレットの名前は任意です。シークレット名はテナントカスタムリソースで使用されます。
oc create secret generic ecorp-admin-secret --from-literal=admin_password=<admin password value>
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}"
手順
新規テナントカスタムリソースをデプロイします。
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 operator は新しいシークレットを作成し、新しいテナントのクレデンシャルをシークレットに保存します。
-
新しいテナント
provider_key
とadmin 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 を参照してください。