kubernetes: k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient Index | Files

package apiclient

import "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient"

Index

Package Files

clientbacked_dryrun.go dryrunclient.go idempotency.go init_dryrun.go wait.go

func CreateOrMutateConfigMap Uses

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

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

NewDryRunClient is a wrapper for NewDryRunClientWithOpts using some default values

func NewDryRunClientWithOpts Uses

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 Uses

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 Uses

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 Uses

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 Uses

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

type ClientBackedDryRunGetter Uses

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 Uses

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

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

func NewClientBackedDryRunGetterFromKubeconfig Uses

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

NewClientBackedDryRunGetterFromKubeconfig creates a new ClientBackedDryRunGetter instance from the given KubeConfig file

func (*ClientBackedDryRunGetter) Client Uses

func (clg *ClientBackedDryRunGetter) Client() clientset.Interface

Client gets the backing clientset.Interface

func (*ClientBackedDryRunGetter) HandleGetAction Uses

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 Uses

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

HandleListAction handles LIST actions to the dryrun clientset this interface supports

type ConfigMapMutator Uses

type ConfigMapMutator func(*v1.ConfigMap) error

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

type DryRunClientOptions Uses

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 Uses

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

GetDefaultDryRunClientOptions returns the default DryRunClientOptions values

type DryRunGetter Uses

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 Uses

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 Uses

func NewInitDryRunGetter(controlPlaneName string, serviceSubnet string) *InitDryRunGetter

NewInitDryRunGetter creates a new instance of the InitDryRunGetter struct

func (*InitDryRunGetter) HandleGetAction Uses

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 Uses

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 Uses

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

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

func (*KubeWaiter) SetTimeout Uses

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

SetTimeout adjusts the timeout to the specified duration

func (*KubeWaiter) WaitForAPI Uses

func (w *KubeWaiter) WaitForAPI() error

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

func (*KubeWaiter) WaitForHealthyKubelet Uses

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

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

func (*KubeWaiter) WaitForKubeletAndFunc Uses

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

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(initalTimeout 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 Uses

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

Package apiclient imports 33 packages (graph) and is imported by 67 packages. Updated 2019-12-01. Refresh now. Tools for package owners.