...

Package util

import "helm.sh/helm/v3/internal/third_party/k8s.io/kubernetes/deployment/util"
Overview
Index

Overview ▾

func EqualIgnoreHash

func EqualIgnoreHash(template1, template2 *v1.PodTemplateSpec) bool

EqualIgnoreHash returns true if two given podTemplateSpec are equal, ignoring the diff in value of Labels[pod-template-hash] We ignore pod-template-hash because:

  1. The hash result would be different upon podTemplateSpec API changes (e.g. the addition of a new field will cause the hash code to change)
  2. The deployment template won't have hash labels

func FindNewReplicaSet

func FindNewReplicaSet(deployment *apps.Deployment, rsList []*apps.ReplicaSet) *apps.ReplicaSet

FindNewReplicaSet returns the new RS this given deployment targets (the one with the same pod template).

func GetNewReplicaSet

func GetNewReplicaSet(deployment *apps.Deployment, c appsclient.AppsV1Interface) (*apps.ReplicaSet, error)

GetNewReplicaSet returns a replica set that matches the intent of the given deployment; get ReplicaSetList from client interface. Returns nil if the new replica set doesn't exist yet.

func IsRollingUpdate

func IsRollingUpdate(deployment *apps.Deployment) bool

IsRollingUpdate returns true if the strategy type is a rolling update.

func ListReplicaSets

func ListReplicaSets(deployment *apps.Deployment, getRSList RsListFunc) ([]*apps.ReplicaSet, error)

ListReplicaSets returns a slice of RSes the given deployment targets. Note that this does NOT attempt to reconcile ControllerRef (adopt/orphan), because only the controller itself should do that. However, it does filter out anything whose ControllerRef doesn't match.

func MaxUnavailable

func MaxUnavailable(deployment apps.Deployment) int32

MaxUnavailable returns the maximum unavailable pods a rolling deployment can take.

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)

type ReplicaSetsByCreationTimestamp

ReplicaSetsByCreationTimestamp sorts a list of ReplicaSet by creation timestamp, using their names as a tie breaker.

type ReplicaSetsByCreationTimestamp []*apps.ReplicaSet

func (ReplicaSetsByCreationTimestamp) Len

func (o ReplicaSetsByCreationTimestamp) Len() int

func (ReplicaSetsByCreationTimestamp) Less

func (o ReplicaSetsByCreationTimestamp) Less(i, j int) bool

func (ReplicaSetsByCreationTimestamp) Swap

func (o ReplicaSetsByCreationTimestamp) Swap(i, j int)

type RsListFunc

RsListFunc returns the ReplicaSet from the ReplicaSet namespace and the List metav1.ListOptions.

type RsListFunc func(string, metav1.ListOptions) ([]*apps.ReplicaSet, error)

func RsListFromClient

func RsListFromClient(c appsclient.AppsV1Interface) RsListFunc

RsListFromClient returns an rsListFunc that wraps the given client.