kubernetes: k8s.io/kubernetes/cmd/kubeadm/app/phases/selfhosting Index | Files

package selfhosting

import "k8s.io/kubernetes/cmd/kubeadm/app/phases/selfhosting"


Package Files

podspec_mutation.go selfhosting.go selfhosting_volumes.go

func BuildDaemonSet Uses

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 Uses

func BuildSelfHostedComponentLabelQuery(componentName string) string

BuildSelfHostedComponentLabelQuery creates the right query for matching a self-hosted Pod

func BuildSelfhostedComponentLabels Uses

func BuildSelfhostedComponentLabels(component string) map[string]string

BuildSelfhostedComponentLabels returns the labels for a self-hosted component

func CreateSelfHostedControlPlane Uses

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: 1. Load the Static Pod specification from disk (from /etc/kubernetes/manifests) 2. Extract the PodSpec from that Static Pod specification 3. Mutate the PodSpec to be compatible with self-hosting (add the right labels, taints, etc. so it can schedule correctly) 4. Build a new DaemonSet object for the self-hosted component in question. Use the above mentioned PodSpec 5. Create the DaemonSet resource. Wait until the Pods are running. 6. Remove the Static Pod manifest file. The kubelet will stop the original Static Pod-hosted component that was running. 7. The self-hosted containers should now step up and take over. 8. 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

9. Do that for the kube-apiserver, kube-controller-manager and kube-scheduler in a loop

func GetDefaultMutators Uses

func GetDefaultMutators() map[string][]PodSpecMutatorFunc

GetDefaultMutators gets the mutator functions that always should be used

func GetMutatorsFromFeatureGates Uses

func GetMutatorsFromFeatureGates(certsInSecrets bool) map[string][]PodSpecMutatorFunc

GetMutatorsFromFeatureGates returns all mutators needed based on the feature gates passed

type PodSpecMutatorFunc Uses

type PodSpecMutatorFunc func(*v1.PodSpec)

PodSpecMutatorFunc is a function capable of mutating a PodSpec

Package selfhosting imports 18 packages (graph) and is imported by 9 packages. Updated 2020-05-21. Refresh now. Tools for package owners.