Como administrador de nube de VMware Aria Automation puede utilizar una interfaz de línea de comandos para habilitar el acceso a la interfaz de consumo de nube (Cloud Consumption Interface, CCI) y configurar construcciones de gobernanza. La interfaz de línea de comandos utiliza la herramienta de línea de comandos de Kubernetes, o kubectl.

Por ejemplo, puede utilizar la CLI en las siguientes situaciones:
  • Si el acceso de los usuarios a CCI se configura mediante vSphere+, los usuarios solo podrán acceder a los proyectos predeterminados que crea vSphere+. El posible utilizar la CLI para configurar el acceso a proyectos y cuentas de nube adicionales.
  • Si es administrador de instancias de VMware Aria Automation existentes, puede utilizar la CLI para acceder a CCI sin iniciarlo a través de vSphere+.

Para obtener una lista completa de las acciones que puede realizar mediante la CLI, consulte Referencia de la API de Kubernetes para la interfaz de consumo de nube.

Requisitos previos

Crear un proyecto y enlaces de funciones de proyecto

Para agrupar usuarios de VMware Aria Automation y establecer acceso a recursos de infraestructura, cree un proyecto y enlaces de funciones de proyecto.

  1. Cree un proyecto.
    kubectl create -f project.yaml
    Archivo de project.yaml de ejemplo.
    apiVersion: project.cci.vmware.com/v1alpha1
    kind: Project
    metadata:
      name: <project_name>
    spec:
      description: <description_of_project>
      sharedResources: true
    
  2. Cree un enlace de función de proyecto para asignar funciones a usuarios o grupos dentro de un proyecto creado.
    kubectl create -f projectrolebinding.yaml
    El siguiente archivo projectrolebinding.yaml de ejemplo agrega un usuario con la función de proyecto admin. Los valores de las funciones de proyecto son: 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]>

Crear una región

Cree una región para poder asignar supervisores a esa región.

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

Asociar un supervisor a una región

Para asociar un supervisor a una región, busque el supervisor que desea actualizar y después agregue la región y las etiquetas que se utilizarán para la colocación del espacio de nombres.

  1. Para encontrar el supervisor que desea actualizar, enumere los supervisores. Los recursos de supervisor se pueden ver después de la recopilación de datos de vCenter.
    kubectl -n cci-config get supervisors
    A continuación, se muestra un ejemplo de resultado.
    NAME                             AGE
    demo-self-service:domain-c50     75d
    adminannie-vcenter:domain-c8     5d18h
    scale-test-vc-01:domain-c8       56d
  2. Actualice el supervisor llamado adminannie-vcenter:domain-c8.
    kubectl -n cci-config edit supervisor adminannie-vc:domain-c8
    Ejemplo de supervisor con metadata.labelspares de clave-valor y regiones 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

Crear un enlace de regiones y una configuración de enlace de regiones

Cree un enlace de regiones y una configuración de enlace de regiones para que los usuarios de un proyecto puedan crear espacios de nombres de supervisor en supervisores de una región.

  1. Cree un enlace de regiones.
    kubectl create -f regionbinding.yaml
    Archivo de regionbinding.yaml de ejemplo.
    apiVersion: topology.cci.vmware.com/v1alpha1
    kind: RegionBinding
    metadata:
      name: <region_name>
      namespace: <project_name>

    Un enlace de regiones no incluye ninguna configuración de colocación de supervisor, por lo que también debe crear una configuración de enlace de regiones.

  2. Cree una configuración de enlace de regiones para cada enlace de regiones que haya creado. Puede incluir expresiones de coincidencia que se utilizan para filtrar más supervisores. Las etiquetas de supervisor se utilizan para permitir la colocación del espacio de nombres de supervisor en un subconjunto de los supervisores de una región.
    kubectl create -f regionbindingconfig.yaml
    En el siguiente archivo regionbindingconfig.yaml de ejemplo, cualquier supervisor que coincida con la etiqueta de entorno prueba puede alojar los espacios de nombres de supervisor creados en ese proyecto y esa región.
    apiVersion: topology.cci.vmware.com/v1alpha1
    kind: RegionBindingConfig
    metadata:
      name: <region_name>
      namespace: <project_name>
    spec:
      supervisorSelector:
        matchExpressions:
          - key: environment
            operator: In
            values:
              - testing

Crear una clase de espacio de nombres de supervisor

Para definir plantillas de espacio de nombres con parámetros opcionales que se puedan utilizar para personalizar la configuración del espacio de nombres durante la creación, cree una clase de espacio de nombres de supervisor. A continuación, puede crear una configuración de clase de espacio de nombres de supervisor con expresiones de coincidencia que se utilizan para filtrar otros supervisores que se usan para la colocación del espacio de nombres de supervisor.

  1. Cree una clase de espacio de nombres de supervisor.
    kubectl create -f supervisornamespaceclass.yaml
    En el siguiente archivo supervisornamespaceclass.yaml de ejemplo, la entrada opcional en parameters refleja los parámetros de clase de espacio de nombres que los usuarios proporcionan al crear el espacio de nombres. Todas las entradas deben tener valores predeterminados. Los valores se pueden utilizar para personalizar las clases de almacenamiento, los límites y las restricciones adicionales.
    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 clase de espacio de nombres de supervisor no contiene ninguna configuración de colocación de supervisor, por lo que también debe crear una configuración de clase de espacio de nombres de supervisor.

  2. Cree una configuración de clase de espacio de nombres de supervisor.
    kubectl create -f supervisornamespaceclassconfig.yaml
    En el siguiente archivo supervisornamespaceclassconfig.yaml de ejemplo, se usa supervisorSelector para hacer coincidir las etiquetas de supervisor.
    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
    

Asociar una clase de espacio de nombres con un proyecto

Para permitir la creación de un espacio de nombres de supervisor mediante la clase de espacio de nombres de supervisor en un proyecto, cree un enlace de clase de espacio de nombres de supervisor.

kubectl create -f supervisornamespaceclassbinding.yaml
Archivo de supervisornamespaceclassbinding.yaml de ejemplo.
  • namespace especifica el nombre del proyecto que desea asociar con la clase de espacio de nombres de supervisor.
  • overrideParameters son opcionales. Se utilizan para forzar un valor de parámetro mientras se ignoran los valores de parámetros proporcionados por el usuario cuando se crea el espacio de nombres de supervisor. Los tipos válidos son Entero, Cadena o Booleano.
apiVersion: infrastructure.cci.vmware.com/v1alpha1
kind: SupervisorNamespaceClassBinding
metadata:
  name: <class_name>
  namespace: <project_name>
spec:
  overrideParameters:
    - name: podCountLimit
      type: Integer
      const: 1000