8.12. カスタムリソースのデプロイによる 3scale 開発者の管理


3scale の管理者は、カスタムリソース (CR) を使用して、個別の開発者ユーザーをグループ化する開発者アカウントをデプロイすることができます。これらのアカウントにより、開発者ポータルで 3scale が管理する API への開発者アクセスを整理および管理できます。

テナントには、任意の数の開発者アカウントを含めることができ、各開発者アカウントは必ず 1 つのテナントにリンクされます。開発者アカウントには、任意の数の開発者ユーザーを含めることができ、各開発者ユーザーは 1 つの開発者アカウントにリンクします。テナントプランは、作成できる開発者アカウントの数と、各開発者アカウントにグループ化できる開発者ユーザーの数の制限を決定します。

開発者カスタムリソースを使用するには、3scale が 3scale operator によってインストールされている必要があります。開発者カスタムリソースは、3scale Operator が含まれる namespace にのみデプロイできます。開発者カスタムリソースのデプロイは、別の開発者の管理方法で、3scale 管理ポータルまたは 3scale 内部 API を使用します。

重要

カスタムリソースをデプロイして開発者アカウントまたは開発者ユーザーを作成する場合、管理ポータルまたは内部 3scaleAPI を使用してそれらの開発者アカウントまたは開発者ユーザーを更新することはできません。開発者 CR をデプロイした後、管理者ポータルの アカウント ページに新しい開発者アカウントまたは新しい開発者ユーザーが表示されるため、注意することが重要となります。管理ポータルまたは API を使用して CR でデプロイされた開発者アカウントまたは開発者ユーザーを更新しようとすると、3scale Operator はデプロイされた CR を反映するために変更を元に戻します。これは、今後のリリースで削除される予定の制限です。ただし、管理ポータルまたは API を使用して、CR をデプロイして作成した開発者アカウントまたは開発者ユーザーを削除することができます。

8.12.1. 前提条件

  • 3scale が 3scale operator によってインストールされている。
  • Account Management API スコープの読み取りおよび書き込み権限を持つアクセストークン (3scale の管理者権限が提供される)

8.12.2. DeveloperAccount カスタムリソースのデプロイによる 3scale の開発者アカウントの管理

3scale operator を使用して 3scale をインストールする場合は、DeveloperAccount および DeveloperUser カスタムリソース (CR) をデプロイできます。これらの CR により、開発者ポータルで 3scale が管理する API に開発者がアクセスするためのアカウントを作成および更新できます。

新規の DeveloperAccount CR をデプロイするには、admin ロールを持つユーザーの DeveloperUser CR もデプロイする必要があります。ここで提供される手順は、新規 DeveloperAccount CR をデプロイするためのものです。DeveloperAccount CR のデプロイ後、更新または削除する手順は他の CR と同じです。

CR は 3scale Operator が含まれる namespace にのみデプロイできます。

前提条件

  • 3scale Operator がカスタムリソースのリンク先となるテナントを識別する方法 を理解している。
  • 同じ namespace にある 3scale インスタンスのデフォルトのテナントにリンクしない DeveloperAccount カスタムリソースを作成する場合には、DeveloperAccount CR が含まれる namespace には、DeveloperAccount CR がリンクするテナントを特定するシークレットを追加する。シークレットの名前は以下のいずれかになります。

    • threescale-provider-account
    • ユーザー定義

    このシークレットには、3scale インスタンスの URL と、3scale インスタンスの 1 つのテナントにアクセスするためのクレデンシャルが含まれるトークンが含まれます。

  • 新規 DeveloperAccount CR の admin ロールを持つ少なくとも 1 人の開発者ユーザーのユーザー名、パスワード、およびメールアドレスを把握している。

手順

  1. 3scale operator が含まれる namespace で、新しい開発者アカウントリソースで admin ロールを持つ開発者ユーザーのユーザー名とパスワードが含まれるシークレットを定義するリソースファイルを作成して保存します。たとえば、myusername01.yaml ファイルには以下が含まれます。

    apiVersion: v1
    kind: Secret
    metadata:
      name: myusername01
    stringData:
      password: "123456"
  2. シークレットを作成します。以下に例を示します。

    oc create -f myusername01.yaml

    この例では、出力は以下のようになります。

    secret/myusername01 created
  3. admin ロールを持つ開発者の DeveloperUser CR を定義する a .yaml ファイルを作成し、保存します。3scale operator が新規 DeveloperAccount CR をデプロイするには、この DeveloperUser 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 の名前に一致する必要があります。DeveloperAccount CR の作成は、この DeveloperUser CR を作成する前でも後でもかまいません。
    • DeveloperUser CR がリンクするテナントは、指定された DeveloperAccount CR リンク先と同じテナントである必要があります。
  4. 定義したばかりのリソースを作成します。以下に例を示します。

    oc create -f developeruser01.yaml

    この例では、出力は以下のようになります。

    developeruser.capabilities.3scale.net/developeruser01 created
  5. DeveloperAccount CR を定義する .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 Operator が 3scale 設定を更新して、新規または更新されたカスタムリソースを反映するには、数秒かかります。Operator がカスタムリソース情報を正常に伝搬しているかどうかを確認するには、DeveloperAccount カスタムリソースの status フィールドを確認するか、以下のように oc wait コマンドを実行します。

oc wait --for=condition=Ready --timeout=30s developeraccount/developeraccount1

