Documentation ¶
Overview ¶
Package kubectl provides the functions used by the kubectl command line tool under k8s.io/kubernetes/cmd. The functions are kept in this package to better support unit testing. The main() method for kubectl is only an entry point and should contain no functionality.
Index ¶
- Variables
- func AbortRollingUpdate(c *RollingUpdaterConfig) error
- func AddDeploymentKeyToReplicationController(oldRc *corev1.ReplicationController, ...) (*corev1.ReplicationController, error)
- func ControllerHasDesiredReplicas(rcClient corev1client.ReplicationControllersGetter, ...) wait.ConditionFunc
- func CreateNewControllerFromCurrentController(rcClient corev1client.ReplicationControllersGetter, codec runtime.Codec, ...) (*corev1.ReplicationController, error)
- func FindSourceController(r corev1client.ReplicationControllersGetter, namespace, name string) (*corev1.ReplicationController, error)
- func GetNextControllerAnnotation(rc *corev1.ReplicationController) (string, bool)
- func LoadExistingNextReplicationController(c corev1client.ReplicationControllersGetter, namespace, newName string) (*corev1.ReplicationController, error)
- func PodCompleted(event watch.Event) (bool, error)
- func PodRunningAndReady(event watch.Event) (bool, error)
- func Rename(c corev1client.ReplicationControllersGetter, rc *corev1.ReplicationController, ...) error
- func ScaleCondition(r Scaler, precondition *ScalePrecondition, namespace, name string, count uint, ...) wait.ConditionFunc
- func SetNextControllerAnnotation(rc *corev1.ReplicationController, name string)
- func UpdateExistingReplicationController(rcClient corev1client.ReplicationControllersGetter, ...) (*corev1.ReplicationController, error)
- func WaitForScaleHasDesiredReplicas(sClient scaleclient.ScalesGetter, gr schema.GroupResource, resourceName string, ...) error
- type NewControllerConfig
- type PreconditionError
- type RESTClient
- type RetryParams
- type RollingUpdater
- type RollingUpdaterCleanupPolicy
- type RollingUpdaterConfig
- type ScalePrecondition
- type Scaler
Constants ¶
This section is empty.
Variables ¶
var ErrPodCompleted = fmt.Errorf("pod ran to completion")
ErrPodCompleted is returned by PodRunning or PodContainerRunning to indicate that the pod has already reached completed state.
Functions ¶
func AbortRollingUpdate ¶ added in v0.17.0
func AbortRollingUpdate(c *RollingUpdaterConfig) error
func AddDeploymentKeyToReplicationController ¶ added in v0.17.0
func AddDeploymentKeyToReplicationController(oldRc *corev1.ReplicationController, rcClient corev1client.ReplicationControllersGetter, podClient corev1client.PodsGetter, deploymentKey, deploymentValue, namespace string, out io.Writer) (*corev1.ReplicationController, error)
func ControllerHasDesiredReplicas ¶ added in v1.10.0
func ControllerHasDesiredReplicas(rcClient corev1client.ReplicationControllersGetter, controller *corev1.ReplicationController) wait.ConditionFunc
ControllerHasDesiredReplicas returns a condition that will be true if and only if the desired replica count for a controller's ReplicaSelector equals the Replicas count.
func CreateNewControllerFromCurrentController ¶ added in v0.17.0
func CreateNewControllerFromCurrentController(rcClient corev1client.ReplicationControllersGetter, codec runtime.Codec, cfg *NewControllerConfig) (*corev1.ReplicationController, error)
func FindSourceController ¶ added in v0.17.0
func FindSourceController(r corev1client.ReplicationControllersGetter, namespace, name string) (*corev1.ReplicationController, error)
func GetNextControllerAnnotation ¶ added in v0.17.0
func GetNextControllerAnnotation(rc *corev1.ReplicationController) (string, bool)
func LoadExistingNextReplicationController ¶ added in v0.17.0
func LoadExistingNextReplicationController(c corev1client.ReplicationControllersGetter, namespace, newName string) (*corev1.ReplicationController, error)
func PodCompleted ¶ added in v1.10.0
PodCompleted returns true if the pod has run to completion, false if the pod has not yet reached running state, or an error in any other case.
func PodRunningAndReady ¶ added in v1.10.0
PodRunningAndReady returns true if the pod is running and ready, false if the pod has not yet reached those states, returns ErrPodCompleted if the pod has run to completion, or an error in any other case.
func Rename ¶ added in v0.17.0
func Rename(c corev1client.ReplicationControllersGetter, rc *corev1.ReplicationController, newName string) error
func ScaleCondition ¶ added in v0.18.0
func ScaleCondition(r Scaler, precondition *ScalePrecondition, namespace, name string, count uint, updatedResourceVersion *string, gr schema.GroupResource) wait.ConditionFunc
ScaleCondition is a closure around Scale that facilitates retries via util.wait
func SetNextControllerAnnotation ¶ added in v0.17.0
func SetNextControllerAnnotation(rc *corev1.ReplicationController, name string)
func UpdateExistingReplicationController ¶ added in v0.17.0
func UpdateExistingReplicationController(rcClient corev1client.ReplicationControllersGetter, podClient corev1client.PodsGetter, oldRc *corev1.ReplicationController, namespace, newName, deploymentKey, deploymentValue string, out io.Writer) (*corev1.ReplicationController, error)
func WaitForScaleHasDesiredReplicas ¶ added in v1.11.0
func WaitForScaleHasDesiredReplicas(sClient scaleclient.ScalesGetter, gr schema.GroupResource, resourceName string, namespace string, newSize uint, waitForReplicas *RetryParams) error
WaitForScaleHasDesiredReplicas waits until condition scaleHasDesiredReplicas is satisfied or returns error when timeout happens
Types ¶
type NewControllerConfig ¶ added in v1.2.5
type PreconditionError ¶ added in v0.9.0
A PreconditionError is returned when a resource fails to match the scale preconditions passed to kubectl.
func (PreconditionError) Error ¶ added in v0.9.0
func (pe PreconditionError) Error() string
type RESTClient ¶
type RESTClient interface { Get() *client.Request Post() *client.Request Patch(types.PatchType) *client.Request Delete() *client.Request Put() *client.Request }
RESTClient is a client helper for dealing with RESTful resources in a generic way.
type RetryParams ¶ added in v0.15.0
RetryParams encapsulates the retry parameters used by kubectl's scaler.
func NewRetryParams ¶ added in v0.18.0
func NewRetryParams(interval, timeout time.Duration) *RetryParams
type RollingUpdater ¶ added in v0.9.0
type RollingUpdater struct {
// contains filtered or unexported fields
}
RollingUpdater provides methods for updating replicated pods in a predictable, fault-tolerant way.
func NewRollingUpdater ¶ added in v0.9.0
func NewRollingUpdater(namespace string, rcClient corev1client.ReplicationControllersGetter, podClient corev1client.PodsGetter, sc scaleclient.ScalesGetter) *RollingUpdater
NewRollingUpdater creates a RollingUpdater from a client.
func (*RollingUpdater) Update ¶ added in v0.9.0
func (r *RollingUpdater) Update(config *RollingUpdaterConfig) error
Update all pods for a ReplicationController (oldRc) by creating a new controller (newRc) with 0 replicas, and synchronously scaling oldRc and newRc until oldRc has 0 replicas and newRc has the original # of desired replicas. Cleanup occurs based on a RollingUpdaterCleanupPolicy.
Each interval, the updater will attempt to make progress however it can without violating any availability constraints defined by the config. This means the amount scaled up or down each interval will vary based on the timeliness of readiness and the updater will always try to make progress, even slowly.
If an update from newRc to oldRc is already in progress, we attempt to drive it to completion. If an error occurs at any step of the update, the error will be returned.
A scaling event (either up or down) is considered progress; if no progress is made within the config.Timeout, an error is returned.
TODO: make this handle performing a rollback of a partially completed rollout.
type RollingUpdaterCleanupPolicy ¶ added in v0.16.0
type RollingUpdaterCleanupPolicy string
RollingUpdaterCleanupPolicy is a cleanup action to take after the deployment is complete.
const ( // DeleteRollingUpdateCleanupPolicy means delete the old controller. DeleteRollingUpdateCleanupPolicy RollingUpdaterCleanupPolicy = "Delete" // PreserveRollingUpdateCleanupPolicy means keep the old controller. PreserveRollingUpdateCleanupPolicy RollingUpdaterCleanupPolicy = "Preserve" // RenameRollingUpdateCleanupPolicy means delete the old controller, and rename // the new controller to the name of the old controller. RenameRollingUpdateCleanupPolicy RollingUpdaterCleanupPolicy = "Rename" )
type RollingUpdaterConfig ¶ added in v0.16.0
type RollingUpdaterConfig struct { // Out is a writer for progress output. Out io.Writer // OldRC is an existing controller to be replaced. OldRc *corev1.ReplicationController // NewRc is a controller that will take ownership of updated pods (will be // created if needed). NewRc *corev1.ReplicationController // UpdatePeriod is the time to wait between individual pod updates. UpdatePeriod time.Duration // Interval is the time to wait between polling controller status after // update. Interval time.Duration // Timeout is the time to wait for controller updates before giving up. Timeout time.Duration // MinReadySeconds is the number of seconds to wait after the pods are ready MinReadySeconds int32 // CleanupPolicy defines the cleanup action to take after the deployment is // complete. CleanupPolicy RollingUpdaterCleanupPolicy // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). // Absolute number is calculated from percentage by rounding up. // This can not be 0 if MaxSurge is 0. // By default, a fixed value of 1 is used. // Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods // immediately when the rolling update starts. Once new pods are ready, old RC // can be scaled down further, followed by scaling up the new RC, ensuring // that the total number of pods available at all times during the update is at // least 70% of desired pods. MaxUnavailable intstr.IntOrString // MaxSurge is the maximum number of pods that can be scheduled above the desired number of pods. // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). // This can not be 0 if MaxUnavailable is 0. // Absolute number is calculated from percentage by rounding up. // By default, a value of 1 is used. // Example: when this is set to 30%, the new RC can be scaled up immediately // when the rolling update starts, such that the total number of old and new pods do not exceed // 130% of desired pods. Once old pods have been killed, new RC can be scaled up // further, ensuring that total number of pods running at any time during // the update is at most 130% of desired pods. MaxSurge intstr.IntOrString // OnProgress is invoked if set during each scale cycle, to allow the caller to perform additional logic or // abort the scale. If an error is returned the cleanup method will not be invoked. The percentage value // is a synthetic "progress" calculation that represents the approximate percentage completion. OnProgress func(oldRc, newRc *corev1.ReplicationController, percentage int) error }
RollingUpdaterConfig is the configuration for a rolling deployment process.
type ScalePrecondition ¶ added in v0.18.0
ScalePrecondition describes a condition that must be true for the scale to take place If CurrentSize == -1, it is ignored. If CurrentResourceVersion is the empty string, it is ignored. Otherwise they must equal the values in the resource for it to be valid.
type Scaler ¶ added in v0.18.0
type Scaler interface { // Scale scales the named resource after checking preconditions. It optionally // retries in the event of resource version mismatch (if retry is not nil), // and optionally waits until the status of the resource matches newSize (if wait is not nil) // TODO: Make the implementation of this watch-based (#56075) once #31345 is fixed. Scale(namespace, name string, newSize uint, preconditions *ScalePrecondition, retry, wait *RetryParams, gr schema.GroupResource) error // ScaleSimple does a simple one-shot attempt at scaling - not useful on its own, but // a necessary building block for Scale ScaleSimple(namespace, name string, preconditions *ScalePrecondition, newSize uint, gr schema.GroupResource) (updatedResourceVersion string, err error) }
Scaler provides an interface for resources that can be scaled.
func NewScaler ¶ added in v1.11.0
func NewScaler(scalesGetter scaleclient.ScalesGetter) Scaler
NewScaler get a scaler for a given resource
Directories ¶
Path | Synopsis |
---|---|
set/env
Package env provides functions to incorporate environment variables into set env.
|
Package env provides functions to incorporate environment variables into set env. |
taint
Package taints implements utilites for working with taints
|
Package taints implements utilites for working with taints |