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

たとえば、次の場合に CLI を使用できます。
  • CCI へのユーザー アクセスが vSphere+ を使用して構成されている場合、ユーザーは vSphere+ によって作成されたデフォルトのプロジェクトにのみアクセスできます。ユーザーは CLI を使用して、追加のプロジェクトおよびクラウド アカウントへのアクセスを構成できます。
  • 既存の VMware Aria Automation インスタンスの管理者である場合は、vSphere+ を使用して開始する代わりに CLI を使用して CCI にアクセスできます。

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

前提条件

  • vSphere+ の開発者エクスペリエンスを有効にして、vSphere 管理者がユーザーに VMware Aria Automation へのアクセス権を付与したことを確認します。新しい Aria Automation ユーザーのクラウド使用量インターフェイスへのアクセスの構成を参照してください。
  • スーパーバイザー クラスタが vCenter インスタンスで有効になっていて、VMware Aria Automation に登録されていることを確認します。
  • 最低でも Automation Service Broker の組織メンバーで、VMware Aria Automation または Automation Assembler の管理者サービス ロールを保有している必要があります。
  • 以下のことを確認します。
    • CCI kubectl プラグインをダウンロードしている。
    • 管理者ユーザーの API トークンを取得している。
    • トークンを使用して CCI サーバにログインし、デフォルトのコンテキストを CCI に変更しました。
    コマンド ライン インターフェイスを使用したスーパーバイザー名前空間タスクの実行を参照してください。

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

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

  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]>

リージョンの作成

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

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

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

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

  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 が設定されているスーパーバイザーの例。
    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:
        - eu-west1

リージョン バインドとリージョン バインド構成の作成

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

  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

スーパーバイザー名前空間クラスの作成

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

  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
    次の 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
    

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

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

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