Deployment: filter out old RSes that are deleted or with non-zero replicas before cleanup

This commit is contained in:
Janet Kuo
2017-02-08 14:18:13 -08:00
parent d60d8a7b92
commit a265186aaa
5 changed files with 89 additions and 10 deletions

View File

@@ -754,15 +754,23 @@ func IsPodActive(p *v1.Pod) bool {
// FilterActiveReplicaSets returns replica sets that have (or at least ought to have) pods.
func FilterActiveReplicaSets(replicaSets []*extensions.ReplicaSet) []*extensions.ReplicaSet {
active := []*extensions.ReplicaSet{}
for i := range replicaSets {
rs := replicaSets[i]
activeFilter := func(rs *extensions.ReplicaSet) bool {
return rs != nil && *(rs.Spec.Replicas) > 0
}
return FilterReplicaSets(replicaSets, activeFilter)
}
if rs != nil && *(rs.Spec.Replicas) > 0 {
active = append(active, replicaSets[i])
type filterRS func(rs *extensions.ReplicaSet) bool
// FilterReplicaSets returns replica sets that are filtered by filterFn (all returned ones should match filterFn).
func FilterReplicaSets(RSes []*extensions.ReplicaSet, filterFn filterRS) []*extensions.ReplicaSet {
var filtered []*extensions.ReplicaSet
for i := range RSes {
if filterFn(RSes[i]) {
filtered = append(filtered, RSes[i])
}
}
return active
return filtered
}
// PodKey returns a key unique to the given pod within a cluster.