失敗した場合、カスタムリソースの status フィールドは、エラーが一時的または永続的であるかどうかを示し、問題の修正に役立つエラーメッセージを提供します。

新しい開発者ユーザーに、開発者ポータルにログインできることを通知します。また、ログインクレデンシャルを伝える必要がある場合もあります。

他のカスタムリソースを更新または削除するのと同じ様に、デプロイされた DeveloperAccount カスタムリソースを更新または削除することができます。ただし、DeveloperAccount CR を削除すると、3scale operator は実際には削除しません。削除した DeveloperAccount CR と同じ名前の新しい DeveloperAccount CR をデプロイしようとすると、その名前の DeveloperAccount CR がすでに存在することを示すメッセージを受信します。新規の DeveloperAccount CR に異なる名前を指定する必要があります。

8.12.3. DeveloperUser カスタムリソースのデプロイによる 3scale 開発者ユーザーの管理

3scale operator を使用して 3scale をインストールする場合、Developer Portal で 3scale 管理の API への開発者アクセスを管理するために、DeveloperUser カスタムリソース (CR) をデプロイできます。ここで提供される手順は、新規 DeveloperUser CR をデプロイするためのものです。DeveloperUser CR のデプロイ後、更新または削除する手順は他の CR と同じです。

CR は 3scale Operator が含まれる namespace にのみデプロイできます。

前提条件

  • 3scale Operator がカスタムリソースのリンク先となるテナントを識別する方法 を理解している。
  • admin ロールを持つユーザー用に、デプロイされた DeveloperUser CR が少なくとも 1 つ含まれる DeveloperAccount カスタムリソースが少なくとも 1 つデプロイされている。同じ namespace にある 3scale インスタンスのデフォルトのテナントにリンクしない DeveloperUser カスタムリソースを作成する場合、DeveloperUser CR が含まれる namespace には、DeveloperUser CR がリンクするテナントを特定するシークレットを含める。シークレットの名前は以下のいずれかになります。

    • threescale-provider-account
    • ユーザー定義

    このシークレットには、3scale インスタンスの URL と、3scale インスタンスの 1 つのテナントにアクセスするためのクレデンシャルが含まれるトークンが含まれます。

  • 新しい DeveloperUser カスタムリソース用に、その開発者のユーザー名、パスワード、およびメールアドレスを把握している。

手順

  1. 3scale Operator が含まれる namespace で、開発者ユーザーのユーザー名とパスワードが含まれるシークレットを定義するリソースファイルを作成し、保存します。たとえば、myusername02.yaml ファイルには以下が含まれます。

    apiVersion: v1
    kind: Secret
    metadata:
      name: myusername02
    stringData:
      password: "987654321"
  2. シークレットを作成します。以下に例を示します。

    oc create -f myusername02.yaml

    この例では、出力は以下のようになります。

    secret/myusername02 created
  3. DeveloperUser CR を定義する .yaml ファイルを作成および保存します。spec.role フィールドには admin または member を指定します。たとえば、developeruser02.yaml ファイルには以下が含まれる場合があります。

    apiVersion: capabilities.3scale.net/v1beta1
    kind: DeveloperUser
    metadata:
      name: developeruser02
    spec:
      username: myusername02
      email: myusername02@example.com
      passwordCredentialsRef:
        name: myusername02
      role: member
      developerAccountRef:
        name: developeraccount1
      providerAccountRef:
        name: mytenant

    DeveloperUser CR では:

    • 開発者のユーザー名 (metadata.name フィールドで指定)、ユーザー名、および電子メールは、含んでいる DeveloperAccount のリンク先のテナントで一意である必要があります。
    • developerAccountRef フィールドには、デプロイされた DeveloperAccount CR の名前を指定する必要があります。
    • DeveloperUser CR がリンクするテナントは、指定された DeveloperAccount CR リンク先と同じテナントである必要があります。
  4. 定義したばかりのリソースを作成します。以下に例を示します。

    oc create -f developefuser02.yaml

    この例では、出力は以下のようになります。

    developeruser.capabilities.3scale.net/developeruser02 created

次のステップ

3scale Operator が 3scale 設定を更新して、新規または更新されたカスタムリソースを反映するには、数秒かかります。Operator がカスタムリソース情報を正常に伝搬しているかどうかを確認するには、DeveloperUser カスタムリソースの status フィールドを確認するか、以下のように oc wait コマンドを実行します。

oc wait --for=condition=Ready --timeout=30s developeruser/developeruser02

失敗した場合、カスタムリソースの status フィールドは、エラーが一時的または永続的であるかどうかを示し、問題の修正に役立つエラーメッセージを提供します。

新しい開発者ユーザーに、開発者ポータルにログインできることを通知します。また、ログインクレデンシャルを伝える必要がある場合もあります。

他のカスタムリソースを更新または削除するのと同じ様に、デプロイされた DeveloperUser カスタムリソースを更新または削除することができます。ただし、DeveloperUser CR を削除すると、3scale operator は実際には削除しません。削除した DeveloperUser CR と同じアカウント名、ユーザー名、または電子メールの新しい DeveloperUser CR をデプロイしようとすると、DeveloperUser CR がすでに存在することを示すメッセージを受信します。新規の DeveloperUser CR には、別の開発者ユーザーアカウント名、ユーザー名、または電子メールを指定する必要があります。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.