mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Filter out inactive pods first when determining if it's available
This commit is contained in:
		@@ -490,9 +490,7 @@ func FilterActivePods(pods []api.Pod) []*api.Pod {
 | 
				
			|||||||
	var result []*api.Pod
 | 
						var result []*api.Pod
 | 
				
			||||||
	for i := range pods {
 | 
						for i := range pods {
 | 
				
			||||||
		p := pods[i]
 | 
							p := pods[i]
 | 
				
			||||||
		if api.PodSucceeded != p.Status.Phase &&
 | 
							if IsPodActive(p) {
 | 
				
			||||||
			api.PodFailed != p.Status.Phase &&
 | 
					 | 
				
			||||||
			p.DeletionTimestamp == nil {
 | 
					 | 
				
			||||||
			result = append(result, &p)
 | 
								result = append(result, &p)
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			glog.V(4).Infof("Ignoring inactive pod %v/%v in state %v, deletion time %v",
 | 
								glog.V(4).Infof("Ignoring inactive pod %v/%v in state %v, deletion time %v",
 | 
				
			||||||
@@ -502,6 +500,12 @@ func FilterActivePods(pods []api.Pod) []*api.Pod {
 | 
				
			|||||||
	return result
 | 
						return result
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func IsPodActive(p api.Pod) bool {
 | 
				
			||||||
 | 
						return api.PodSucceeded != p.Status.Phase &&
 | 
				
			||||||
 | 
							api.PodFailed != p.Status.Phase &&
 | 
				
			||||||
 | 
							p.DeletionTimestamp == nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// FilterActiveReplicaSets returns replica sets that have (or at least ought to have) pods.
 | 
					// FilterActiveReplicaSets returns replica sets that have (or at least ought to have) pods.
 | 
				
			||||||
func FilterActiveReplicaSets(replicaSets []*extensions.ReplicaSet) []*extensions.ReplicaSet {
 | 
					func FilterActiveReplicaSets(replicaSets []*extensions.ReplicaSet) []*extensions.ReplicaSet {
 | 
				
			||||||
	active := []*extensions.ReplicaSet{}
 | 
						active := []*extensions.ReplicaSet{}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,6 +27,7 @@ import (
 | 
				
			|||||||
	"k8s.io/kubernetes/pkg/api/unversioned"
 | 
						"k8s.io/kubernetes/pkg/api/unversioned"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/apis/extensions"
 | 
						"k8s.io/kubernetes/pkg/apis/extensions"
 | 
				
			||||||
	clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
 | 
						clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/controller"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/labels"
 | 
						"k8s.io/kubernetes/pkg/labels"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/util/integer"
 | 
						"k8s.io/kubernetes/pkg/util/integer"
 | 
				
			||||||
	intstrutil "k8s.io/kubernetes/pkg/util/intstr"
 | 
						intstrutil "k8s.io/kubernetes/pkg/util/intstr"
 | 
				
			||||||
@@ -346,6 +347,9 @@ func getReadyPodsCount(pods []api.Pod, minReadySeconds int) int {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func IsPodAvailable(pod *api.Pod, minReadySeconds int) bool {
 | 
					func IsPodAvailable(pod *api.Pod, minReadySeconds int) bool {
 | 
				
			||||||
 | 
						if !controller.IsPodActive(*pod) {
 | 
				
			||||||
 | 
							return false
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	// Check if we've passed minReadySeconds since LastTransitionTime
 | 
						// Check if we've passed minReadySeconds since LastTransitionTime
 | 
				
			||||||
	// If so, this pod is ready
 | 
						// If so, this pod is ready
 | 
				
			||||||
	for _, c := range pod.Status.Conditions {
 | 
						for _, c := range pod.Status.Conditions {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user