VMware Aria Automation クラウド管理者は、コマンド ライン インターフェイスを使用してクラウド使用量インターフェイス (CCI) へのアクセスを有効にし、ガバナンス構造を構成できます。コマンド ライン インターフェイスは、Kubernetes コマンドライン ツールまたは kubectl を使用します。

CLI を使用して実行できるアクションの完全なリストについては、「クラウド使用インターフェイスの Kubernetes API リファレンス」を参照してください。

前提条件

  • スーパーバイザー クラスタが vCenter インスタンスで有効になっていて、VMware Aria Automation に登録されていることを確認します。
  • 最低でも Automation Service Broker の組織メンバーで、VMware Aria Automation または Automation Assembler の管理者サービス ロールを保有している必要があります。
  • 以下のことを確認します。
    • CCI kubectl プラグインをダウンロードしている。
    • 管理者ユーザーの API トークンを取得するか、ユーザー パスワードを保存する変数を定義している。
    • -t オプションを指定したトークンを使用するか、-u オプションを指定した管理者認証情報を使用して CCI サーバにログインし、デフォルトのコンテキストを CCI に変更している。
  • Automation AssemblervCenter Server クラウド アカウントが追加されていることを確認します。

上記の前提条件の詳細については、「クラウド使用量インターフェイスの設定と構成」を参照してください。

手順 1:プロジェクトとプロジェクト ロールのバインドの作成

Automation ユーザーをグループ化し、インフラストラクチャ リソースへのアクセスを設定するには、プロジェクトとプロジェクト ロールのバインドを作成します。

注: ユーザー インターフェイスを使用してプロジェクトとプロジェクト ロールのバインドを作成するには、「 Automation Assembler 開発チームのプロジェクトを追加する方法」を参照してください。
  1. プロジェクトを作成します。
    kubectl create -f project.yaml
    project.yaml ファイルの例。
    apiVersion: project.cci.vmware.com/v1alpha1
    kind: Project
    metadata:
      name: <project_name>
    spec:
      description: <description_of_project>
      sharedResources: true
    
  2. プロジェクト ロールのバインドを作成して、作成されたプロジェクト内でユーザーまたはグループにロールを割り当てます。
    kubectl create -f projectrolebinding.yaml
    次の projectrolebinding.yaml ファイルの例では、 admin プロジェクト ロールを持つユーザーを追加します。プロジェクト ロールの値は、 adminview、または edit です。
    apiVersion: authorization.cci.vmware.com/v1alpha1
    kind: ProjectRoleBinding
    metadata:
      name: cci:user:vmware.com:<user_alias>
      namespace: <project_name>
    roleRef:
      apiGroup: authorization.cci.vmware.com
      kind: ProjectRole
      name: admin
    subjects:
    - kind: User
      name: <[email protected]>

手順 2:リージョンの作成

リージョンを作成して、スーパーバイザーをそのリージョンに割り当てられるようにします。

kubectl create -f region.yaml
region.yaml ファイルの例。
apiVersion: topology.cci.vmware.com/v1alpha1
kind: Region
metadata:
  name: <region_name>
spec:
  description: <description_of_region>

手順 3:スーパーバイザーとリージョンの関連付け

スーパーバイザーをリージョンに関連付けるには、更新するスーパーバイザーを見つけて、名前空間の配置に使用されるリージョンとラベルを追加します。

  1. 更新するスーパーバイザーを見つけるには、スーパーバイザーを一覧表示します。スーパーバイザー リソースは、vCenter Server のデータ収集後に表示されます。
    kubectl -n cci-config get supervisors
    結果の例を次に示します。
    NAME                             AGE
    demo-self-service:domain-c50     75d
    adminannie-vcenter:domain-c8     5d18h
    scale-test-vc-01:domain-c8       56d
  2. スーパーバイザー adminannie-vcenter:domain-c8 を更新します。
    kubectl -n cci-config edit supervisor adminannie-vc:domain-c8
    次の例には、 metadata.labels のキーと値のペアと spec.regionNames リージョンが含まれています。 environment: testing ラベルと fipsMode: strict ラベルを使用して、スーパーバイザー配置の決定に役立てることができます。
    apiVersion: infrastructure.cci.vmware.com/v1alpha1
    kind: Supervisor
    metadata:
      labels:
        environment: testing
        fipsMode: strict
      name: adminannie-vc:domain-c8
      namespace: cci-config
      uid: ccd3d154-6404-47b7-8786-bb2d49ad9f5d
    spec:
      cloudAccountName: adminannie-vc
      externalId: domain-c8
      externalName: wcp-test-dc-cluster
      regionNames:
        - <region_name>
Automation Assembler または Automation Service Broker のユーザー インターフェイスでスーパーバイザー リージョンのリストを確認するには、次の場所に移動します。
  • [インフラストラクチャ] > [構成] > [スーパーバイザー リージョン]
  • または、[インフラストラクチャ] > [管理] > [プロジェクト] にあるプロジェクトの [スーパーバイザー リージョン] タブをクリックします
管理者構造の表示を参照してください。

手順 4:リージョン バインドとリージョン バインド構成の作成

