Documentation ¶
Overview ¶
Package mdutil implements MachineDeployment utilities.
Package mdutil implements MachineDeployment utilities. Deprecated: This package is becoming internal and it will be removed in a next release.
Index ¶
- Constants
- func CloneAndAddLabel(labels map[string]string, labelKey, labelValue string) map[string]string
- func CloneSelectorAndAddLabel(selector *metav1.LabelSelector, labelKey, labelValue string) *metav1.LabelSelector
- func ComputeHash(template *clusterv1.MachineTemplateSpec) uint32
- func ComputeSpewHash(template *clusterv1.MachineTemplateSpec) (uint32, error)
- func DeepHashObject(hasher hash.Hash, objectToWrite interface{})
- func DeploymentComplete(deployment *clusterv1.MachineDeployment, ...) bool
- func EqualMachineTemplate(template1, template2 *clusterv1.MachineTemplateSpec) bool
- func FilterActiveMachineSets(machineSets []*clusterv1.MachineSet) []*clusterv1.MachineSet
- func FilterMachineSets(mSes []*clusterv1.MachineSet, filterFn filterMS) []*clusterv1.MachineSet
- func FindNewMachineSet(deployment *clusterv1.MachineDeployment, msList []*clusterv1.MachineSet) *clusterv1.MachineSet
- func FindOldMachineSets(deployment *clusterv1.MachineDeployment, msList []*clusterv1.MachineSet) ([]*clusterv1.MachineSet, []*clusterv1.MachineSet)
- func FindOneActiveOrLatest(newMS *clusterv1.MachineSet, oldMSs []*clusterv1.MachineSet) *clusterv1.MachineSet
- func GetActualReplicaCountForMachineSets(machineSets []*clusterv1.MachineSet) int32
- func GetAvailableReplicaCountForMachineSets(machineSets []*clusterv1.MachineSet) int32
- func GetDeletingMachineCount(machineList *clusterv1.MachineList) int32
- func GetProportion(ms *clusterv1.MachineSet, d clusterv1.MachineDeployment, ...) int32
- func GetReadyReplicaCountForMachineSets(machineSets []*clusterv1.MachineSet) int32
- func GetReplicaCountForMachineSets(machineSets []*clusterv1.MachineSet) int32
- func IsRollingUpdate(deployment *clusterv1.MachineDeployment) bool
- func IsSaturated(deployment *clusterv1.MachineDeployment, ms *clusterv1.MachineSet) bool
- func MaxRevision(allMSs []*clusterv1.MachineSet, logger logr.Logger) int64
- func MaxSurge(deployment clusterv1.MachineDeployment) int32
- func MaxUnavailable(deployment clusterv1.MachineDeployment) int32
- func NewMSNewReplicas(deployment *clusterv1.MachineDeployment, allMSs []*clusterv1.MachineSet, ...) (int32, error)
- func ReplicasAnnotationsNeedUpdate(ms *clusterv1.MachineSet, desiredReplicas, maxReplicas int32) bool
- func ResolveFenceposts(maxSurge, maxUnavailable *intstrutil.IntOrString, desired int32) (int32, int32, error)
- func Revision(obj runtime.Object) (int64, error)
- func SetDeploymentRevision(deployment *clusterv1.MachineDeployment, revision string) bool
- func SetNewMachineSetAnnotations(deployment *clusterv1.MachineDeployment, newMS *clusterv1.MachineSet, ...) bool
- func SetReplicasAnnotations(ms *clusterv1.MachineSet, desiredReplicas, maxReplicas int32) bool
- func SpewHashObject(hasher hash.Hash, objectToWrite interface{}) error
- func TotalMachineSetsReplicaSum(machineSets []*clusterv1.MachineSet) int32
- type MachineSetsByCreationTimestamp
- type MachineSetsBySizeNewer
- type MachineSetsBySizeOlder
Constants ¶
const ( // DefaultMachineDeploymentUniqueLabelKey is the label applied to Machines // in a MachineDeployment containing the hash of the template. // Deprecated: This field package is removed, please use the one in the API package instead. DefaultMachineDeploymentUniqueLabelKey = "machine-template-hash" // FailedMSCreateReason is added in a machine deployment when it cannot create a new machine set. // Deprecated: This field will be removed in a next release. FailedMSCreateReason = "MachineSetCreateError" // FoundNewMSReason is added in a machine deployment when it adopts an existing machine set. // Deprecated: This field will be removed in a next release. FoundNewMSReason = "FoundNewMachineSet" // PausedDeployReason is added in a deployment when it is paused. Lack of progress shouldn't be // estimated once a deployment is paused. // Deprecated: This field will be removed in a next release. PausedDeployReason = "DeploymentPaused" // MinimumReplicasAvailable is added in a deployment when it has its minimum replicas required available. // Deprecated: This field will be removed in a next release. MinimumReplicasAvailable = "MinimumReplicasAvailable" // available. // Deprecated: This field will be removed in a next release. MinimumReplicasUnavailable = "MinimumReplicasUnavailable" )
Variables ¶
This section is empty.
Functions ¶
func CloneAndAddLabel ¶
CloneAndAddLabel clones the given map and returns a new map with the given key and value added. Returns the given map, if labelKey is empty. Deprecated: This package is becoming internal and it will be removed in a next release.
func CloneSelectorAndAddLabel ¶
func CloneSelectorAndAddLabel(selector *metav1.LabelSelector, labelKey, labelValue string) *metav1.LabelSelector
CloneSelectorAndAddLabel clones the given selector and returns a new selector with the given key and value added. Returns the given selector, if labelKey is empty. Deprecated: This package is becoming internal and it will be removed in a next release.
func ComputeHash ¶
func ComputeHash(template *clusterv1.MachineTemplateSpec) uint32
ComputeHash computes the hash of a MachineTemplateSpec using the spew library. Deprecated: Please use controllers/mdutil ComputeSpewHash(template).
func ComputeSpewHash ¶ added in v0.4.1
func ComputeSpewHash(template *clusterv1.MachineTemplateSpec) (uint32, error)
ComputeSpewHash computes the hash of a MachineTemplateSpec using the spew library. Deprecated: This package is becoming internal and it will be removed in a next release.
func DeepHashObject ¶
DeepHashObject writes specified object to hash using the spew library which follows pointers and prints actual values of the nested objects ensuring the hash does not change when a pointer changes. Deprecated: Please use controllers/mdutil SpewHashObject(hasher, objectToWrite).
func DeploymentComplete ¶
func DeploymentComplete(deployment *clusterv1.MachineDeployment, newStatus *clusterv1.MachineDeploymentStatus) bool
DeploymentComplete considers a deployment to be complete once all of its desired replicas are updated and available, and no old machines are running. Deprecated: This package is becoming internal and it will be removed in a next release.
func EqualMachineTemplate ¶ added in v0.3.0
func EqualMachineTemplate(template1, template2 *clusterv1.MachineTemplateSpec) bool
EqualMachineTemplate returns true if two given machineTemplateSpec are equal, ignoring the diff in value of Labels["machine-template-hash"], and the version from external references. Deprecated: This package is becoming internal and it will be removed in a next release.
func FilterActiveMachineSets ¶
func FilterActiveMachineSets(machineSets []*clusterv1.MachineSet) []*clusterv1.MachineSet
FilterActiveMachineSets returns machine sets that have (or at least ought to have) machines. Deprecated: This package is becoming internal and it will be removed in a next release.
func FilterMachineSets ¶
func FilterMachineSets(mSes []*clusterv1.MachineSet, filterFn filterMS) []*clusterv1.MachineSet
FilterMachineSets returns machine sets that are filtered by filterFn (all returned ones should match filterFn). Deprecated: This package is becoming internal and it will be removed in a next release.
func FindNewMachineSet ¶
func FindNewMachineSet(deployment *clusterv1.MachineDeployment, msList []*clusterv1.MachineSet) *clusterv1.MachineSet
FindNewMachineSet returns the new MS this given deployment targets (the one with the same machine template). Deprecated: This package is becoming internal and it will be removed in a next release.
func FindOldMachineSets ¶
func FindOldMachineSets(deployment *clusterv1.MachineDeployment, msList []*clusterv1.MachineSet) ([]*clusterv1.MachineSet, []*clusterv1.MachineSet)
FindOldMachineSets returns the old machine sets targeted by the given Deployment, with the given slice of MSes. Returns two list of machine sets
- the first contains all old machine sets with all non-zero replicas
- the second contains all old machine sets
Deprecated: This package is becoming internal and it will be removed in a next release.
func FindOneActiveOrLatest ¶
func FindOneActiveOrLatest(newMS *clusterv1.MachineSet, oldMSs []*clusterv1.MachineSet) *clusterv1.MachineSet
FindOneActiveOrLatest returns the only active or the latest machine set in case there is at most one active machine set. If there are more than one active machine sets, return nil so machine sets can be scaled down to the point where there is only one active machine set. Deprecated: This package is becoming internal and it will be removed in a next release.
func GetActualReplicaCountForMachineSets ¶
func GetActualReplicaCountForMachineSets(machineSets []*clusterv1.MachineSet) int32
GetActualReplicaCountForMachineSets returns the sum of actual replicas of the given machine sets. Deprecated: This package is becoming internal and it will be removed in a next release.
func GetAvailableReplicaCountForMachineSets ¶
func GetAvailableReplicaCountForMachineSets(machineSets []*clusterv1.MachineSet) int32
GetAvailableReplicaCountForMachineSets returns the number of available machines corresponding to the given machine sets. Deprecated: This package is becoming internal and it will be removed in a next release.
func GetDeletingMachineCount ¶ added in v0.4.0
func GetDeletingMachineCount(machineList *clusterv1.MachineList) int32
GetDeletingMachineCount gets the number of machines that are in the process of being deleted in a machineList. Deprecated: This package is becoming internal and it will be removed in a next release.
func GetProportion ¶
func GetProportion(ms *clusterv1.MachineSet, d clusterv1.MachineDeployment, deploymentReplicasToAdd, deploymentReplicasAdded int32, logger logr.Logger) int32
GetProportion will estimate the proportion for the provided machine set using 1. the current size of the parent deployment, 2. the replica count that needs be added on the machine sets of the deployment, and 3. the total replicas added in the machine sets of the deployment so far. Deprecated: This package is becoming internal and it will be removed in a next release.
func GetReadyReplicaCountForMachineSets ¶
func GetReadyReplicaCountForMachineSets(machineSets []*clusterv1.MachineSet) int32
GetReadyReplicaCountForMachineSets returns the number of ready machines corresponding to the given machine sets. Deprecated: This package is becoming internal and it will be removed in a next release.
func GetReplicaCountForMachineSets ¶
func GetReplicaCountForMachineSets(machineSets []*clusterv1.MachineSet) int32
GetReplicaCountForMachineSets returns the sum of Replicas of the given machine sets. Deprecated: This package is becoming internal and it will be removed in a next release.
func IsRollingUpdate ¶
func IsRollingUpdate(deployment *clusterv1.MachineDeployment) bool
IsRollingUpdate returns true if the strategy type is a rolling update. Deprecated: This package is becoming internal and it will be removed in a next release.
func IsSaturated ¶
func IsSaturated(deployment *clusterv1.MachineDeployment, ms *clusterv1.MachineSet) bool
IsSaturated checks if the new machine set is saturated by comparing its size with its deployment size. Both the deployment and the machine set have to believe this machine set can own all of the desired replicas in the deployment and the annotation helps in achieving that. All machines of the MachineSet need to be available. Deprecated: This package is becoming internal and it will be removed in a next release.
func MaxRevision ¶
func MaxRevision(allMSs []*clusterv1.MachineSet, logger logr.Logger) int64
MaxRevision finds the highest revision in the machine sets. Deprecated: This package is becoming internal and it will be removed in a next release.
func MaxSurge ¶
func MaxSurge(deployment clusterv1.MachineDeployment) int32
MaxSurge returns the maximum surge machines a rolling deployment can take. Deprecated: This package is becoming internal and it will be removed in a next release.
func MaxUnavailable ¶
func MaxUnavailable(deployment clusterv1.MachineDeployment) int32
MaxUnavailable returns the maximum unavailable machines a rolling deployment can take. Deprecated: This package is becoming internal and it will be removed in a next release.
func NewMSNewReplicas ¶
func NewMSNewReplicas(deployment *clusterv1.MachineDeployment, allMSs []*clusterv1.MachineSet, newMS *clusterv1.MachineSet) (int32, error)
NewMSNewReplicas calculates the number of replicas a deployment's new MS should have. When one of the following is true, we're rolling out the deployment; otherwise, we're scaling it. 1) The new MS is saturated: newMS's replicas == deployment's replicas 2) For RollingUpdateStrategy: Max number of machines allowed is reached: deployment's replicas + maxSurge == all MSs' replicas. 3) For OnDeleteStrategy: Max number of machines allowed is reached: deployment's replicas == all MSs' replicas. Deprecated: This package is becoming internal and it will be removed in a next release.
func ReplicasAnnotationsNeedUpdate ¶
func ReplicasAnnotationsNeedUpdate(ms *clusterv1.MachineSet, desiredReplicas, maxReplicas int32) bool
ReplicasAnnotationsNeedUpdate return true if the replicas annotation needs to be updated. Deprecated: This package is becoming internal and it will be removed in a next release.
func ResolveFenceposts ¶
func ResolveFenceposts(maxSurge, maxUnavailable *intstrutil.IntOrString, desired int32) (int32, int32, error)
ResolveFenceposts resolves both maxSurge and maxUnavailable. This needs to happen in one step. For example:
2 desired, max unavailable 1%, surge 0% - should scale old(-1), then new(+1), then old(-1), then new(+1) 1 desired, max unavailable 1%, surge 0% - should scale old(-1), then new(+1) 2 desired, max unavailable 25%, surge 1% - should scale new(+1), then old(-1), then new(+1), then old(-1) 1 desired, max unavailable 25%, surge 1% - should scale new(+1), then old(-1) 2 desired, max unavailable 0%, surge 1% - should scale new(+1), then old(-1), then new(+1), then old(-1) 1 desired, max unavailable 0%, surge 1% - should scale new(+1), then old(-1). Deprecated: This package is becoming internal and it will be removed in a next release.
func Revision ¶
Revision returns the revision number of the input object. Deprecated: This package is becoming internal and it will be removed in a next release.
func SetDeploymentRevision ¶
func SetDeploymentRevision(deployment *clusterv1.MachineDeployment, revision string) bool
SetDeploymentRevision updates the revision for a deployment. Deprecated: This package is becoming internal and it will be removed in a next release.
func SetNewMachineSetAnnotations ¶
func SetNewMachineSetAnnotations(deployment *clusterv1.MachineDeployment, newMS *clusterv1.MachineSet, newRevision string, exists bool, logger logr.Logger) bool
SetNewMachineSetAnnotations sets new machine set's annotations appropriately by updating its revision and copying required deployment annotations to it; it returns true if machine set's annotation is changed. Deprecated: This package is becoming internal and it will be removed in a next release.
func SetReplicasAnnotations ¶
func SetReplicasAnnotations(ms *clusterv1.MachineSet, desiredReplicas, maxReplicas int32) bool
SetReplicasAnnotations sets the desiredReplicas and maxReplicas into the annotations. Deprecated: This package is becoming internal and it will be removed in a next release.
func SpewHashObject ¶ added in v0.4.1
SpewHashObject writes specified object to hash using the spew library which follows pointers and prints actual values of the nested objects ensuring the hash does not change when a pointer changes. Deprecated: This package is becoming internal and it will be removed in a next release.
func TotalMachineSetsReplicaSum ¶ added in v0.4.0
func TotalMachineSetsReplicaSum(machineSets []*clusterv1.MachineSet) int32
TotalMachineSetsReplicaSum returns sum of max(ms.Spec.Replicas, ms.Status.Replicas) across all the machine sets.
This is used to guarantee that the total number of machines will not exceed md.Spec.Replicas + maxSurge. Use max(spec.Replicas,status.Replicas) to cover the cases that: 1. Scale up, where spec.Replicas increased but no machine created yet, so spec.Replicas > status.Replicas 2. Scale down, where spec.Replicas decreased but machine not deleted yet, so spec.Replicas < status.Replicas. Deprecated: This package is becoming internal and it will be removed in a next release.
Types ¶
type MachineSetsByCreationTimestamp ¶
type MachineSetsByCreationTimestamp []*clusterv1.MachineSet
MachineSetsByCreationTimestamp sorts a list of MachineSet by creation timestamp, using their names as a tie breaker. Deprecated: This package is becoming internal and it will be removed in a next release.
func (MachineSetsByCreationTimestamp) Len ¶
func (o MachineSetsByCreationTimestamp) Len() int
func (MachineSetsByCreationTimestamp) Less ¶
func (o MachineSetsByCreationTimestamp) Less(i, j int) bool
func (MachineSetsByCreationTimestamp) Swap ¶
func (o MachineSetsByCreationTimestamp) Swap(i, j int)
type MachineSetsBySizeNewer ¶
type MachineSetsBySizeNewer []*clusterv1.MachineSet
MachineSetsBySizeNewer sorts a list of MachineSet by size in descending order, using their creation timestamp or name as a tie breaker. By using the creation timestamp, this sorts from new to old machine sets. Deprecated: This package is becoming internal and it will be removed in a next release.
func (MachineSetsBySizeNewer) Len ¶
func (o MachineSetsBySizeNewer) Len() int
func (MachineSetsBySizeNewer) Less ¶
func (o MachineSetsBySizeNewer) Less(i, j int) bool
func (MachineSetsBySizeNewer) Swap ¶
func (o MachineSetsBySizeNewer) Swap(i, j int)
type MachineSetsBySizeOlder ¶
type MachineSetsBySizeOlder []*clusterv1.MachineSet
MachineSetsBySizeOlder sorts a list of MachineSet by size in descending order, using their creation timestamp or name as a tie breaker. By using the creation timestamp, this sorts from old to new machine sets. Deprecated: This package is becoming internal and it will be removed in a next release.
func (MachineSetsBySizeOlder) Len ¶
func (o MachineSetsBySizeOlder) Len() int
func (MachineSetsBySizeOlder) Less ¶
func (o MachineSetsBySizeOlder) Less(i, j int) bool
func (MachineSetsBySizeOlder) Swap ¶
func (o MachineSetsBySizeOlder) Swap(i, j int)