In qualità di amministratore del cloud di VMware Aria Automation, è possibile utilizzare un'interfaccia della riga di comando per abilitare l'accesso a Cloud Consumption Interface (CCI) e configurare costrutti di governance. L'interfaccia della riga di comando utilizza lo strumento della riga di comando Kubernetes o kubectl.

Ad esempio, è possibile utilizzare la CLI nelle seguenti situazioni:
  • Se l'accesso degli utenti a CCI è configurato utilizzando vSphere+, gli utenti possono accedere solo ai progetti predefiniti creati da vSphere+. È possibile utilizzare la CLI per configurare l'accesso a progetti e account cloud aggiuntivi.
  • In qualità di amministratore di istanze esistenti di VMware Aria Automation, è possibile utilizzare la CLI per accedere a CCI senza avviarlo tramite vSphere+.

Per un elenco completo delle azioni che è possibile eseguire utilizzando la CLI, vedere Riferimento dell'API Kubernetes per Cloud Consumption Interface.

Prerequisiti

Creazione di un progetto e dei binding del ruolo del progetto

Per raggruppare gli utenti di VMware Aria Automation e impostare l'accesso alle risorse dell'infrastruttura, creare un progetto e i binding del ruolo del progetto.

  1. Creare un progetto.
    kubectl create -f project.yaml
    File project.yaml di esempio.
    apiVersion: project.cci.vmware.com/v1alpha1
    kind: Project
    metadata:
      name: <project_name>
    spec:
      description: <description_of_project>
      sharedResources: true
    
  2. Creare un binding del ruolo del progetto per assegnare ruoli a utenti o gruppi in un progetto creato.
    kubectl create -f projectrolebinding.yaml
    Il seguente file projectrolebinding.yaml di esempio aggiunge un utente con il ruolo del progetto admin. I valori del ruolo del progetto sono: admin, view o 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: <username@company.com>

Creazione di una regione

È possibile creare una regione in modo da poter assegnare supervisori a tale regione.

kubectl create -f region.yaml
File region.yaml di esempio.
apiVersion: topology.cci.vmware.com/v1alpha1
kind: Region
metadata:
  name: <region_name>
spec:
  description: <description_of_region>

Associazione di un supervisore a una regione

Per associare un supervisore a una regione, trovare il supervisore che si desidera aggiornare, quindi aggiungere la regione e le etichette che verranno utilizzate per il posizionamento dello spazio dei nomi.

  1. Per individuare il supervisore che si desidera aggiornare, visualizzare l'elenco dei supervisori. Le risorse supervisore saranno visibili dopo la raccolta dei dati di vCenter.
    kubectl -n cci-config get supervisors
    Di seguito è riportato un risultato di esempio.
    NAME                             AGE
    demo-self-service:domain-c50     75d
    adminannie-vcenter:domain-c8     5d18h
    scale-test-vc-01:domain-c8       56d
  2. Aggiornare il supervisore denominato adminannie-vcenter:domain-c8.
    kubectl -n cci-config edit supervisor adminannie-vc:domain-c8
    Esempio di supervisore con coppie chiave-valore metadata.labels e regioni 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

Creazione del binding di una regione e di una configurazione del binding di una regione

È possibile creare il binding di una regione e la configurazione del binding della regione in modo che gli utenti di un progetto possano creare spazi dei nomi supervisore nei supervisori in una regione.

  1. Creare il binding di una regione.
    kubectl create -f regionbinding.yaml
    File regionbinding.yaml di esempio.
    apiVersion: topology.cci.vmware.com/v1alpha1
    kind: RegionBinding
    metadata:
      name: <region_name>
      namespace: <project_name>

    Il binding di una regione non include alcuna impostazione di posizionamento del supervisore, pertanto è necessario creare anche la configurazione del binding della regione.

  2. Creare la configurazione del binding della regione per ogni binding di regione creato. È possibile includere espressioni di corrispondenza utilizzate per filtrare ulteriormente i supervisori. Le etichette supervisore vengono utilizzate per consentire il posizionamento dello spazio dei nomi supervisore in un sottoinsieme dei supervisori in una regione.
    kubectl create -f regionbindingconfig.yaml
    Nel seguente file regionbindingconfig.yaml di esempio, tutti i supervisori che corrispondono all'etichetta di ambiente testing possono ospitare gli spazi dei nomi supervisore creati in tale progetto e regione.
    apiVersion: topology.cci.vmware.com/v1alpha1
    kind: RegionBindingConfig
    metadata:
      name: <region_name>
      namespace: <project_name>
    spec:
      supervisorSelector:
        matchExpressions:
          - key: environment
            operator: In
            values:
              - testing

Creazione di una classe dello spazio dei nomi supervisore

Per definire modelli di spazio dei nomi con parametri facoltativi che possono essere utilizzati per personalizzare le impostazioni dello spazio dei nomi durante la creazione, creare una classe dello spazio dei nomi supervisore. È quindi possibile creare una configurazione della classe dello spazio dei nomi supervisore con espressioni di corrispondenza utilizzate per il filtro aggiuntivo dei supervisori utilizzati per il posizionamento dello spazio dei nomi supervisore.

  1. Creare una classe dello spazio dei nomi supervisore.
    kubectl create -f supervisornamespaceclass.yaml
    Nel seguente file supervisornamespaceclass.yaml di esempio, l'input facoltativo in parameters riflette i parametri della classe dello spazio dei nomi forniti dagli utenti durante la creazione dello spazio dei nomi. Tutti gli input devono avere valori predefiniti. I valori vengono utilizzati per personalizzare le classi di storage, i limiti e i vincoli aggiuntivi.
    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

    La classe dello spazio dei nomi supervisore non contiene alcuna impostazione di posizionamento del supervisore, pertanto è necessario creare anche una configurazione della classe dello spazio dei nomi supervisore.

  2. Creare una configurazione della classe dello spazio dei nomi supervisore.
    kubectl create -f supervisornamespaceclassconfig.yaml
    Nel seguente file supervisornamespaceclassconfig.yaml di esempio, supervisorSelector viene utilizzato per l'abbinamento alle etichette supervisore.
    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
    

Associazione di una classe dello spazio dei nomi a un progetto

Per consentire la creazione di uno spazio dei nomi supervisore utilizzando la classe dello spazio dei nomi supervisore in un progetto, creare un binding della classe dello spazio dei nomi supervisore.

kubectl create -f supervisornamespaceclassbinding.yaml
File supervisornamespaceclassbinding.yaml di esempio.
  • namespace specifica il nome del progetto da associare alla classe dello spazio dei nomi supervisore.
  • overrideParameters sono facoltativi. Vengono utilizzati per forzare il valore di un parametro ignorando i valori dei parametri forniti dall'utente quando viene creato lo spazio dei nomi supervisore. I tipi validi sono Intero, Stringa e Booleano.
apiVersion: infrastructure.cci.vmware.com/v1alpha1
kind: SupervisorNamespaceClassBinding
metadata:
  name: <class_name>
  namespace: <project_name>
spec:
  overrideParameters:
    - name: podCountLimit
      type: Integer
      const: 1000