Documentation
      ¶
    
    
  
    
  
    Index ¶
- func BuildDaemonSet(name string, podSpec *v1.PodSpec, mutators map[string][]PodSpecMutatorFunc) *apps.DaemonSet
 - func BuildSelfHostedComponentLabelQuery(componentName string) string
 - func BuildSelfhostedComponentLabels(component string) map[string]string
 - func CreateSelfHostedControlPlane(manifestsDir, kubeConfigDir string, cfg *kubeadmapi.InitConfiguration, ...) error
 - func GetDefaultMutators() map[string][]PodSpecMutatorFunc
 - func GetMutatorsFromFeatureGates(certsInSecrets bool) map[string][]PodSpecMutatorFunc
 - type PodSpecMutatorFunc
 
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildDaemonSet ¶
func BuildDaemonSet(name string, podSpec *v1.PodSpec, mutators map[string][]PodSpecMutatorFunc) *apps.DaemonSet
BuildDaemonSet is responsible for mutating the PodSpec and returns a DaemonSet which is suitable for self-hosting
func BuildSelfHostedComponentLabelQuery ¶
BuildSelfHostedComponentLabelQuery creates the right query for matching a self-hosted Pod
func BuildSelfhostedComponentLabels ¶
BuildSelfhostedComponentLabels returns the labels for a self-hosted component
func CreateSelfHostedControlPlane ¶
func CreateSelfHostedControlPlane(manifestsDir, kubeConfigDir string, cfg *kubeadmapi.InitConfiguration, client clientset.Interface, waiter apiclient.Waiter, dryRun bool, certsInSecrets bool) 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
 
func GetDefaultMutators ¶
func GetDefaultMutators() map[string][]PodSpecMutatorFunc
GetDefaultMutators gets the mutator functions that always should be used
func GetMutatorsFromFeatureGates ¶
func GetMutatorsFromFeatureGates(certsInSecrets bool) map[string][]PodSpecMutatorFunc
GetMutatorsFromFeatureGates returns all mutators needed based on the feature gates passed
Types ¶
type PodSpecMutatorFunc ¶
PodSpecMutatorFunc is a function capable of mutating a PodSpec