Vous pouvez ajouter des éléments d'interface de consommation de cloud (CCI) pour utiliser le service CCI dans un modèle de VMware Aria Automation, afin que vos utilisateurs puissent demander des charges de travail basées sur Kubernetes à l'aide du service de machine virtuelle et de Tanzu Kubernetes Grid Service dans un espace de noms de superviseur.
Pour afficher les éléments CCI, développez la section Interface de consommation Cloud de la bibliothèque de ressources de votre modèle de cloud ou tapez cci dans le champ Types de ressources.
Ressource d'espace de noms de superviseur
|
Créez un espace de noms de superviseur qui fournit un espace de travail basé sur Kubernetes avec des limites de ressources, un accès utilisateur et des services de superviseur disponibles, afin que les utilisateurs puissent provisionner des ressources de machine virtuelle et TKG en fonction des besoins de l'application. |
Ressource de superviseur
|
Créez une ressource Kubernetes de superviseur prise en charge dans un espace de noms de superviseur, telle que virtualmachines , virtualmachineservices , tanzukubernetesclusters , persistentvolumeclaims , secrets , etc., en fonction du manifeste Kubernetes transmis à la ressource de superviseur en cours de configuration. |
Ressource TKG
|
Créez des ressources Kubernetes prises en charge dans un cluster TKG. |
Exemple de ressource d'espace de noms de superviseur
CCI.Supervisor.Namespace représente l'espace de travail basé sur Kubernetes de superviseur dans lequel les ressources IaaS de superviseur gérées par l'utilisateur vSphere pour l'application sont créées.
Cet exemple définit une ressource d'espace de noms de superviseur CCI nommée cciNamespace pour provisionner un espace de noms de superviseur appelé demo.
formatVersion: 1 inputs: {} resources: cciNamespace: type: CCI.Supervisor.Namespace properties: name: demo className: default regionName: dev-us-west
Exemple de ressource de superviseur
Utilisez CCI.Supervisor.Resource pour transmettre le manifeste Kubernetes pour les objets Kubernetes pris en charge pour s'exécuter dans un contexte d'espace de noms de superviseur.
- Pour provisionner la ressource de superviseur dans un espace de noms de superviseur particulier, configurez la propriété de contexte de la ressource de superviseur en la mappant à l'ID de l'espace de noms de superviseur à l'aide d'une expression de liaison de modèle, par exemplecontext: ${resource.cciNamespace.id}.
- Pour spécifier les objets à provisionner, configurez la propriété de manifeste de la ressource de superviseur en transmettant le manifeste Kubernetes à l'objet Kubernetes que vous créez.
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
Exemple de ressource TKG
- Pour lier une ressource TKG à un cluster TKG, mappez l'ID de la ressource de cluster TKG de superviseur avec la propriété de contexte, par exemple context: ${resource.cciTKGCluster.id}.
- Si vous créez un espace de noms dans une ressource TKG nommée cciTKGNamespace par exemple, vous pouvez lier une ressource TKG à l'espace de noms en insérant le nom de la ressource TKG dans la propriété de contexte ou context: ${resource.cciTKGNamespace.id}.
- Le manifeste Kubernetes transmis dans les propriétés de ressource spécifie le type de l'objet Kubernetes à provisionner.
... 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)} ...
Ajout d'une propriété d'attente
- Attente de champ : liste de champs dans lesquels chaque champ peut être configuré avec un chemin de propriété et une valeur. La valeur doit correspondre avant que la ressource soit considérée comme étant terminée.
- Attente de condition : liste des conditions qui indiquent la réussite ou l'échec de la création des ressources.
... wait: fields: - path: status.loadBalancer.ingress[0].ip value: "*" ...