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.

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

  • Compruebe que un clúster de supervisor esté habilitado en una instancia de vCenter y que esté registrado en VMware Aria Automation.
  • Compruebe que es, como mínimo, un miembro de la organización en VMware Aria Automation con la función de servicio Administrador para Automation Assembler o Automation Service Broker.
  • Compruebe que ha hecho lo siguiente:
    • Descargó el complemento kubectl de CCI.
    • Obtuvo un token de API para el usuario administrador o definió una variable para almacenar la contraseña de usuario.
    • Utilizó el token con la opción -t o utilizó las credenciales de administrador con la opción -u para iniciar sesión en el servidor CCI y cambió el contexto predeterminado a CCI.
  • Compruebe que ha agregado una cuenta de nube de vCenter en Automation Assembler.

Para obtener más información sobre cualquiera de estos requisitos previos, consulte Instalación y configuración de la interfaz de consumo de nube

Paso 1: Crear un proyecto y enlaces de funciones de proyecto

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

Nota: Para crear enlaces de funciones de proyecto y de proyecto mediante la interfaz de usuario, consulte Cómo agrego un proyecto para el equipo de desarrollo de Automation Assembler..
  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]>

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

Paso 3: Asociar un supervisor con 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
    El siguiente ejemplo incluye metadata.labels pares clave-valor y regiones spec.regionNames. Las etiquetas environment: testing y fipsMode: strict se pueden utilizar para ayudar en las decisiones de colocación del supervisor.
    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>
Para ver una lista de regiones de supervisor en la interfaz de usuario de Automation Assembler o Automation Service Broker, vaya a:
  • Infraestructura > Configurar > Regiones de supervisor
  • También puede hacer clic en la pestaña Regiones de supervisor de un proyecto ubicado en Infraestructura > Administración > Proyectos
Consulte Ver construcciones del administrador.

Paso 4: 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

Paso 5: Crear una clase de espacio de nombres de supervisor y agregar una configuración de 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
    El YAML está configurado con todas las configuraciones de espacio de nombres de supervisor que desea que herede el espacio de nombres de supervisor y puede incluir:
    • Bibliotecas de contenido que contienen las imágenes que utiliza el servicio de máquina virtual al aprovisionar máquinas virtuales.
    • Clases de máquinas virtuales como T-shirt Sizes (tamaños de camisetas).
    • Límites de recursos aplicados de CPU, memoria y almacenamiento.
    • Clases de almacenamiento que se utilizarán.
    • SupervisorSelector se usa para decidir qué supervisor se utilizará para la creación del espacio de nombres de supervisor.
    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
    

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