Você pode adicionar elementos da Cloud Consumption Interface (CCI) para usar o serviço CCI em um modelo do VMware Aria Automation para que seus usuários possam solicitar cargas de trabalho baseadas em Kubernetes usando o serviço de Máquina Virtual e o Tanzu Kubernetes Grid Service dentro de um namespace de supervisor.
Para ver os elementos da CCI, expanda a seção Cloud Consumption Interface dentro da biblioteca de recursos no seu modelo de nuvem ou digite cci no campo Pesquisar Tipos de Recurso.
Recurso de Namespace de Supervisor
|
Crie um novo Namespace de Supervisor, que forneça um espaço de trabalho baseado no Kubernetes com limites de recursos, acesso de usuários e serviços de Supervisor disponíveis, para que os usuários possam provisionar recursos de VM e do TKG com base nas necessidades do aplicativo. |
Recurso de supervisor
|
Crie qualquer recurso de Supervisor Kubernetes compatível dentro de um Namespace de Supervisor, como virtualmachines , virtualmachineservices , tanzukubernetesclusters , persistentvolumeclaims , secrets e assim por diante, dependendo do manifesto Kubernetes passado para o recurso de Supervisor que está sendo configurado. |
Recurso do TKG
|
Crie qualquer recurso do Kubernetes compatível dentro de um cluster TKG. |
Exemplo de Recurso de Namespace de Supervisor
CCI.Supervisor.Namespace representa o espaço de trabalho baseado no Supervisor Kubernetes em que os recursos de Supervisor IaaS do vSphere gerenciados pelo usuário para o aplicativo são criados.
Este exemplo define um recurso de namespace de supervisor da CCI denominado cciNamespace para provisionar um Namespace de Supervisor denominado demo.
formatVersion: 1 inputs: {} resources: cciNamespace: type: CCI.Supervisor.Namespace properties: name: demo className: default regionName: dev-us-west
Exemplo de Recurso de Supervisor
Você usa CCI.Supervisor.Resource para passar o manifesto Kubernetes para objetos do Kubernetes com suporte para execução em um contexto de namespace de supervisor.
- Para provisionar o recurso de supervisor dentro de um namespace de supervisor específico, configure a propriedade de contexto do recurso de supervisor mapeando-a para o ID do namespace de supervisor usando uma expressão de vinculação de modelo, por exemplo: context: ${resource.cciNamespace.id}.
- Para especificar os objetos a serem provisionados, configure a propriedade manifest do Recurso de Supervisor passando o manifesto Kubernetes para o objeto Kubernetes que você está criando.
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
Exemplo de recurso do TKG
- Para vincular um recurso TKG a um cluster TKG, você mapeia o ID de recurso do cluster TKG do supervisor com a propriedade context, por exemplo: context: ${resource.cciTKGCluster.id}.
- Se você estiver criando um namespace dentro de um recurso do TKG chamado cciTKGNamespace, por exemplo, você pode vincular esse recurso do TKG ao namespace inserindo o nome desse recurso na propriedade de contexto ou context: ${resource.cciTKGNamespace.id}.
- O manifesto Kubernetes que é passado nas propriedades do recurso especifica o tipo de objeto Kubernetes a ser provisionado.
... 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)} ...
Adicionar uma propriedade de espera
- Espera de campo: lista de campos onde cada campo pode ser configurado com um caminho de propriedade e um valor. O valor deve ser correspondido antes que o recurso seja considerado concluído.
- Condição de espera: lista de condições que indicam sucesso ou falha na criação de recursos.
... wait: fields: - path: status.loadBalancer.ingress[0].ip value: "*" ...