vsphere-cloud-controller-manger only sets providerID on tainted nodes

Bug #2015303 reported by Adam Dyess
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
vSphere Cloud Provider Charm
Triaged
Low
Unassigned

Bug Description

According to upstream docs[0] concerning the cloud-manager indicate that when kubelet on a kubernetes node starts, it should have `--cloud-provider=external` set which will taint the node with

* node.cloudprovider.kubernetes.io/uninitialized=true:NoSchedule

To prevent scheduling workloads on this node until the cloud-provider is started. the vsphere-cloud-controller-manager goes an extra step and doesn't set the providerID and other annotations on a node until it is running and discovers a node with this taint in place. Once it finds the node, it will set its annotations, set the providerID, and remove this taint.

It's possible to start charmed-kubernetes without a cloud-provider charm attached, but once the charm is started and related -- the nodes already enlisted into the cluster do not have this taint. Even restarting kubelet with the new argument `--cloud-provider=external` has no effect on adding this taint because the node is already registered.

In order for the vsphere-cloud-controller-manager to action upon those nodes, that taint must be set:

WORKAROUND:
Taint all the nodes once the vsphere-cloud-controller-manager is running in kube-system
> kubectl taint nodes --all node.cloudprovider.kubernetes.io/uninitialized=true:NoSchedule

[0]: https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/#running-cloud-controller-manager

Adam Dyess (addyess)
Changed in charm-vsphere-cloud-provider:
importance: Undecided → Low
status: New → Triaged
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.