Puede agregar elementos de la interfaz de consumo de nube (CCI) para utilizar el servicio CCI dentro de una plantilla de VMware Aria Automation para que los usuarios puedan solicitar cargas de trabajo basadas en Kubernetes utilizando el servicio de máquina virtual y el servicio Tanzu Kubernetes Grid dentro de un espacio de nombres de supervisor.
Para ver los elementos CCI, amplíe la sección Interfaz de consumo de nube dentro de la biblioteca de recursos de su plantilla de nube o escriba cci en el campo Buscar tipos de recursos.
Recurso Espacio de nombres de supervisor
|
Cree un nuevo espacio de nombres de supervisor, que proporciona un espacio de trabajo basado en Kubernetes con límites de recursos, acceso de usuarios y servicios de supervisor disponibles, para que los usuarios puedan aprovisionar recursos de VM y TKG en función de las necesidades de las aplicaciones. |
Recurso Supervisor
|
Cree cualquier recurso Supervisor de Kubernetes compatible dentro de un espacio de nombres de supervisor, como virtualmachines , virtualmachineservices , tanzukubernetesclusters , persistentvolumeclaims , secrets , etc., en función del manifiesto Kubernetes pasado al recurso Supervisor que se esté configurando. |
Recurso TKG
|
Cree cualquier recurso Kubernetes compatible dentro de un clúster TKG. |
Ejemplo de recurso Espacio de nombres de supervisor
CCI.Supervisor.Namespace representa el espacio de trabajo basado en Supervisor de Kubernetes en el que se crean los recursos de IaaS de supervisor de vSphere gestionados por el usuario para la aplicación.
Este ejemplo define un recurso de espacio de nombres de supervisor de CCI denominado cciNamespace para aprovisionar un espacio de nombres de supervisor denominado demo.
formatVersion: 1 inputs: {} resources: cciNamespace: type: CCI.Supervisor.Namespace properties: name: demo className: default regionName: dev-us-west
Ejemplo de recurso Supervisor
Se usa CCI.Supervisor.Resource para pasar el manifiesto de Kubernetes para los objetos Kubernetes admitidos de forma que se ejecuten en un contexto de espacio de nombres de supervisor.
- Para aprovisionar el recurso Supervisor dentro de un espacio de nombres de supervisor concreto, configure la propiedad de contexto del recurso Supervisor asignándola al ID del espacio de nombres de supervisor mediante una expresión de enlace de plantilla, por ejemplo context: ${resource.cciNamespace.id}.
- Para especificar los objetos que desea aprovisionar, configure la propiedad de manifiesto del recurso Supervisor pasando el manifiesto de Kubernetes al objeto Kubernetes que está creando.
formatVersion: 1 inputs: {} resources: cciTKGCluster: type: CCI.Supervisor.Resource properties: context: ${resource.cciNamespace.id} manifest: apiVersion: cluster.x-k8s.io/v1beta1 kind: Cluster metadata: name: ${input.tkg_Name} labels: tkg-cluster-selector: ${input.tkg_Name} spec: clusterNetwork: cni: name: antrea pods: cidrBlocks: - 192.168.156.0/20 services: cidrBlocks: - 10.96.0.0/12 serviceDomain: cluster.local topology: class: tanzukubernetescluster version: v1.24.9---vmware.1-tkg.4 variables: - name: storageClasses value: - tmm-kubernetes-storage-policy - name: defaultStorageClass value: tmm-kubernetes-storage-policy - name: vmClass value: ${input.controlPlaneVmClassName} - name: storageClass value: tmm-kubernetes-storage-policy controlPlane: replicas: ${input.controlPlaneCount} metadata: annotations: run.tanzu.vmware.com/resolve-os-image: os-name=photon workers: machineDeployments: - class: node-pool name: ${input.tkg_Name}-nodepool replicas: ${input.workerCount} metadata: annotations: run.tanzu.vmware.com/resolve-os-image: os-name=photon variables: overrides: - name: vmClass value: ${input.workerVmClassName}
formatVersion: 1 inputs: {} resources: vm: type: CCI.Supervisor.Resource properties: context: ${resource.cciNamespace.id} manifest: apiVersion: vmoperator.vmware.com/v1alpha1 kind: VirtualMachine metadata: finalizers: - virtualmachine.vmoperator.vmware.com generation: 1 labels: vm-selector: vm-2rfx name: vm-2rfx spec: className: best-effort-xsmall imageName: vmi-c3d184be88e1af1cd networkInterfaces: - networkType: nsx-t powerOffMode: hard powerState: poweredOn restartMode: hard storageClass: vsan-default-storage-policy suspendMode: hard wait: conditions: - type: VirtualMachinePrereqReady status: "False" reason: VirtualMachineImageNotReady indicatesFailure: true
Ejemplo de recurso TKG
- Para vincular un recurso TKG a un clúster TKG, debe asignar el ID del recurso de clúster TKG supervisor con la propiedad context, por ejemplo, context: ${resource.cciTKGCluster.id}.
- Si está creando un espacio de nombres dentro de un recurso TKG llamado cciTKGNamespace, por ejemplo, puede vincular un recurso TKG al espacio de nombres insertando el nombre del recurso TKG en la propiedad context o context: ${resource.cciTKGNamespace.id}.
- El manifiesto de Kubernetes que se pasa dentro de las propiedades del recurso especifica el tipo de objeto Kubernetes que se debe aprovisionar.
... tkgSecret: type: CCI.TKG.Resource properties: context: ${resource.cciTKGCluster.id} manifest: apiVersion: v1 kind: Secret metadata: name: nvaie-apikey type: Opaque data: username: KM9hdCCodG9rZW4= password: ${base64_encode(input.password)} ...
Agregar una propiedad de espera
- Campo Wait: Lista de campos donde cada campo puede configurarse con una ruta de propiedad y un valor. El valor debe ser verificado antes de que el recurso se considere completado.
- Condición Wait: Lista de condiciones que indican el éxito o el fracaso de la creación del recurso.
... wait: fields: - path: status.loadBalancer.ingress[0].ip value: "*" ...