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.

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

Prerequisiti

  • Verificare che un cluster supervisore sia abilitato in un'istanza di vCenter e che sia registrato con VMware Aria Automation.
  • Verificare di essere almeno un membro dell'organizzazione in VMware Aria Automation con il ruolo di servizio amministratore per Automation Assembler o Automation Service Broker.
  • Verificare di aver:
    • Scaricato il plug-in kubectl di CCI.
    • Recuperato un token API per l'utente amministratore o definito una variabile per archiviare la password dell'utente.
    • Utilizzato il token con l'opzione -t oppure utilizzato le credenziali di amministratore con l'opzione -u per accedere al server CCI e modificato il contesto predefinito in CCI.
  • Verificare di aver aggiunto un account cloud vCenter in Automation Assembler.

Per ulteriori informazioni su tali prerequisiti, vedere Impostazione e configurazione di Cloud Consumption Interface

Passaggio 1: creazione di un progetto e dei binding del ruolo del progetto

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

Nota: Per creare binding di progetti e ruoli di progetto utilizzando l'interfaccia utente, vedere Come aggiungere un progetto per il team di sviluppo di Automation Assembler..
  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: <[email protected]>

Passaggio 2: 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>

Passaggio 3: 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
    L'esempio seguente include le coppie chiave-valore metadata.labels e le regioni spec.regionNames. Le etichette environment: testing e fipsMode: strict possono essere utilizzate per le decisioni di posizionamento del supervisore.
    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>
Per visualizzare un elenco di regioni supervisore nell'interfaccia utente di Automation Assembler o Automation Service Broker, passare a:
  • Infrastruttura > Configura > Regioni supervisore
  • In alternativa, fare clic sulla scheda Regioni supervisore per un progetto che si trova in Infrastruttura > Amministrazione > Progetti
Vedere Visualizzazione dei costrutti amministratore.

Passaggio 4: creazione del binding di una regione e della 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

Passaggio 5: creazione di una classe dello spazio dei nomi supervisore e aggiunta di una configurazione per la 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
    Il codice YAML è configurato con tutte le configurazioni dello spazio dei nomi supervisore che si desidera vengano ereditate dallo spazio dei nomi supervisore e può includere:
    • Librerie dei contenuti che includono le immagini utilizzate da Servizio macchina virtuale durante il provisioning delle macchine virtuali.
    • Classi di macchine virtuali come t-shirt size.
    • Limiti delle risorse imposti per CPU, memoria e storage.
    • Classi di storage da utilizzare.
    • SupervisorSelector per decidere quale supervisore utilizzare per la creazione dello spazio dei nomi supervisore.
    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
    

Passaggio 6: 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