In alcune situazioni, è possibile che gli amministratori del cloud di VMware Aria Automation debbano utilizzare l'interfaccia della riga di comando per abilitare l'accesso a Cloud Consumption Interface (CCI) e configurare i costrutti di governance. La procedura indicata qui mostra un esempio di come questa operazione possa essere eseguita utilizzando la CLI di Cloud Consumption Interface.

Esistono diverse situazioni in cui è possibile che gli amministratori del cloud di VMware Aria Automation debbano utilizzare la procedura seguente per configurare manualmente Cloud Consumption Interface di Automation Service Broker.

  • Se gli amministratori hanno configurato l'accesso degli utenti a CCI utilizzando vSphere+, gli utenti potranno accedere solo ai progetti predefiniti creati da vSphere e versioni successive. Gli amministratori possono utilizzare i comandi in questa procedura per configurare l'accesso a progetti e account cloud aggiuntivi.
  • Amministratori per le istanze di VMware Aria Automation esistenti che desiderano utilizzare CCI senza avviarla tramite vSphere+
Per completare la configurazione, è necessario eseguire una serie di comandi kubectl come descritto nella procedura seguente. Per utilizzare questi comandi, è necessario scaricare e configurare il plug-in kubectl di CCI. Per ulteriori informazioni sull'installazione e l'utilizzo del plug-in, vedere Configurazione dell'amministratore di Cloud Consumption Interface- Disponibilità iniziale.

Prerequisiti

