Recently I got this question i.e. Why wcpsvc (Workload Control Plane) service is running even when Supervisor cluster is not enabled on vSphere cluster? I thought it is worth to share the answer with a quick post. Before we jump on to the list of reasons, let me share my understanding of what is the wcpsvc and what is its primary role. It is one of the services among several services running on vCenter server. It is primarily responsible for managing/orchestrating Supervisor cluster (which is key part of vSphere with Tanzu) workflows and functionality. In other words, it implements all the CRUD REST APIs for Supervisor cluster i.e. Enabling Supervisor cluster on vSphere cluster, updating Supervisor cluster to next available kubernetes version etc.
Now let us look at reasons why it should be up before enabling Supervisor cluster
- Since it orchestrates API for enabling Supervisor cluster, it has to be running before we call enable API.
- When you put host inside the cluster into maintenance mode, it has to check whether host being put into maintenance mode is part of Supervisor cluster (as one of the worker nodes). To understand what happens when we put host into maintenance mode, please have a look at my other article i.e. How to gracefully remove host from Supervisor cluster.
- Before enabling Supervisor cluster, there is REST API exposed by wcpsvc service to know whether given cluster is compatible or not (both Supervisor cluster with NSX-T and vSphere networking stack)
- If user wants to know how many distributed switches are compatible with NSX-T and in-turn wants to know whether NSX-T edge cluster is compatible with given distributed switch. There is API for the same as well.
- User wants to know what are the kubernetes versions supported by given vCenter server before enabling it.
- User wants to get an idea on sizing for the Supervisor cluster i.e. TINY, SMALL, MEDIUM, LARGE and network CIDR default sizes.
- H5C has some vSphere with Tanzu UI workflows and for it to dynamically showcase them, it has to make some API calls exposed by wcpsvc irrespective of whether Supervisor cluster is enabled or not
I hope you now got insight into why wcpsvc has to be running without even Supervisor cluster is not up. It might happen there are few more reasons wcpsvc has to be running, I will update this post as I understand more.
Further reading
1. Official documentation for vSphere with Tanzu is here
2. Automating supervisor cluster workflows using Java
3. Automation around Supervisor cluster