プロジェクトのユーザーがリージョン内のスーパーバイザーにスーパーバイザー名前空間を作成できるように、リージョン バインドとリージョン バインド構成を作成します。

  1. リージョン バインドを作成します。
    kubectl create -f regionbinding.yaml
    regionbinding.yaml ファイルの例。
    apiVersion: topology.cci.vmware.com/v1alpha1
    kind: RegionBinding
    metadata:
      name: <region_name>
      namespace: <project_name>

    リージョン バインドにはスーパーバイザーの配置の設定が含まれていないため、リージョン バインド構成も作成する必要があります。

  2. 作成したすべてのリージョン バインドに対して、リージョン バインド構成を作成します。スーパーバイザーの追加のフィルタリングに使用される一致式を含めることができます。スーパーバイザー ラベルは、リージョン内のスーパーバイザーのサブセットに対してスーパーバイザー名前空間の配置を許可するために使用されます。
    kubectl create -f regionbindingconfig.yaml
    次の regionbindingconfig.yaml ファイルの例では、 testing 環境ラベルに一致するすべてのスーパーバイザーが、そのプロジェクトとリージョンで作成されたスーパーバイザー名前空間をホストできます。
    apiVersion: topology.cci.vmware.com/v1alpha1
    kind: RegionBindingConfig
    metadata:
      name: <region_name>
      namespace: <project_name>
    spec:
      supervisorSelector:
        matchExpressions:
          - key: environment
            operator: In
            values:
              - testing

手順 5:スーパーバイザー名前空間クラスの作成およびスーパーバイザー名前空間クラス構成の追加

作成時に名前空間の設定のカスタマイズに使用できるオプションのパラメータを使用して名前空間テンプレートを定義するには、スーパーバイザー名前空間クラスを作成します。次に、スーパーバイザー名前空間の配置に使用されるスーパーバイザーを絞り込むための一致式を使用して、スーパーバイザー名前空間クラス構成を作成できます。

  1. スーパーバイザー名前空間クラスを作成します。
    kubectl create -f supervisornamespaceclass.yaml
    次の supervisornamespaceclass.yaml ファイルの例では、 parameters のオプションの入力に、名前空間の作成時にユーザーが指定した名前空間クラスのパラメータが反映されています。すべての入力にデフォルト値が必要です。これらの値は、ストレージ クラス、制限、および追加の制約をカスタマイズする際に使用されます。
    apiVersion: infrastructure.cci.vmware.com/v1alpha1
    kind: SupervisorNamespaceClass
    metadata:
      name: <class_name>
    spec:
      description: supervisor namespace class
      parameters:
        - name: podCountLimit
          type: Integer
          minimum: 100
          maximum: 1000
          default: 500

    スーパーバイザー名前空間クラスにはスーパーバイザー配置の設定が含まれていないため、スーパーバイザー名前空間クラス構成も作成する必要があります。

  2. スーパーバイザー名前空間クラス構成を作成します。
    kubectl create -f supervisornamespaceclassconfig.yaml
    YAML はスーパーバイザー名前空間に継承させるすべてのスーパーバイザー名前空間構成を使用して構成され、以下を含めることができます。
    • 仮想マシン サービスが仮想マシンのプロビジョニング時に使用するイメージを含むコンテンツ ライブラリ。
    • T シャツ サイズなどの仮想マシン クラス。
    • CPU、メモリ、およびストレージに適用されるリソース制限。
    • 使用するストレージ クラス。
    • スーパーバイザー名前空間の作成に使用するスーパーバイザーを決定する SupervisorSelector。
    次の supervisornamespaceclassconfig.yaml ファイルの例では、 supervisorSelector を使用してスーパーバイザー ラベルを照合します。
    apiVersion: infrastructure.cci.vmware.com/v1alpha1
    kind: SupervisorNamespaceClassConfig
    metadata:
      name: <class_name>
    spec:
      storageClasses:
        - name: management-storage-policy-thin
      vmClasses:
        - name: big-vm-class
        - name: small-vm-class
      contentSources:
        - name: global-content-library
          type: ContentLibrary
      # Below limits are an EXAMPLE! Setting them may cause unexpected behavior in your namespace
      # Either set reasonable limits, or remove the below section to get unlimited resources
      limits:
        - name: pod_count
          limit: "((parameters.podCountLimit))"
      supervisorSelector:
        matchExpressions:
          - key: environment
            operator: In
            values:
              - testing
    

手順 6:名前空間クラスとプロジェクトの関連付け

プロジェクトでスーパーバイザー名前空間クラスを使用してスーパーバイザー名前空間を作成できるようにするには、スーパーバイザー名前空間クラスのバインドを作成します。

kubectl create -f supervisornamespaceclassbinding.yaml
supervisornamespaceclassbinding.yaml ファイルの例。
  • namespace は、スーパーバイザー名前空間クラスに関連付けるプロジェクトの名前を指定します。
  • overrideParameters はオプションです。これらは、スーパーバイザー名前空間の作成時にユーザーが指定したパラメータ値を無視する一方で、特定のパラメータ値を強制する場合に使用されます。有効なタイプは 整数文字列ブール値 です。
apiVersion: infrastructure.cci.vmware.com/v1alpha1
kind: SupervisorNamespaceClassBinding
metadata:
  name: <class_name>
  namespace: <project_name>
spec:
  overrideParameters:
    - name: podCountLimit
      type: Integer
      const: 1000