Procedura

  1. Creare un file per un progetto e quindi eseguire il comando seguente per creare il progetto. Gli amministratori utilizzano i progetti per raggruppare gli utenti di VMware Aria Automation e impostare l'accesso alle risorse dell'infrastruttura.

    kubectl create -f project.yaml

    Questo comando consente a un amministratore di raggruppare gli utenti e impostare l'accesso alle risorse dell'infrastruttura. Di seguito è disponibile il risultato di un file project.yaml di esempio.

    > 
    apiVersion: project.ccs.vmware.com/v1alpha1
    kind: Project
    metadata:
      name: <project name>
    spec:
      description: <description of project>
      sharedResources: true
    
    
  2. Eseguire il comando seguente per creare il binding del ruolo del progetto per assegnare un utente a un progetto e un ruolo all'utente. Gli amministratori utilizzano il binding del ruolo del progetto per assegnare ruoli a utenti o gruppi in un progetto creato.
    $ kubectl create -f projectrolebinding.yaml

    Questo comando consente a un amministratore di raggruppare gli utenti e impostare l'accesso alle risorse dell'infrastruttura. Gli amministratori possono aggiungere utenti e gruppi ai progetti con i seguenti ruoli di progetto: amministratore, modifica, visualizzazione. Di seguito è disponibile un esempio dei contenuti del binding del progetto.

    apiVersion: authorization.ccs.vmware.com/v1alpha1
    kind: ProjectRoleBinding
    metadata:
      name: ccs:user:vmware.com:<user alias>
      namespace: <project name>
    roleRef:
      apiGroup: authorization.ccs.vmware.com
      kind: ProjectRole
      name: admin
    subjects:
    - kind: User
      name: <username@company.com>
  3. Un amministratore può anche aggiornare il supervisore aggiungendo la regione e con etichette che verranno utilizzate per il posizionamento dello spazio dei nomi.
    $ kubectl -n ccs-config get supervisors

    Di seguito è riportato un risultato YAML di esempio.

    NAME                             AGE
    demo-self-service:domain-c50     75d
    kate-vcenter-176:domain-c8       33d
    adminannie-vcenter:domain-c8       5d18h
    anantkumar-vcenter:domain-c8     74d
    tjingjing-vcenter:domain-c8      39d
    ppuranik-vcenter-2:domain-c8     49d
    deva-ldu10:domain-c48            6d22h
    rrick-be-2022-03-28:domain-c50   15d
    jpick-vcenter-186-0:domain-c8    25d
    dannyh-vcenter:domain-c57        42d
    scale-test-vc-01:domain-c8       56d
    parunesh-ccs:domain-c8           27d
  4. Aggiornare il supervisore con la regione e le etichette necessarie per il posizionamento dello spazio dei nomi supervisore. Per informazioni sull'utilizzo, fare riferimento a quanto segue.
    • Premere Ins per modificare.
    • Aggiungere le etichette e le regioni di cui il supervisore sarà membro.
    • Utilizzare wq! per salvare le modifiche come se si stesse modificando un file con Visual Editor (VI) in Linux.
    • Questo processo consente inoltre di creare il profilo di storage per ogni criterio di storage di vCenter che dispone di uno storage compatibile in VMware Aria Automation.

    Eseguire il comando seguente per aggiornare il supervisore aggiungendo la regione e le etichette designate per il posizionamento dello spazio dei nomi. Le etichette mostrate di seguito sono esempi. Creare le etichette appropriate per la propria implementazione assicurandosi di applicare il rientro indicato nell'esempio.

    $ kubectl -n ccs-config edit supervisor adminannie-vc:domain-c8

    apiVersion: infrastructure.ccs.vmware.com/v1alpha1
    kind: Supervisor
    metadata:
      annotations:
        infrastructure.ccs.vmware.com/cloud-account-id: 88abaec7-31c3-43a3-ba29-befce9f559fb
      labels:
        environment: testing
        fipsMode: strict
      name: adminannie-vc:domain-c8
      namespace: ccs-config
      uid: ccd3d154-6404-47b7-8786-bb2d49ad9f5d
    spec:
      cloudAccountName: adminannie-vc
      externalId: domain-c8
      externalName: wcp-test-dc-cluster
      regionNames:
        - eu-west1
    status:
      powerState: "On"
  5. Configurare il binding della regione per consentire ai progetti di accedere ai supervisori in una regione.

    Eseguire il comando seguente per creare il binding della regione. La risorsa non deve contenere alcuna impostazione del posizionamento del supervisore.

    $ kubectl create -f regionbinding.yaml

    Di seguito sono riportati alcuni risultati YAML di esempio.

    apiVersion: topology.ccs.vmware.com/v1alpha1
    kind: RegionBinding
    metadata:
      name: <region names>
      namespace: <project name>
  6. Impostare la configurazione del binding della regione per ogni binding di regione creato. Assicurarsi di applicare quanto segue:
    • È possibile creare o modificare un oggetto di configurazione del binding della regione con espressioni aggiuntive in modo che corrisponda all'etichetta del supervisore.
    • Quando viene eseguita, la configurazione del binding della regione aggiunge il cluster supervisore come entità gestita in VMware Aria Automation. Crea quindi le zone Kubernetes con i cluster supervisore come destinazione di provisioning per ogni supervisore in una regione e quindi la assegna al progetto.
    • Configura inoltre i tag di funzionalità nel cluster Supervisore nella scheda del provisioning all'interno della zona Kubernetes.

    Eseguire il comando seguente per creare la configurazione del binding della regione. Creare o modificare una configurazione della classe dello spazio dei nomi supervisore con espressioni aggiuntive che corrispondano ai tag del supervisore.

    $ kubectl create -f regionbindingconfig.yaml

    Di seguito sono riportati alcuni risultati YAML di esempio:

    apiVersion: topology.ccs.vmware.com/v1alpha1
    kind: RegionBindingConfig
    metadata:
      name: <region name>
      namespace: <project name>
    spec:
      supervisorSelector:
        matchExpressions:
          - key: environment
            operator: In
            values:
              - testing
  7. Eseguire il comando seguente per raggruppare uno o più supervisori in una regione. Questo comando assegna un gruppo a una regione. Le risorse supervisore saranno visibili dopo la raccolta dei dati di vCenter.
    $ kubectl create -f region.yaml

    Di seguito è riportato un risultato di esempio.

    region.yaml
    apiVersion: topology.ccs.vmware.com/v1alpha1
    kind: Region
    metadata:
      name: <region names>
    spec:
      description: <Description of region>
  8. Utilizzare il comando seguente per creare una classe di spazio dei nomi del supervisore per definire i modelli dello spazio dei nomi con parametri facoltativi. La risorsa non deve contenere alcuna impostazione dello spazio dei nomi.
    È possibile aggiungere input facoltativi in parameters per riflettere 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. È possibile utilizzare i valori di input per personalizzare i profili di storage, i limiti e i vincoli aggiuntivi.

    I tipi sono Intero, Stringa o Booleano.

    $ kubectl create -f supervisornamespaceclass.yaml

    
    $ kubectl create -f supervisornamespaceclass.yaml
    supervisornamespaceclass.yaml
    apiVersion: infrastructure.ccs.vmware.com/v1alpha1
    kind: SupervisorNamespaceClass
    metadata:
      name: bronze
    spec:
      description: Bronze supervisor namespace class
      parameters:
        - name: pods
          type: Integer
          default: 40
  9. Eseguire il comando seguente per creare la configurazione della classe dello spazio dei nomi supervisore.
    $ kubectl create -f supervisornamespaceclass.yaml

    SupervisorSelector viene utilizzato per abbinare le etichette del supervisore. Gli operatori dell'espressione saranno limitati a supportare il comportamento dei vincoli CMX esistenti (In/NotIn/Exists/DoesNotExists con un valore).

    StorageClasses verrà mappato ai profili di storage creati automaticamente contenenti un tag con il nome del criterio (ccs-storage-policy:wcp-storage-class)

    Affinché un progetto possa accedere alla classe dello spazio dei nomi supervisore, devono esistere SupervisorNamespaceClass e SupervisorNamespaceClassConfig.

    I nomi dei limiti sono i seguenti:

    • config_map_count
    • cpu_limit
    • cpu_limit_default
    • cpu_request_default
    • daemon_set_count
    • deployment_count
    • job_count
    • memory_limit
    • memory_limit_default
    • memory_request_default
    • persistent_volume_claim_count
    • pod_count
    • replica_set_count
    • replication_controller_count
    • secret_count
    • service_count
    • stateful_set_count
    • storage_request_limit

    L'unico valore per il tipo contentSource è attualmente ContentLibrary.

    Di seguito sono riportati alcuni risultati YAML di esempio:

    apiVersion: topology.ccs.vmware.com/v1alpha1
    kind: SupervisorNamespaceClassConfig
    metadata:
      name: bronze
    spec:
      storageClasses:
        - name: management-storage-policy-thin
      vmClasses:
        - name: "*"
      contentSources:
        - name: "*"
          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: cpu_limit
          limit: "1000" # This value is in Mhz
        - name: cpu_limit_default
          limit: "800" # This value is in Mhz
        - name: pod_count
          limit: "((parameters.pods))"
      supervisorSelector:
        matchExpressions:
          - key: environment
            operator: In
            values:
              - testing
    
  10. Eseguire il comando seguente per creare il binding della classe dello spazio dei nomi supervisore. Questo passaggio associa una classe dello spazio dei nomi supervisore a un progetto designato. La risorsa non deve contenere alcuna impostazione del posizionamento del supervisore. Questo comando consente di creare uno spazio dei nomi supervisore utilizzando la classe dello spazio dei nomi supervisore in un progetto. overrideParameters sono facoltativi e consentono di forzare il valore di un parametro ignorando i valori dei parametri forniti dall'utente durante la creazione dello spazio dei nomi supervisore.

    Utilizzare il seguente esempio di associazione di classi e aggiornare gli input in modo da riflettere i parametri di sovrascrittura per il progetto specificato. Utilizzare inputs const per impedire agli utenti di modificare il valore del parametro della classe. I tipi validi sono Intero, Stringa e Booleano. Si tenga presente che il parametro namespace deve specificare il nome del progetto.

    $ kubectl create -f supervisornamespaceclassbinding.yaml

    Di seguito sono riportati alcuni risultati YAML di esempio.

    apiVersion: infrastructure.ccs.vmware.com/v1alpha1
    kind: SupervisorNamespaceClassBinding
    metadata:
      name: bronze
      namespace: <project name>
    spec:
      overrideParameters:
        - name: pods
          type: Integer
          const: 50