Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateSelfHostedControlPlane ¶
func CreateSelfHostedControlPlane(manifestsDir, kubeConfigDir string, cfg *kubeadmapi.MasterConfiguration, client clientset.Interface, waiter apiclient.Waiter) error
CreateSelfHostedControlPlane is responsible for turning a Static Pod-hosted control plane to a self-hosted one It achieves that task this way:
- Load the Static Pod specification from disk (from /etc/kubernetes/manifests)
- Extract the PodSpec from that Static Pod specification
- Mutate the PodSpec to be compatible with self-hosting (add the right labels, taints, etc. so it can schedule correctly)
- Build a new DaemonSet object for the self-hosted component in question. Use the above mentioned PodSpec
- Create the DaemonSet resource. Wait until the Pods are running.
- Remove the Static Pod manifest file. The kubelet will stop the original Static Pod-hosted component that was running.
- The self-hosted containers should now step up and take over.
- In order to avoid race conditions, we have to make sure that static pod is deleted correctly before we continue Otherwise, there is a race condition when we proceed without kubelet having restarted the API server correctly and the next .Create call flakes
- Do that for the kube-apiserver, kube-controller-manager and kube-scheduler in a loop
Types ¶
type PodSpecMutatorFunc ¶
PodSpecMutatorFunc is a function capable of mutating a PodSpec
Click to show internal directories.
Click to hide internal directories.