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


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

APIManager カスタムリソース (CR) をデプロイする場合には、3scale operator を使用して 3scale をデプロイします。デフォルトの 3scale インストール環境には、使用可能なデフォルトのテナントが含まれます。オプションで、Tenant カスタムリソースをデプロイして他のテナントを作成できます。

前提条件

  • 一般的な前提条件
  • 新規 Tenant CR の namespace に対して create パーミッションが指定された OpenShift ロール。

手順

  1. 3scale がインストールされている OpenShift プロジェクトに移動します。たとえば、プロジェクトの名前が my-3scale-project の場合は、以下のコマンドを実行します。

    oc project my-3scale-project
  2. 新規テナントの 3scale 管理アカウントのパスワードが含まれるシークレットを作成します。Tenant CR の定義で、passwordCredentialsRef 属性をこのシークレットの名前に設定します。ステップ 4 の Tenant CR 定義の例では、ADMIN_SECRET はこのシークレットのプレースホルダーになります。以下のコマンドは、シークレットの作成例を示しています。

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

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

    oc get routes --field-selector=spec.to.name==system-master -o jsonpath="{.items[].spec.host}"

    ステップ 4 の Tenant CR 定義の例では、MASTER_HOSTNAME はこの名前のプレースホルダーです。

  4. 新しい Tenant カスタムリソースを定義するファイルを作成します。

    Tenant CR の定義で、masterCredentialsRef.name 属性を system-seed に設定します。テナント管理タスクは、3scale マスターアカウントのクレデンシャルを使用してのみ実行できます (アクセストークンの使用が推奨されます)。APIManager CR のデプロイメント時に、Operator はマスターアカウントの認証情報が含まれるシークレットを作成します。シークレットの名前は system-seed です。

    3scale がクラスター全体のモードでインストールされている場合には、3scale が含まれる namespace とは異なる namespace に新規テナントをデプロイできます。これには、masterCredentialsRef.namespace を 3scale インストールが含まれる namespace に設定します。

    以下の例では、3scale がクラスター全体のモードにインストールされていることを前提とします。

    apiVersion: capabilities.3scale.net/v1alpha1
    kind: Tenant
    metadata:
      name: ecorp-tenant
      namespace: <namespace-in-which-to-create-Tenant-CR>
    spec:
      username: admin
      systemMasterUrl: https://<MASTER_HOSTNAME>
      email: admin@ecorp.com
      organizationName: ECorp
      masterCredentialsRef:
        name: system-seed
        namespace: <namespace-where-3scale-is-deployed>
      passwordCredentialsRef:
        name: <ADMIN_SECRET>
      tenantSecretRef:
        name: tenant-secret
  5. Tenant カスタムリソースを作成します。たとえば、直前のサンプル CR を mytenant.yaml ファイルに保存した場合は、以下を実行します。

    oc create -f mytenant.yaml

    このコマンドを実行すると、以下のようになります。

    • operator は、spec.systemMasterUrl 属性を設定して、3scale インストールのテナントをデプロイします。
    • 3scale operator は、新規テナントの認証情報が含まれるシークレットを作成します。シークレットの名前は、tenantSecretRef.name 属性に指定した値です。このシークレットには、新規テナントの管理者 URL およびアクセストークンが含まれます。

      参考として、Operator が作成するシークレットの例を以下に示します。

      apiVersion: v1
      kind: Secret
      metadata:
        name: tenant-secret
      type: Opaque
      stringData:
        adminURL: https://my3scale-admin.example.com:443
        token: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    • 新規テナントにリンクする ProductBackendOpenAPIDeveloperAccount、および DeveloperUser CR をデプロイできるようになりました。

Tenant カスタムリソースのデプロイ

デプロイされた Tenant カスタムリソースを削除するには、リソース定義が含まれるファイルの名前を指定します。以下に例を示します。

oc delete -f mytenant.yaml

または、oc delete コマンドを実行して Tenant CR に名前を指定し、テナントの namespace を指定することもできます。以下に例を示します。

oc delete tenant.capabilities.3scale.net mytenant -n mynamespace

テナントを削除すると、3scale operator は以下を行います。

  • 3scale インストール環境からテナントを非表示にする。
  • テナントが所有するデプロイ済みのカスタムリソースを削除する。
  • 15 日後に削除するテナントをマークする。

テナントの削除後に復元することはできません。15 日の間に、テナントが所有するリソースをすべてバックアップしてください。この操作は、管理ポータルでのみ実行できます。3scale は 15 日後にテナントを削除します。データ保護法に準拠するために、今後の参照用に一部のデータが保持されます。

重要

Tenant CR を使用してテナントをデプロイした場合は、管理ポータルでテナントを削除しないでください。これを実行する場合に、Operator は削除しようとしているテナントの CR を使用して別のテナントを作成します。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.