Configuring Workload Management on a cluster failed with the error: ÄPI request to VMware vCenter Server (vpxd) failed. Details ‘SeverFaultCode: A specified parameter was not correct: spec.url’'
TLDR
Do you have multiple vmkernel management interfaces?
To resolve the issue, temporarily disable management service on the vmkernel interface that is not reachable by vCenter Server, enable Workload Management and then enable management services back again on the vmkernel interface.
Interesting Error!
I started troubleshooting by looking at the wcpsvc.log in vCenter Server Appliance under /var/log/vmware/wcp/wcpsvc.log
2022-01-31T12:07:48.59Z error wcp [kubelifecycle/controller.go:1458] [opID=61eafec9-domain-c8] Error configuring API server on cluster domain-c8 API call to VMware v
Center Server (vpxd) failed. Details 'ServerFaultCode: A specified parameter was not correct: spec.url'
2022-01-31T12:07:48.59Z warning wcp [kubelifecycle/controller.go:704] [opID=61eafec9-domain-c8] Unable to configure agent in cluster domain-c8. Err API call to VMwar
e vCenter Server (vpxd) failed. Details 'ServerFaultCode: A specified parameter was not correct: spec.url'
2022-01-31T12:07:48.59Z warning wcp [kubelifecycle/controller.go:704] [opID=61eafec9-domain-c8] Unable to configure agent in cluster domain-c8. Err API call to VMwar
e vCenter Server (vpxd) failed. Details 'ServerFaultCode: A specified parameter was not correct: spec.url'
2022-01-31T12:07:48.59Z warning wcp [kubelifecycle/controller.go:704] [opID=61eafec9-domain-c8] Unable to conf
Ok! we’ve got an opID that we can use to review vCenter Server logs (/var/log/vmware/vpxd/vpxd.log) [opID=61eafec9-domain-c8]
Looking at vpxd.log: grep -i 61eafec9-domain-c8 vpxd.log
2022-01-31T23:07:48.390+11:00 info vpxd[07174] [Originator@6876 sub=vpxLro opID=wcp-61eafec9-domain-c8-ef] [VpxLRO] -- BEGIN lro-1472225 -- SessionManager -- vim.SessionManager.acquireGenericServiceTicket -- 520001d4-b1bb-03ab-41d2-d613cea0caed(52080104-0933-3778-f8a0-67fe743092ac)
2022-01-31T23:07:48.391+11:00 error vpxd[07174] [Originator@6876 sub=MoSessionMgr opID=wcp-61eafec9-domain-c8-ef] [SessionManagerMo::GetHostBySpecInt] url host not found by IP: https://10.109.194.22/folder/87cbf761-ecf9-7020-4bbe-44a84248d2a6/wcpsvc.cab?dsName=vsanDatastore, 10.109.194.22
2022-01-31T23:07:48.391+11:00 warning vpxd[07174] [Originator@6876 sub=Vmomi opID=wcp-61eafec9-domain-c8-ef] VMOMI activation LRO failed; <<520001d4-b1bb-03ab-41d2-d613cea0caed, <TCP '127.0.0.1 : 8085'>, <TCP '127.0.0.1 : 42660'>>, SessionManager, vim.SessionManager.acquireGenericServiceTicket>, N5Vmomi5Fault15InvalidArgument9ExceptionE(Fault cause: vmodl.fault.InvalidArgument
2022-01-31T23:07:48.394+11:00 info vpxd[07174] [Originator@6876 sub=vpxLro opID=wcp-61eafec9-domain-c8-ef] [VpxLRO] -- FINISH lro-1472225
2022-01-31T23:07:48.395+11:00 info vpxd[07174] [Originator@6876 sub=Default opID=wcp-61eafec9-domain-c8-ef] [VpxLRO] -- ERROR lro-1472225 -- SessionManager -- vim.SessionManager.acquireGenericServiceTicket: vmodl.fault.InvalidArgument:
[SessionManagerMo::GetHostBySpecInt] url host not found by IP: https://10.109.194.22/folder/7cbf761-ecf9-7020-4bbe-44a84248d2a6/wcpsvc.cab?dsName=vsanDatastore, 10.109.194.22 The above error indicates that the host is not reachable on the IP 10.109.194.22
The Why?
As part of configuring workload management, Supervisor VMs get deployed and they need to be customized.
For customization a file is uploaded to the datastore where the VMs are created, through vpxd.
Now in my lab, the esxi hosts have multiple management vmkernel interfaces.
From the error above, vCenter picked the first management vmkernel interface to push the customization file. However, the first vmkernel interface is on another network and the API call failed.