Before you can automate some of the administrative tasks for using vSphere IaaS control plane, you must first familiarize yourself with the high-level system architecture and components involved.

The vSphere IaaS control plane API consists of two packages, namespace_management and namespaces. In the namespace_management package, you can find APIs for enabling a vSphere cluster with vSphere IaaS control plane, configuring the network and storage policies of the Supervisor, upgrading a cluster to the desired version of vSphere IaaS control plane, and so on. In the namespaces package, you can find APIs for creating, configuring, and deleting a vSphere Namespace, and also for setting the necessary permissions for accessing the namespace.

Figure 1. Services and Components Involved in Using vSphere IaaS control plane
The components and services of vSphere IaaS control plane interconnect with the components of your vCenter Server environment.

The vSphere Kubernetes Services component runs on vCenter Server and communicates the vSphere admin requests to the Supervisor control plane. The component comprises of several services which vSphere Automation endpoints you can use to enable vSphere IaaS control plane on a vSphere cluster and create Kubernetes workloads.

You can use the Cluster Compatibility service to query a vCenter Server instance about the available clusters that meet the requirements for enabling vSphere IaaS control plane.

You can use the Clusters service to enable or disable vSphere IaaS control plane on a cluster. You can also reconfigure the settings of a Supervisor.

You can use the Instances service to create, edit, and delete a vSphere Namespace from a Supervisor. You can also change all or some of the settings of an existing namespace.

Starting with vSphere 7.0 Update 1, a Supervisor backed by a vSphere Distributed Switch uses the HAProxy load balancer to provide connectivity to DevOps and external service. The Load Balancer service represents the user provisioned load balancers.

Starting with vSphere 7.0 Update 2a, vSphere administrators can use the VM Service functionality to enable DevOps engineers to deploy and run VMs and containers in one shared Kubernetes environment through a single Kubernetes native interface. Use the vSphere IaaS control plane APIs to define VM Classes and content libraries to allocate resources to virtual machines provisioned by DevOps engineers.

As of vSphere 7.0 Update 2a, vSphere administrators can also configure a vSphere Namespace as a template on a cluster. Then the DevOps engineers can use it to self-service the creation of vSphere Namespaces and deploy workloads within them.