Documentation ¶
Index ¶
- func CreateOrMutateConfigMap(client clientset.Interface, cm *v1.ConfigMap, mutator ConfigMapMutator) error
- func CreateOrRetainConfigMap(client clientset.Interface, cm *v1.ConfigMap, configMapName string) error
- func CreateOrRetainDeployment(client clientset.Interface, deploy *apps.Deployment, deployName string) error
- func CreateOrUpdateClusterRole(client clientset.Interface, clusterRole *rbac.ClusterRole) error
- func CreateOrUpdateClusterRoleBinding(client clientset.Interface, clusterRoleBinding *rbac.ClusterRoleBinding) error
- func CreateOrUpdateConfigMap(client clientset.Interface, cm *v1.ConfigMap) error
- func CreateOrUpdateDaemonSet(client clientset.Interface, ds *apps.DaemonSet) error
- func CreateOrUpdateDeployment(client clientset.Interface, deploy *apps.Deployment) error
- func CreateOrUpdateRole(client clientset.Interface, role *rbac.Role) error
- func CreateOrUpdateRoleBinding(client clientset.Interface, roleBinding *rbac.RoleBinding) error
- func CreateOrUpdateSecret(client clientset.Interface, secret *v1.Secret) error
- func CreateOrUpdateServiceAccount(client clientset.Interface, sa *v1.ServiceAccount) error
- func DefaultMarshalFunc(obj runtime.Object, gv schema.GroupVersion) ([]byte, error)
- func DeleteDaemonSetForeground(client clientset.Interface, namespace, name string) error
- func DeleteDeploymentForeground(client clientset.Interface, namespace, name string) error
- func GetConfigMapWithRetry(client clientset.Interface, namespace, name string) (*v1.ConfigMap, error)
- func MutateConfigMap(client clientset.Interface, meta metav1.ObjectMeta, mutator ConfigMapMutator) error
- func NewDryRunClient(drg DryRunGetter, w io.Writer) clientset.Interface
- func NewDryRunClientWithOpts(opts DryRunClientOptions) clientset.Interface
- func PatchNode(client clientset.Interface, nodeName string, patchFn func(*v1.Node)) error
- func PatchNodeOnce(client clientset.Interface, nodeName string, patchFn func(*v1.Node)) func() (bool, error)
- func PrintBytesWithLinePrefix(w io.Writer, objBytes []byte, linePrefix string)
- func TryRunCommand(f func() error, failureThreshold int) error
- type ClientBackedDryRunGetter
- type ConfigMapMutator
- type DryRunClientOptions
- type DryRunGetter
- type InitDryRunGetter
- type KubeWaiter
- func (w *KubeWaiter) SetTimeout(timeout time.Duration)
- func (w *KubeWaiter) WaitForAPI() error
- func (w *KubeWaiter) WaitForHealthyKubelet(initialTimeout time.Duration, healthzEndpoint string) error
- func (w *KubeWaiter) WaitForKubeletAndFunc(f func() error) error
- func (w *KubeWaiter) WaitForPodToDisappear(podName string) error
- func (w *KubeWaiter) WaitForPodsWithLabel(kvLabel string) error
- func (w *KubeWaiter) WaitForStaticPodControlPlaneHashes(nodeName string) (map[string]string, error)
- func (w *KubeWaiter) WaitForStaticPodHashChange(nodeName, component, previousHash string) error
- func (w *KubeWaiter) WaitForStaticPodSingleHash(nodeName string, component string) (string, error)
- type MarshalFunc
- type Waiter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateOrMutateConfigMap ¶ added in v1.15.0
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 ¶ added in v1.11.0
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 ¶ added in v1.16.4
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
DefaultMarshalFunc is the default MarshalFunc used; uses YAML to print objects to the user
func DeleteDaemonSetForeground ¶
DeleteDaemonSetForeground deletes the specified DaemonSet in foreground mode; i.e. it blocks until/makes sure all the managed Pods are deleted
func DeleteDeploymentForeground ¶ added in v1.9.0
DeleteDeploymentForeground deletes the specified Deployment in foreground mode; i.e. it blocks until/makes sure all the managed Pods are deleted
func GetConfigMapWithRetry ¶ added in v1.15.0
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 ¶ added in v1.15.0
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 ¶ added in v1.11.0
PatchNode tries to patch a node using patchFn for the actual mutating logic. Retries are provided by the wait package.
func PatchNodeOnce ¶ added in v1.13.0
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 ¶
PrintBytesWithLinePrefix prints objBytes to writer w with linePrefix in the beginning of every line
func TryRunCommand ¶
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 ¶
func (clg *ClientBackedDryRunGetter) Client() clientset.Interface
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 ¶ added in v1.15.0
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 ¶ added in v1.11.0
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 /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 ¶
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 ¶ added in v1.13.0
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 ¶ added in v1.10.2
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 ¶ added in v1.9.0
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 ¶
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