Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateOrMutateConfigMap

func CreateOrMutateConfigMap(client clientset.Interface, cm *v1.ConfigMap, mutator ConfigMapMutator) error

    CreateOrMutateConfigMap tries to create the ConfigMap provided as cm. If the resource exists already, the latest version will be fetched from the cluster and mutator callback will be called on it, then an Update of the mutated ConfigMap will be performed. This function is resilient to conflicts, and a retry will be issued if the ConfigMap was modified on the server between the refresh and the update (while the mutation was taking place)

    func CreateOrRetainConfigMap

    func CreateOrRetainConfigMap(client clientset.Interface, cm *v1.ConfigMap, configMapName string) error

      CreateOrRetainConfigMap creates a ConfigMap if the target resource doesn't exist. If the resource exists already, this function will retain the resource instead.

      func CreateOrRetainDeployment

      func CreateOrRetainDeployment(client clientset.Interface, deploy *apps.Deployment, deployName string) error

        CreateOrRetainDeployment creates a Deployment if the target resource doesn't exist. If the resource exists already, this function will retain the resource instead.

        func CreateOrUpdateClusterRole

        func CreateOrUpdateClusterRole(client clientset.Interface, clusterRole *rbac.ClusterRole) error

          CreateOrUpdateClusterRole creates a ClusterRole if the target resource doesn't exist. If the resource exists already, this function will update the resource instead.

          func CreateOrUpdateClusterRoleBinding

          func CreateOrUpdateClusterRoleBinding(client clientset.Interface, clusterRoleBinding *rbac.ClusterRoleBinding) error

            CreateOrUpdateClusterRoleBinding creates a ClusterRoleBinding if the target resource doesn't exist. If the resource exists already, this function will update the resource instead.

            func CreateOrUpdateConfigMap

            func CreateOrUpdateConfigMap(client clientset.Interface, cm *v1.ConfigMap) error

              CreateOrUpdateConfigMap creates a ConfigMap if the target resource doesn't exist. If the resource exists already, this function will update the resource instead.

              func CreateOrUpdateDaemonSet

              func CreateOrUpdateDaemonSet(client clientset.Interface, ds *apps.DaemonSet) error

                CreateOrUpdateDaemonSet creates a DaemonSet if the target resource doesn't exist. If the resource exists already, this function will update the resource instead.

                func CreateOrUpdateDeployment

                func CreateOrUpdateDeployment(client clientset.Interface, deploy *apps.Deployment) error

                  CreateOrUpdateDeployment creates a Deployment if the target resource doesn't exist. If the resource exists already, this function will update the resource instead.

                  func CreateOrUpdateRole

                  func CreateOrUpdateRole(client clientset.Interface, role *rbac.Role) error

                    CreateOrUpdateRole creates a Role if the target resource doesn't exist. If the resource exists already, this function will update the resource instead.

                    func CreateOrUpdateRoleBinding

                    func CreateOrUpdateRoleBinding(client clientset.Interface, roleBinding *rbac.RoleBinding) error

                      CreateOrUpdateRoleBinding creates a RoleBinding if the target resource doesn't exist. If the resource exists already, this function will update the resource instead.

                      func CreateOrUpdateSecret

                      func CreateOrUpdateSecret(client clientset.Interface, secret *v1.Secret) error

                        CreateOrUpdateSecret creates a Secret if the target resource doesn't exist. If the resource exists already, this function will update the resource instead.

                        func CreateOrUpdateServiceAccount

                        func CreateOrUpdateServiceAccount(client clientset.Interface, sa *v1.ServiceAccount) error

                          CreateOrUpdateServiceAccount creates a ServiceAccount if the target resource doesn't exist. If the resource exists already, this function will update the resource instead.

                          func DefaultMarshalFunc

                          func DefaultMarshalFunc(obj runtime.Object, gv schema.GroupVersion) ([]byte, error)

                            DefaultMarshalFunc is the default MarshalFunc used; uses YAML to print objects to the user

                            func DeleteDaemonSetForeground

                            func DeleteDaemonSetForeground(client clientset.Interface, namespace, name string) error

                              DeleteDaemonSetForeground deletes the specified DaemonSet in foreground mode; i.e. it blocks until/makes sure all the managed Pods are deleted

                              func DeleteDeploymentForeground

                              func DeleteDeploymentForeground(client clientset.Interface, namespace, name string) error

                                DeleteDeploymentForeground deletes the specified Deployment in foreground mode; i.e. it blocks until/makes sure all the managed Pods are deleted

                                func GetConfigMapWithRetry

                                func GetConfigMapWithRetry(client clientset.Interface, namespace, name string) (*v1.ConfigMap, error)

                                  GetConfigMapWithRetry tries to retrieve a ConfigMap using the given client, retrying if we get an unexpected error.

                                  TODO: evaluate if this can be done better. Potentially remove the retry if feasible.

                                  func MutateConfigMap

                                  func MutateConfigMap(client clientset.Interface, meta metav1.ObjectMeta, mutator ConfigMapMutator) error

                                    MutateConfigMap takes a ConfigMap Object Meta (namespace and name), retrieves the resource from the server and tries to mutate it by calling to the mutator callback, then an Update of the mutated ConfigMap will be performed. This function is resilient to conflicts, and a retry will be issued if the ConfigMap was modified on the server between the refresh and the update (while the mutation was taking place).

                                    func NewDryRunClient

                                    func NewDryRunClient(drg DryRunGetter, w io.Writer) clientset.Interface

                                      NewDryRunClient is a wrapper for NewDryRunClientWithOpts using some default values

                                      func NewDryRunClientWithOpts

                                      func NewDryRunClientWithOpts(opts DryRunClientOptions) clientset.Interface

                                        NewDryRunClientWithOpts returns a clientset.Interface that can be used normally for talking to the Kubernetes API. This client doesn't apply changes to the backend. The client gets GET/LIST values from the DryRunGetter implementation. This client logs all I/O to the writer w in YAML format

                                        func PatchNode

                                        func PatchNode(client clientset.Interface, nodeName string, patchFn func(*v1.Node)) error

                                          PatchNode tries to patch a node using patchFn for the actual mutating logic. Retries are provided by the wait package.

                                          func PatchNodeOnce

                                          func PatchNodeOnce(client clientset.Interface, nodeName string, patchFn func(*v1.Node)) func() (bool, error)

                                            PatchNodeOnce executes patchFn on the node object found by the node name. This is a condition function meant to be used with wait.Poll. false, nil implies it is safe to try again, an error indicates no more tries should be made and true indicates success.

                                            func PrintBytesWithLinePrefix

                                            func PrintBytesWithLinePrefix(w io.Writer, objBytes []byte, linePrefix string)

                                              PrintBytesWithLinePrefix prints objBytes to writer w with linePrefix in the beginning of every line

                                              func TryRunCommand

                                              func TryRunCommand(f func() error, failureThreshold int) error

                                                TryRunCommand runs a function a maximum of failureThreshold times, and retries on error. If failureThreshold is hit; the last error is returned

                                                Types

                                                type ClientBackedDryRunGetter

                                                type ClientBackedDryRunGetter struct {
                                                	// contains filtered or unexported fields
                                                }

                                                  ClientBackedDryRunGetter implements the DryRunGetter interface for use in NewDryRunClient() and proxies all GET and LIST requests to the backing API server reachable via rest.Config

                                                  func NewClientBackedDryRunGetter

                                                  func NewClientBackedDryRunGetter(config *rest.Config) (*ClientBackedDryRunGetter, error)

                                                    NewClientBackedDryRunGetter creates a new ClientBackedDryRunGetter instance based on the rest.Config object

                                                    func NewClientBackedDryRunGetterFromKubeconfig

                                                    func NewClientBackedDryRunGetterFromKubeconfig(file string) (*ClientBackedDryRunGetter, error)

                                                      NewClientBackedDryRunGetterFromKubeconfig creates a new ClientBackedDryRunGetter instance from the given KubeConfig file

                                                      func (*ClientBackedDryRunGetter) Client

                                                        Client gets the backing clientset.Interface

                                                        func (*ClientBackedDryRunGetter) HandleGetAction

                                                        func (clg *ClientBackedDryRunGetter) HandleGetAction(action core.GetAction) (bool, runtime.Object, error)

                                                          HandleGetAction handles GET actions to the dryrun clientset this interface supports

                                                          func (*ClientBackedDryRunGetter) HandleListAction

                                                          func (clg *ClientBackedDryRunGetter) HandleListAction(action core.ListAction) (bool, runtime.Object, error)

                                                            HandleListAction handles LIST actions to the dryrun clientset this interface supports

                                                            type ConfigMapMutator

                                                            type ConfigMapMutator func(*v1.ConfigMap) error

                                                              ConfigMapMutator is a function that mutates the given ConfigMap and optionally returns an error

                                                              type DryRunClientOptions

                                                              type DryRunClientOptions struct {
                                                              	Writer          io.Writer
                                                              	Getter          DryRunGetter
                                                              	PrependReactors []core.Reactor
                                                              	AppendReactors  []core.Reactor
                                                              	MarshalFunc     MarshalFunc
                                                              	PrintGETAndLIST bool
                                                              }

                                                                DryRunClientOptions specifies options to pass to NewDryRunClientWithOpts in order to get a dryrun clientset

                                                                func GetDefaultDryRunClientOptions

                                                                func GetDefaultDryRunClientOptions(drg DryRunGetter, w io.Writer) DryRunClientOptions

                                                                  GetDefaultDryRunClientOptions returns the default DryRunClientOptions values

                                                                  type DryRunGetter

                                                                  type DryRunGetter interface {
                                                                  	HandleGetAction(core.GetAction) (bool, runtime.Object, error)
                                                                  	HandleListAction(core.ListAction) (bool, runtime.Object, error)
                                                                  }

                                                                    DryRunGetter is an interface that must be supplied to the NewDryRunClient function in order to construct a fully functional fake dryrun clientset

                                                                    type InitDryRunGetter

                                                                    type InitDryRunGetter struct {
                                                                    	// contains filtered or unexported fields
                                                                    }

                                                                      InitDryRunGetter implements the DryRunGetter interface and can be used to GET/LIST values in the dryrun fake clientset Need to handle these routes in a special manner: - GET /default/services/kubernetes -- must return a valid Service - GET /clusterrolebindings/system:nodes -- can safely return a NotFound error - GET /kube-system/secrets/bootstrap-token-* -- can safely return a NotFound error - GET /nodes/<node-name> -- must return a valid Node - ...all other, unknown GETs/LISTs will be logged

                                                                      func NewInitDryRunGetter

                                                                      func NewInitDryRunGetter(controlPlaneName string, serviceSubnet string) *InitDryRunGetter

                                                                        NewInitDryRunGetter creates a new instance of the InitDryRunGetter struct

                                                                        func (*InitDryRunGetter) HandleGetAction

                                                                        func (idr *InitDryRunGetter) HandleGetAction(action core.GetAction) (bool, runtime.Object, error)

                                                                          HandleGetAction handles GET actions to the dryrun clientset this interface supports

                                                                          func (*InitDryRunGetter) HandleListAction

                                                                          func (idr *InitDryRunGetter) HandleListAction(action core.ListAction) (bool, runtime.Object, error)

                                                                            HandleListAction handles GET actions to the dryrun clientset this interface supports. Currently there are no known LIST calls during kubeadm init this code has to take care of.

                                                                            type KubeWaiter

                                                                            type KubeWaiter struct {
                                                                            	// contains filtered or unexported fields
                                                                            }

                                                                              KubeWaiter is an implementation of Waiter that is backed by a Kubernetes client

                                                                              func (*KubeWaiter) SetTimeout

                                                                              func (w *KubeWaiter) SetTimeout(timeout time.Duration)

                                                                                SetTimeout adjusts the timeout to the specified duration

                                                                                func (*KubeWaiter) WaitForAPI

                                                                                func (w *KubeWaiter) WaitForAPI() error

                                                                                  WaitForAPI waits for the API Server's /healthz endpoint to report "ok"

                                                                                  func (*KubeWaiter) WaitForHealthyKubelet

                                                                                  func (w *KubeWaiter) WaitForHealthyKubelet(initialTimeout time.Duration, healthzEndpoint string) error

                                                                                    WaitForHealthyKubelet blocks until the kubelet /healthz endpoint returns 'ok'

                                                                                    func (*KubeWaiter) WaitForKubeletAndFunc

                                                                                    func (w *KubeWaiter) WaitForKubeletAndFunc(f func() error) error

                                                                                      WaitForKubeletAndFunc waits primarily for the function f to execute, even though it might take some time. If that takes a long time, and the kubelet /healthz continuously are unhealthy, kubeadm will error out after a period of exponential backoff

                                                                                      func (*KubeWaiter) WaitForPodToDisappear

                                                                                      func (w *KubeWaiter) WaitForPodToDisappear(podName string) error

                                                                                        WaitForPodToDisappear blocks until it timeouts or gets a "NotFound" response from the API Server when getting the Static Pod in question

                                                                                        func (*KubeWaiter) WaitForPodsWithLabel

                                                                                        func (w *KubeWaiter) WaitForPodsWithLabel(kvLabel string) error

                                                                                          WaitForPodsWithLabel will lookup pods with the given label and wait until they are all reporting status as running.

                                                                                          func (*KubeWaiter) WaitForStaticPodControlPlaneHashes

                                                                                          func (w *KubeWaiter) WaitForStaticPodControlPlaneHashes(nodeName string) (map[string]string, error)

                                                                                            WaitForStaticPodControlPlaneHashes blocks until it timeouts or gets a hash map for all components and their Static Pods

                                                                                            func (*KubeWaiter) WaitForStaticPodHashChange

                                                                                            func (w *KubeWaiter) WaitForStaticPodHashChange(nodeName, component, previousHash string) error

                                                                                              WaitForStaticPodHashChange blocks until it timeouts or notices that the Mirror Pod (for the Static Pod, respectively) has changed This implicitly means this function blocks until the kubelet has restarted the Static Pod in question

                                                                                              func (*KubeWaiter) WaitForStaticPodSingleHash

                                                                                              func (w *KubeWaiter) WaitForStaticPodSingleHash(nodeName string, component string) (string, error)

                                                                                                WaitForStaticPodSingleHash blocks until it timeouts or gets a hash for a single component and its Static Pod

                                                                                                type MarshalFunc

                                                                                                type MarshalFunc func(runtime.Object, schema.GroupVersion) ([]byte, error)

                                                                                                  MarshalFunc takes care of converting any object to a byte array for displaying the object to the user

                                                                                                  type Waiter

                                                                                                  type Waiter interface {
                                                                                                  	// WaitForAPI waits for the API Server's /healthz endpoint to become "ok"
                                                                                                  	WaitForAPI() error
                                                                                                  	// WaitForPodsWithLabel waits for Pods in the kube-system namespace to become Ready
                                                                                                  	WaitForPodsWithLabel(kvLabel string) error
                                                                                                  	// WaitForPodToDisappear waits for the given Pod in the kube-system namespace to be deleted
                                                                                                  	WaitForPodToDisappear(staticPodName string) error
                                                                                                  	// WaitForStaticPodSingleHash fetches sha256 hash for the control plane static pod
                                                                                                  	WaitForStaticPodSingleHash(nodeName string, component string) (string, error)
                                                                                                  	// WaitForStaticPodHashChange waits for the given static pod component's static pod hash to get updated.
                                                                                                  	// By doing that we can be sure that the kubelet has restarted the given Static Pod
                                                                                                  	WaitForStaticPodHashChange(nodeName, component, previousHash string) error
                                                                                                  	// WaitForStaticPodControlPlaneHashes fetches sha256 hashes for the control plane static pods
                                                                                                  	WaitForStaticPodControlPlaneHashes(nodeName string) (map[string]string, error)
                                                                                                  	// WaitForHealthyKubelet blocks until the kubelet /healthz endpoint returns 'ok'
                                                                                                  	WaitForHealthyKubelet(initialTimeout time.Duration, healthzEndpoint string) error
                                                                                                  	// WaitForKubeletAndFunc is a wrapper for WaitForHealthyKubelet that also blocks for a function
                                                                                                  	WaitForKubeletAndFunc(f func() error) error
                                                                                                  	// SetTimeout adjusts the timeout to the specified duration
                                                                                                  	SetTimeout(timeout time.Duration)
                                                                                                  }

                                                                                                    Waiter is an interface for waiting for criteria in Kubernetes to happen

                                                                                                    func NewKubeWaiter

                                                                                                    func NewKubeWaiter(client clientset.Interface, timeout time.Duration, writer io.Writer) Waiter

                                                                                                      NewKubeWaiter returns a new Waiter object that talks to the given Kubernetes cluster