Sie können CCI-Elemente (Cloud Consumption Interface) hinzufügen, um den CCI-Dienst innerhalb einer VMware Aria Automation-Vorlage zu verwenden, sodass Ihre Benutzer Kubernetes-basierte Arbeitslasten mithilfe des VM-Diensts und des Tanzu Kubernetes Grid Service innerhalb eines Supervisor-Namespace anfordern können.
Um die CCI-Elemente anzuzeigen, erweitern Sie den Abschnitt Cloud Consumption Interface innerhalb der Ressourcenbibliothek in Ihrer Cloud-Vorlage oder geben Sie cci in das Feld Ressourcentypen durchsuchen ein.
Supervisor-Namespace-Ressource
|
Erstellen Sie einen neuen Supervisor-Namespace, der einen Kubernetes-basierten Arbeitsbereich mit Ressourcengrenzwerten, Benutzerzugriff und verfügbaren Supervisor-Diensten bereitstellt, sodass Benutzer VM- und TKG-Ressourcen basierend auf Anwendungsanforderungen bereitstellen können. |
Supervisor-Ressource
|
Erstellen Sie beliebige unterstützte Supervisor-Kubernetes-Ressourcen innerhalb eines Supervisor-Namespace, z. B. virtualmachines , virtualmachineservices , tanzukubernetesclusters , persistentvolumeclaims , secrets usw., je nach dem Kubernetes-Manifest, das an die zum gegebenen Zeitpunkt konfigurierte Supervisor-Ressource übergeben wird. |
TKG-Ressource
|
Erstellen Sie beliebige unterstützte Kubernetes-Ressourcen innerhalb eines TKG-Clusters. |
CCI.Supervisor.Namespace
Direkt auf der Arbeitsfläche ablegen.CCI.Supervisor.Resource
Auf einer Supervisor-Namespace-Ressource oder direkt auf der Arbeitsfläche ablegen.CCI.TKG.Resource
Auf einer anderen TKG-Ressource, einer Supervisor-Ressource oder direkt auf der Arbeitsfläche ablegen. CCI-Ressourcen sind auf fünf Verschachtelungsebenen beschränkt.
In der Arbeitsflächenansicht unten wird eine TKG-Ressource in eine Supervisor-Ressource mit dem Namen cciTKGCluster gezogen. Ein Supervisor-Namespace, der eine Supervisor-Ressource enthält, die eine TKG-Ressource enthält, zeigt drei Verschachtelungsebenen an.
Die folgenden Beispiele zeigen, wie die CCI-Ressourcen wie cciNamespace und cciTKGCluster im YAML-Code Ihrer Cloud-Vorlage angezeigt werden. Jedes Beispiel ist so beschnitten, dass nur die wichtigen Zeilen angezeigt werden.
Beispiel für eine Supervisor-Namespace-Ressource
CCI.Supervisor.Namespace stellt den Supervisor-Kubernetes-basierten Arbeitsbereich dar, in dem die vom Benutzer verwalteten vSphere Supervisor-IaaS-Ressourcen für die Anwendung erstellt werden.
In diesem Beispiel wird eine CCI-Supervisor-Namespace-Ressource mit dem Namen cciNamespace definiert, um einen Supervisor-Namespace namens demo bereitzustellen.
name
im YAML-Code eingeben.
formatVersion: 1 inputs: {} resources: cciNamespace: type: CCI.Supervisor.Namespace properties: name: demo className: default regionName: dev-us-west
Beispiel für eine Supervisor-Ressource
Sie verwenden CCI.Supervisor.Resource, um das Kubernetes-Manifest für Kubernetes-Objekte zu übergeben, die für die Ausführung innerhalb eines Supervisor-Namespace-Kontexts unterstützt werden.
- Um die Supervisor-Ressource in einem bestimmten Supervisor-Namespace bereitzustellen, konfigurieren Sie die Supervisor-Ressourcenkontexteigenschaft, indem Sie sie der Supervisor-Namespace-ID mithilfe eines Vorlagenbindungsausdrucks zuordnen, z. B. context: ${resource.cciNamespace.id}.
- Um die bereitzustellenden Objekte anzugeben, konfigurieren Sie die Manifesteigenschaft der Supervisor-Ressource, indem Sie das Kubernetes-Manifest an das Kubernetes-Objekt übergeben, das Sie erstellen.
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
Auf der Arbeitsfläche enthält der Supervisor-Namespace cciNamespace zwei Supervisor-Ressourcen, cciTKGCluster und vm.
Beispiel für eine TKG-Ressource
- Um eine TKG-Ressource an einen TKG-Cluster zu binden, ordnen Sie die ID der Supervisor-TKG-Clusterressource der Kontexteigenschaft zu, z. B. context: ${resource.cciTKGCluster.id}.
- Wenn Sie beispielsweise einen Namespace innerhalb einer TKG-Ressource mit dem Namen cciTKGNamespace erstellen, können Sie eine TKG-Ressource an den Namespace binden, indem Sie den Namen der TKG-Ressource in die Kontexteigenschaft oder context: ${resource.cciTKGNamespace.id} einfügen.
- Das Kubernetes-Manifest, das innerhalb der Ressourceneigenschaften übergeben wird, gibt den Typ des bereitzustellenden Kubernetes-Objekts an.
... 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)} ...
Auf der Arbeitsfläche wird die TKG-Ressource tkgSecret innerhalb der TKG-Ressource cciTKGCluster verschachtelt angezeigt.
Hinzufügen einer Warteeigenschaft
- Field Wait: Liste der Felder, in denen jedes Feld mit einem Eigenschaftspfad und einem Wert konfiguriert werden kann. Der Wert muss abgeglichen werden, bevor die Ressource als abgeschlossen betrachtet wird.
- Condition Wait: Liste der Bedingungen, die eine erfolgreiche oder fehlgeschlagene Ressourcenerstellung angeben.
... wait: conditions: - type: VirtualMachinePrereqReady status: "False" reason: VirtualMachineImageNotReady indicatesFailure: true ...
Um optionale Parameter über die Benutzeroberfläche hinzuzufügen, klicken Sie im Bereich „Code“ neben dem Ressourcennamen auf die Glühbirne.