All posts by Vikas Shitole

About Vikas Shitole

Vikas Shitole is a Staff engineer 2 at VMware (by Broadcom) India R&D. He currently contributes to core VMware products such as  vSphere, vSphere with Tanzu and partly VCF & VMware cloud on AWS. He is an AI and Kubernetes enthusiast. He is passionate about helping VMware customers & enjoys exploring automation opportunities around core VMware technologies. He has been a vExpert since last 10 years (2014-23) in row for his significant contributions to the VMware communities. He is author of 2 VMware flings & holds multiple technology certifications. He is one of the lead contributors to VMware API Sample Exchange with more than 35000+ downloads for his API scripts. He has been speaker at International conferences such as VMworld Europe, VMworld USA & was designated VMworld 2018 blogger as well. He was the lead technical reviewer of the two books "vSphere design" and "VMware virtual SAN essentials" by packt publishing. In addition, he is passionate cricketer, enjoys bicycle riding, learning about fitness/nutrition and one day aspire to be an Ironman 70.3

Why wcpsvc service is running even when Supervisor cluster is not enabled on vSphere cluster?

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

  1. Since it orchestrates API for enabling Supervisor cluster, it has to be running before we call enable API.
  2. 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.
  3. 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)
  4. 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.
  5. User wants to know what are the kubernetes versions supported by given vCenter server before enabling it.
  6. User wants to get an idea on sizing for the Supervisor cluster i.e. TINY, SMALL, MEDIUM, LARGE and network CIDR default sizes.
  7. 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