I recently deployed the Local Consumption Interface (LCI) which is a new vSphere IaaS (formerly vSphere with Tanzu) Control Plane Service that was just introduced with the release of vSphere 8.0 Update 3 into my homelab.
Successfully deployed the new vSphere IaaS (formally vSphere w/Tanzu) Local Consumption Interface (LCI) Service https://t.co/1fbTUiNjJd
Needed to refer to docs to figure out how to actually access the LCI UI, its under Resources within vSphere Namespace! #vSphere80U3 pic.twitter.com/Wu9afjzVx6
— William Lam (@lamw.bsky.social | @*protected email*) (@lamw) July 7, 2024
While going through the manual vSphere UI deployment, I noticed there were only handful of vSphere IaaS services that are shipped out of the box including the VM Service (VM Operator), Velero vSphere Operator and Tanzu Kubernetes Grid (TKG) Service.
The workflow to register a new vSphere IaaS service is not difficult, but it does take multiple steps from downloading the deployment YAML file, uploading the file to vCenter Server and then confirm the deployment before the deployment of the service begins and this would have to be done for each vSphere IaaS service you wish to deploy!
There has to be a better and more streamline way, especially for those that do not like to click to many times in the UI 😅
There are a over dozen plus vSphere IaaS control plane services that can be deployed today and after browsing the vSphere IaaS Service Github repository, I figured we should be able to quickly automate the deployment of all or subset of vSphere IaaS services ...
To accomplish this task, we will leverage the vSphere IaaS (vSphere Automation REST API) Supervisor Services API and to demonstrate the use of this API, I have created a simple PowerCLI script called deploy_vsphere_iaas_service_definitions.ps1
Since the vSphere IaaS deployment YAML is using a Carvel-based specification, we just need to use the carvel_spec as described in the API documentation and then provide a base64 encoding of the deployment YAML and then send deployment request to vCenter Server!
Step 1 - Download the deploy_vsphere_iaas_service_definitions.ps1 script and adjust the specific vSphere IaaS deployment YAMLs that you wish to deploy and save your changes.
Step 2 - Use the Connect-CisServer cmdlet to connect to your vCenter Server to be able to perform operations using the vSphere Automation REST API using PowerCLI
Connect-CisServer -Server vcsa.primp-industries.local -User administrator[at]vsphere.local -Password VMware1!
Step 3 - Run the script as shown in the example below:
./deploy_vsphere_iaas_service_definitions.ps1
As you can see from the output above, the script will iterate through the list of vSphere IaaS deployment YAML URLs, encode the YAML and use the vSphere API to automatically register it with your vCenter Server. It literally takes a few seconds to register all vSphere IaaS services within the Github repository where as deploying one can take a few minutes including the need to manually download the deployment YAML 🙂
VMware with Tanzu has been renamed to IaaS Control Plane, so it‘s „formerly known as Tanzu“.
'Formerly' refers to something in the past or previous times.
'Formally' describes something that is official or proper.
Fixed. I'm blaming auto-correct 😛
There should be 10 times easier method to add Root CAs and proxy configuration to somewhere in UI for guest clusters.
What is the benefit of doing this over using the Tanzu CLI?
Tanzu CLI is for deploying workloads, this is all about registering the services, such that you CAN deploy 🙂
So installing into the supervisor cluster, not the workload clusters?
That's correct, these are Supervisor or vSphere Iaas Control Plane Services ... once you've enabled these services, you can then install them onto a specific Supervisor based on your needs and then ultimately deploy these as end user consumable services, just like you might find in the public cloud
Have you got a plan for any guides on setting up the IaaS? I'm finding the documentation is terrible from VMware, and seeing it up with NSX or haproxy is beyond impossible
What's the end user experience for the LCI? How configurable is this end user experience?
I receive the following error, with this step:
Get-CisService: 11/8/2024 11:45:48 AM Get-CisService One or more errors occurred. (One or more errors occurred. (The reader's MaxDepth of 64 has been exceeded. Path 'result.output.STRUCTURE['com.vmware.vapi.metadata.metamodel.component_data'].info.STRUCTURE['com.vmware.vapi.metadata.metamodel.component_info'].packages[26].STRUCTURE.map-entry.value.STRUCTURE['com.vmware.vapi.metadata.metamodel.package_info'].services[0].STRUCTURE.map-entry.value.STRUCTURE['com.vmware.vapi.metadata.metamodel.service_info'].structures[6].STRUCTURE.map-entry.value.STRUCTURE['com.vmware.vapi.metadata.metamodel.structure_info'].fields[5].STRUCTURE['com.vmware.vapi.metadata.metamodel.field_info'].type.STRUCTURE['com.vmware.vapi.metadata.metamodel.type'].generic_instantiation.OPTIONAL.STRUCTURE['com.vmware.vapi.metadata.metamodel.generic_instantiation'].element_type.OPTIONAL.STRUCTURE['com.vmware.vapi.metadata.metamodel.type'].generic_instantiation.OPTIONAL.STRUCTURE['com.vmware.vapi.metadata.metamodel.generic_instantiation'].map_value_type.OPTIONAL.STRUCTURE['com.vmware.vapi.metadata.metamodel.type'].generic_instantiation.OPTIONAL.STRUCTURE['com.vmware.vapi.metadata.metamodel.generic_instantiation'].map_value_type.OPTIONAL.STRUCTURE['com.vmware.vapi.metadata.metamodel.type'].generic_instantiation.OPTIONAL.STRUCTURE['com.vmware.vapi.metadata.metamodel.generic_instantiation'].element_type', line 1, position 2247485.))
Get-CisService: 11/8/2024 11:45:48 AM Get-CisService CisService with name 'com.vmware.vcenter.namespace_management.supervisor_services' was not found using the specified filter(s).