mirror of
https://github.com/kubernetes-sigs/descheduler.git
synced 2026-01-25 20:59:28 +01:00
Merge pull request #1804 from ingvagabund/refactorings
refactor(plugins): simplify the way pods are created
This commit is contained in:
@@ -23,7 +23,6 @@ import (
|
|||||||
|
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
policyv1 "k8s.io/api/policy/v1"
|
policyv1 "k8s.io/api/policy/v1"
|
||||||
"k8s.io/apimachinery/pkg/api/resource"
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/util/uuid"
|
"k8s.io/apimachinery/pkg/util/uuid"
|
||||||
@@ -289,17 +288,7 @@ func TestDefaultEvictorFilter(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setPodLocalStorage := func(pod *v1.Pod) {
|
setPodLocalStorage := func(pod *v1.Pod) {
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setPodPVCVolumeWithFooClaimName := func(pod *v1.Pod) {
|
setPodPVCVolumeWithFooClaimName := func(pod *v1.Pod) {
|
||||||
@@ -512,7 +501,7 @@ func TestDefaultEvictorFilter(t *testing.T) {
|
|||||||
pods: []*v1.Pod{
|
pods: []*v1.Pod{
|
||||||
buildTestPod("p14", n1.Name, func(pod *v1.Pod) {
|
buildTestPod("p14", n1.Name, func(pod *v1.Pod) {
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Priority = &highPriority
|
test.SetPodPriority(pod, highPriority)
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
priorityThreshold: &lowPriority,
|
priorityThreshold: &lowPriority,
|
||||||
@@ -523,7 +512,7 @@ func TestDefaultEvictorFilter(t *testing.T) {
|
|||||||
buildTestPod("p15", n1.Name, func(pod *v1.Pod) {
|
buildTestPod("p15", n1.Name, func(pod *v1.Pod) {
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
setPodEvictAnnotation(pod)
|
setPodEvictAnnotation(pod)
|
||||||
pod.Spec.Priority = &highPriority
|
test.SetPodPriority(pod, highPriority)
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
priorityThreshold: &lowPriority,
|
priorityThreshold: &lowPriority,
|
||||||
@@ -557,7 +546,7 @@ func TestDefaultEvictorFilter(t *testing.T) {
|
|||||||
pods: []*v1.Pod{
|
pods: []*v1.Pod{
|
||||||
buildTestPod("p17", n1.Name, func(pod *v1.Pod) {
|
buildTestPod("p17", n1.Name, func(pod *v1.Pod) {
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Priority = &highPriority
|
test.SetPodPriority(pod, highPriority)
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
evictSystemCriticalPods: true,
|
evictSystemCriticalPods: true,
|
||||||
@@ -570,7 +559,7 @@ func TestDefaultEvictorFilter(t *testing.T) {
|
|||||||
buildTestPod("p17", n1.Name, func(pod *v1.Pod) {
|
buildTestPod("p17", n1.Name, func(pod *v1.Pod) {
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
setPodEvictAnnotation(pod)
|
setPodEvictAnnotation(pod)
|
||||||
pod.Spec.Priority = &highPriority
|
test.SetPodPriority(pod, highPriority)
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
evictSystemCriticalPods: true,
|
evictSystemCriticalPods: true,
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ import (
|
|||||||
|
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
policy "k8s.io/api/policy/v1"
|
policy "k8s.io/api/policy/v1"
|
||||||
"k8s.io/apimachinery/pkg/api/resource"
|
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/client-go/kubernetes/fake"
|
"k8s.io/client-go/kubernetes/fake"
|
||||||
core "k8s.io/client-go/testing"
|
core "k8s.io/client-go/testing"
|
||||||
@@ -97,17 +96,7 @@ func TestHighNodeUtilization(t *testing.T) {
|
|||||||
test.BuildTestPod("p1", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p1", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
||||||
// A pod with local storage.
|
// A pod with local storage.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
// A Mirror Pod.
|
// A Mirror Pod.
|
||||||
pod.Annotations = test.GetMirrorPodAnnotation()
|
pod.Annotations = test.GetMirrorPodAnnotation()
|
||||||
}),
|
}),
|
||||||
@@ -115,8 +104,7 @@ func TestHighNodeUtilization(t *testing.T) {
|
|||||||
// A Critical Pod.
|
// A Critical Pod.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}),
|
}),
|
||||||
// These won't be evicted.
|
// These won't be evicted.
|
||||||
test.BuildTestPod("p3", 400, 0, n2NodeName, test.SetDSOwnerRef),
|
test.BuildTestPod("p3", 400, 0, n2NodeName, test.SetDSOwnerRef),
|
||||||
@@ -168,8 +156,7 @@ func TestHighNodeUtilization(t *testing.T) {
|
|||||||
// A Critical Pod.
|
// A Critical Pod.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}),
|
}),
|
||||||
// These won't be evicted.
|
// These won't be evicted.
|
||||||
test.BuildTestPod("p3", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
test.BuildTestPod("p3", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
||||||
@@ -249,9 +236,7 @@ func TestHighNodeUtilization(t *testing.T) {
|
|||||||
test.SetRSOwnerRef(pod)
|
test.SetRSOwnerRef(pod)
|
||||||
test.MakeBestEffortPod(pod)
|
test.MakeBestEffortPod(pod)
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p2", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p2", 400, 0, n1NodeName, test.SetRSOwnerRef),
|
||||||
test.SetRSOwnerRef(pod)
|
|
||||||
}),
|
|
||||||
// These won't be evicted.
|
// These won't be evicted.
|
||||||
test.BuildTestPod("p3", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
test.BuildTestPod("p3", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
||||||
test.BuildTestPod("p4", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
test.BuildTestPod("p4", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
||||||
@@ -466,9 +451,7 @@ func TestHighNodeUtilization(t *testing.T) {
|
|||||||
// pods in the other nodes must not be evicted
|
// pods in the other nodes must not be evicted
|
||||||
// because they do not have the extended
|
// because they do not have the extended
|
||||||
// resource defined in their requests.
|
// resource defined in their requests.
|
||||||
test.BuildTestPod("p3", 500, 0, n2NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p3", 500, 0, n2NodeName, test.SetRSOwnerRef),
|
||||||
test.SetRSOwnerRef(pod)
|
|
||||||
}),
|
|
||||||
test.BuildTestPod("p4", 500, 0, n2NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p4", 500, 0, n2NodeName, func(pod *v1.Pod) {
|
||||||
test.SetRSOwnerRef(pod)
|
test.SetRSOwnerRef(pod)
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ import (
|
|||||||
|
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
policy "k8s.io/api/policy/v1"
|
policy "k8s.io/api/policy/v1"
|
||||||
"k8s.io/apimachinery/pkg/api/resource"
|
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
"k8s.io/apimachinery/pkg/labels"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/client-go/informers"
|
"k8s.io/client-go/informers"
|
||||||
@@ -92,25 +91,14 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
test.BuildTestPod("p5", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p5", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
||||||
// A pod with local storage.
|
// A pod with local storage.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
// A Mirror Pod.
|
// A Mirror Pod.
|
||||||
pod.Annotations = test.GetMirrorPodAnnotation()
|
pod.Annotations = test.GetMirrorPodAnnotation()
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p6", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p6", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
||||||
// A Critical Pod.
|
// A Critical Pod.
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p9", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
test.BuildTestPod("p9", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
||||||
},
|
},
|
||||||
@@ -155,25 +143,14 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
||||||
// A pod with local storage.
|
// A pod with local storage.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
// A Mirror Pod.
|
// A Mirror Pod.
|
||||||
pod.Annotations = test.GetMirrorPodAnnotation()
|
pod.Annotations = test.GetMirrorPodAnnotation()
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p8", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p8", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
||||||
// A Critical Pod.
|
// A Critical Pod.
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p9", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
test.BuildTestPod("p9", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
||||||
},
|
},
|
||||||
@@ -233,25 +210,14 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
||||||
// A pod with local storage.
|
// A pod with local storage.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
// A Mirror Pod.
|
// A Mirror Pod.
|
||||||
pod.Annotations = test.GetMirrorPodAnnotation()
|
pod.Annotations = test.GetMirrorPodAnnotation()
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p8", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p8", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
||||||
// A Critical Pod.
|
// A Critical Pod.
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p9", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
test.BuildTestPod("p9", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
||||||
},
|
},
|
||||||
@@ -310,17 +276,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
||||||
// A pod with local storage.
|
// A pod with local storage.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
// A Mirror Pod.
|
// A Mirror Pod.
|
||||||
pod.Annotations = test.GetMirrorPodAnnotation()
|
pod.Annotations = test.GetMirrorPodAnnotation()
|
||||||
}),
|
}),
|
||||||
@@ -328,8 +284,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
// A Critical Pod.
|
// A Critical Pod.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p9", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
test.BuildTestPod("p9", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
||||||
},
|
},
|
||||||
@@ -379,17 +334,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
||||||
// A pod with local storage.
|
// A pod with local storage.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
// A Mirror Pod.
|
// A Mirror Pod.
|
||||||
pod.Annotations = test.GetMirrorPodAnnotation()
|
pod.Annotations = test.GetMirrorPodAnnotation()
|
||||||
}),
|
}),
|
||||||
@@ -397,8 +342,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
// A Critical Pod.
|
// A Critical Pod.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p9", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
test.BuildTestPod("p9", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
||||||
},
|
},
|
||||||
@@ -462,17 +406,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
// A pod with local storage.
|
// A pod with local storage.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
test.SetPodPriority(pod, lowPriority)
|
test.SetPodPriority(pod, lowPriority)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
// A Mirror Pod.
|
// A Mirror Pod.
|
||||||
pod.Annotations = test.GetMirrorPodAnnotation()
|
pod.Annotations = test.GetMirrorPodAnnotation()
|
||||||
}),
|
}),
|
||||||
@@ -480,8 +414,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
// A Critical Pod.
|
// A Critical Pod.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p9", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
test.BuildTestPod("p9", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
||||||
},
|
},
|
||||||
@@ -525,9 +458,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
test.SetRSOwnerRef(pod)
|
test.SetRSOwnerRef(pod)
|
||||||
test.MakeBestEffortPod(pod)
|
test.MakeBestEffortPod(pod)
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p3", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p3", 400, 0, n1NodeName, test.SetRSOwnerRef),
|
||||||
test.SetRSOwnerRef(pod)
|
|
||||||
}),
|
|
||||||
test.BuildTestPod("p4", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p4", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
||||||
test.SetRSOwnerRef(pod)
|
test.SetRSOwnerRef(pod)
|
||||||
test.MakeBestEffortPod(pod)
|
test.MakeBestEffortPod(pod)
|
||||||
@@ -537,23 +468,11 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
test.MakeBestEffortPod(pod)
|
test.MakeBestEffortPod(pod)
|
||||||
}),
|
}),
|
||||||
// These won't be evicted.
|
// These won't be evicted.
|
||||||
test.BuildTestPod("p6", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p6", 400, 0, n1NodeName, test.SetDSOwnerRef),
|
||||||
test.SetDSOwnerRef(pod)
|
|
||||||
}),
|
|
||||||
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
||||||
// A pod with local storage.
|
// A pod with local storage.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
// A Mirror Pod.
|
// A Mirror Pod.
|
||||||
pod.Annotations = test.GetMirrorPodAnnotation()
|
pod.Annotations = test.GetMirrorPodAnnotation()
|
||||||
}),
|
}),
|
||||||
@@ -561,8 +480,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
// A Critical Pod.
|
// A Critical Pod.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p9", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
test.BuildTestPod("p9", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
||||||
},
|
},
|
||||||
@@ -632,17 +550,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
// A pod with local storage.
|
// A pod with local storage.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
test.SetPodExtendedResourceRequest(pod, extendedResource, 1)
|
test.SetPodExtendedResourceRequest(pod, extendedResource, 1)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
// A Mirror Pod.
|
// A Mirror Pod.
|
||||||
pod.Annotations = test.GetMirrorPodAnnotation()
|
pod.Annotations = test.GetMirrorPodAnnotation()
|
||||||
}),
|
}),
|
||||||
@@ -651,8 +559,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
test.SetPodExtendedResourceRequest(pod, extendedResource, 1)
|
test.SetPodExtendedResourceRequest(pod, extendedResource, 1)
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p9", 0, 0, n2NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p9", 0, 0, n2NodeName, func(pod *v1.Pod) {
|
||||||
test.SetRSOwnerRef(pod)
|
test.SetRSOwnerRef(pod)
|
||||||
@@ -747,12 +654,8 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
test.SetRSOwnerRef(pod)
|
test.SetRSOwnerRef(pod)
|
||||||
test.SetPodExtendedResourceRequest(pod, extendedResource, 7)
|
test.SetPodExtendedResourceRequest(pod, extendedResource, 7)
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p3", 0, 0, n2NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p3", 0, 0, n2NodeName, test.SetRSOwnerRef),
|
||||||
test.SetRSOwnerRef(pod)
|
test.BuildTestPod("p8", 0, 0, n3NodeName, test.SetRSOwnerRef),
|
||||||
}),
|
|
||||||
test.BuildTestPod("p8", 0, 0, n3NodeName, func(pod *v1.Pod) {
|
|
||||||
test.SetRSOwnerRef(pod)
|
|
||||||
}),
|
|
||||||
test.BuildTestPod("p9", 0, 0, n3NodeName, test.SetRSOwnerRef),
|
test.BuildTestPod("p9", 0, 0, n3NodeName, test.SetRSOwnerRef),
|
||||||
},
|
},
|
||||||
nodemetricses: []*v1beta1.NodeMetrics{
|
nodemetricses: []*v1beta1.NodeMetrics{
|
||||||
@@ -795,17 +698,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
||||||
// A pod with local storage.
|
// A pod with local storage.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
// A Mirror Pod.
|
// A Mirror Pod.
|
||||||
pod.Annotations = test.GetMirrorPodAnnotation()
|
pod.Annotations = test.GetMirrorPodAnnotation()
|
||||||
}),
|
}),
|
||||||
@@ -813,8 +706,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
// A Critical Pod.
|
// A Critical Pod.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
nodemetricses: []*v1beta1.NodeMetrics{
|
nodemetricses: []*v1beta1.NodeMetrics{
|
||||||
@@ -872,17 +764,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
||||||
// A pod with local storage.
|
// A pod with local storage.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
// A Mirror Pod.
|
// A Mirror Pod.
|
||||||
pod.Annotations = test.GetMirrorPodAnnotation()
|
pod.Annotations = test.GetMirrorPodAnnotation()
|
||||||
}),
|
}),
|
||||||
@@ -890,8 +772,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
// A Critical Pod.
|
// A Critical Pod.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
nodemetricses: []*v1beta1.NodeMetrics{
|
nodemetricses: []*v1beta1.NodeMetrics{
|
||||||
@@ -975,17 +856,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
||||||
// A pod with local storage.
|
// A pod with local storage.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
// A Mirror Pod.
|
// A Mirror Pod.
|
||||||
pod.Annotations = test.GetMirrorPodAnnotation()
|
pod.Annotations = test.GetMirrorPodAnnotation()
|
||||||
}),
|
}),
|
||||||
@@ -993,8 +864,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
// A Critical Pod.
|
// A Critical Pod.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p9", 0, 0, n2NodeName, test.SetRSOwnerRef),
|
test.BuildTestPod("p9", 0, 0, n2NodeName, test.SetRSOwnerRef),
|
||||||
},
|
},
|
||||||
@@ -1037,17 +907,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
||||||
// A pod with local storage.
|
// A pod with local storage.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
// A Mirror Pod.
|
// A Mirror Pod.
|
||||||
pod.Annotations = test.GetMirrorPodAnnotation()
|
pod.Annotations = test.GetMirrorPodAnnotation()
|
||||||
}),
|
}),
|
||||||
@@ -1055,8 +915,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
// A Critical Pod.
|
// A Critical Pod.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p9", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
test.BuildTestPod("p9", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
||||||
},
|
},
|
||||||
@@ -1106,17 +965,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
test.BuildTestPod("p7", 400, 375, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p7", 400, 375, n1NodeName, func(pod *v1.Pod) {
|
||||||
// A pod with local storage.
|
// A pod with local storage.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
// A Mirror Pod.
|
// A Mirror Pod.
|
||||||
pod.Annotations = test.GetMirrorPodAnnotation()
|
pod.Annotations = test.GetMirrorPodAnnotation()
|
||||||
}),
|
}),
|
||||||
@@ -1124,8 +973,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
// A Critical Pod.
|
// A Critical Pod.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p9", 400, 3000, n2NodeName, test.SetRSOwnerRef),
|
test.BuildTestPod("p9", 400, 3000, n2NodeName, test.SetRSOwnerRef),
|
||||||
},
|
},
|
||||||
@@ -1218,17 +1066,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
||||||
// A pod with local storage.
|
// A pod with local storage.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
// A Mirror Pod.
|
// A Mirror Pod.
|
||||||
pod.Annotations = test.GetMirrorPodAnnotation()
|
pod.Annotations = test.GetMirrorPodAnnotation()
|
||||||
}),
|
}),
|
||||||
@@ -1236,8 +1074,7 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
// A Critical Pod.
|
// A Critical Pod.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p9", 0, 0, n2NodeName, test.SetRSOwnerRef),
|
test.BuildTestPod("p9", 0, 0, n2NodeName, test.SetRSOwnerRef),
|
||||||
},
|
},
|
||||||
@@ -1282,25 +1119,14 @@ func TestLowNodeUtilization(t *testing.T) {
|
|||||||
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p7", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
||||||
// A pod with local storage.
|
// A pod with local storage.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
// A Mirror Pod.
|
// A Mirror Pod.
|
||||||
pod.Annotations = test.GetMirrorPodAnnotation()
|
pod.Annotations = test.GetMirrorPodAnnotation()
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p8", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
test.BuildTestPod("p8", 400, 0, n1NodeName, func(pod *v1.Pod) {
|
||||||
// A Critical Pod.
|
// A Critical Pod.
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}),
|
}),
|
||||||
test.BuildTestPod("p9", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
test.BuildTestPod("p9", 400, 0, n2NodeName, test.SetRSOwnerRef),
|
||||||
},
|
},
|
||||||
@@ -1575,17 +1401,7 @@ func TestLowNodeUtilizationWithTaints(t *testing.T) {
|
|||||||
func withLocalStorage(pod *v1.Pod) {
|
func withLocalStorage(pod *v1.Pod) {
|
||||||
// A pod with local storage.
|
// A pod with local storage.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
// A Mirror Pod.
|
// A Mirror Pod.
|
||||||
pod.Annotations = test.GetMirrorPodAnnotation()
|
pod.Annotations = test.GetMirrorPodAnnotation()
|
||||||
}
|
}
|
||||||
@@ -1594,8 +1410,7 @@ func withCriticalPod(pod *v1.Pod) {
|
|||||||
// A Critical Pod.
|
// A Critical Pod.
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestLowNodeUtilizationWithPrometheusMetrics(t *testing.T) {
|
func TestLowNodeUtilizationWithPrometheusMetrics(t *testing.T) {
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/api/resource"
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/client-go/kubernetes/fake"
|
"k8s.io/client-go/kubernetes/fake"
|
||||||
@@ -145,30 +144,17 @@ func TestFindDuplicatePods(t *testing.T) {
|
|||||||
{
|
{
|
||||||
description: "Pods are: part of DaemonSet, with local storage, mirror pod annotation, critical pod annotation - none should be evicted.",
|
description: "Pods are: part of DaemonSet, with local storage, mirror pod annotation, critical pod annotation - none should be evicted.",
|
||||||
pods: []*v1.Pod{
|
pods: []*v1.Pod{
|
||||||
buildTestPodForNode("p4", nodeName1, func(pod *v1.Pod) {
|
buildTestPodForNode("p4", nodeName1, test.SetDSOwnerRef),
|
||||||
test.SetDSOwnerRef(pod)
|
|
||||||
}),
|
|
||||||
buildTestPodForNode("p5", nodeName1, func(pod *v1.Pod) {
|
buildTestPodForNode("p5", nodeName1, func(pod *v1.Pod) {
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}),
|
}),
|
||||||
buildTestPodForNode("p6", nodeName1, func(pod *v1.Pod) {
|
buildTestPodForNode("p6", nodeName1, func(pod *v1.Pod) {
|
||||||
pod.Annotations = test.GetMirrorPodAnnotation()
|
pod.Annotations = test.GetMirrorPodAnnotation()
|
||||||
}),
|
}),
|
||||||
buildTestPodForNode("p7", nodeName1, func(pod *v1.Pod) {
|
buildTestPodForNode("p7", nodeName1, func(pod *v1.Pod) {
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
nodes: []*v1.Node{
|
nodes: []*v1.Node{
|
||||||
@@ -183,30 +169,17 @@ func TestFindDuplicatePods(t *testing.T) {
|
|||||||
buildTestPodWithRSOwnerRefWithNamespaceForNode1("p1", "dev", nil),
|
buildTestPodWithRSOwnerRefWithNamespaceForNode1("p1", "dev", nil),
|
||||||
buildTestPodWithRSOwnerRefWithNamespaceForNode1("p2", "dev", nil),
|
buildTestPodWithRSOwnerRefWithNamespaceForNode1("p2", "dev", nil),
|
||||||
buildTestPodWithRSOwnerRefWithNamespaceForNode1("p3", "dev", nil),
|
buildTestPodWithRSOwnerRefWithNamespaceForNode1("p3", "dev", nil),
|
||||||
buildTestPodForNode("p4", nodeName1, func(pod *v1.Pod) {
|
buildTestPodForNode("p4", nodeName1, test.SetDSOwnerRef),
|
||||||
test.SetDSOwnerRef(pod)
|
|
||||||
}),
|
|
||||||
buildTestPodForNode("p5", nodeName1, func(pod *v1.Pod) {
|
buildTestPodForNode("p5", nodeName1, func(pod *v1.Pod) {
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}),
|
}),
|
||||||
buildTestPodForNode("p6", nodeName1, func(pod *v1.Pod) {
|
buildTestPodForNode("p6", nodeName1, func(pod *v1.Pod) {
|
||||||
pod.Annotations = test.GetMirrorPodAnnotation()
|
pod.Annotations = test.GetMirrorPodAnnotation()
|
||||||
}),
|
}),
|
||||||
buildTestPodForNode("p7", nodeName1, func(pod *v1.Pod) {
|
buildTestPodForNode("p7", nodeName1, func(pod *v1.Pod) {
|
||||||
pod.Namespace = "kube-system"
|
pod.Namespace = "kube-system"
|
||||||
priority := utils.SystemCriticalPriority
|
test.SetPodPriority(pod, utils.SystemCriticalPriority)
|
||||||
pod.Spec.Priority = &priority
|
|
||||||
}),
|
}),
|
||||||
buildTestPodWithRSOwnerRefWithNamespaceForNode1("p8", "test", nil),
|
buildTestPodWithRSOwnerRefWithNamespaceForNode1("p8", "test", nil),
|
||||||
buildTestPodWithRSOwnerRefWithNamespaceForNode1("p9", "test", nil),
|
buildTestPodWithRSOwnerRefWithNamespaceForNode1("p9", "test", nil),
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/api/resource"
|
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/client-go/kubernetes/fake"
|
"k8s.io/client-go/kubernetes/fake"
|
||||||
|
|
||||||
@@ -94,17 +93,7 @@ func initPods(apply func(pod *v1.Pod)) []*v1.Pod {
|
|||||||
case 7:
|
case 7:
|
||||||
pods = append(pods, initPodContainersWithStatusRestartCount(fmt.Sprintf("pod-%d", i), i, func(pod *v1.Pod) {
|
pods = append(pods, initPodContainersWithStatusRestartCount(fmt.Sprintf("pod-%d", i), i, func(pod *v1.Pod) {
|
||||||
test.SetNormalOwnerRef(pod)
|
test.SetNormalOwnerRef(pod)
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
if apply != nil {
|
if apply != nil {
|
||||||
apply(pod)
|
apply(pod)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ func buildTestPodP2ForNode1() *v1.Pod {
|
|||||||
func buildTestPodNonEvictableForNode1() *v1.Pod {
|
func buildTestPodNonEvictableForNode1() *v1.Pod {
|
||||||
criticalPriority := utils.SystemCriticalPriority
|
criticalPriority := utils.SystemCriticalPriority
|
||||||
return buildTestPodForNode1("non-evict", func(pod *v1.Pod) {
|
return buildTestPodForNode1("non-evict", func(pod *v1.Pod) {
|
||||||
pod.Spec.Priority = &criticalPriority
|
test.SetPodPriority(pod, criticalPriority)
|
||||||
setLabelsFooBar(pod)
|
setLabelsFooBar(pod)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/api/resource"
|
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/client-go/kubernetes/fake"
|
"k8s.io/client-go/kubernetes/fake"
|
||||||
|
|
||||||
@@ -135,17 +134,7 @@ func withTestTaintXToleration1(pod *v1.Pod) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func withLocalStorageVolume(pod *v1.Pod) {
|
func withLocalStorageVolume(pod *v1.Pod) {
|
||||||
pod.Spec.Volumes = []v1.Volume{
|
test.SetHostPathEmptyDirVolumeSource(pod)
|
||||||
{
|
|
||||||
Name: "sample",
|
|
||||||
VolumeSource: v1.VolumeSource{
|
|
||||||
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
|
||||||
EmptyDir: &v1.EmptyDirVolumeSource{
|
|
||||||
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func withKubeSystemCriticalPod(pod *v1.Pod) {
|
func withKubeSystemCriticalPod(pod *v1.Pod) {
|
||||||
|
|||||||
@@ -262,6 +262,20 @@ func SetPodPriority(pod *v1.Pod, priority int32) {
|
|||||||
pod.Spec.Priority = &priority
|
pod.Spec.Priority = &priority
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SetHostPathEmptyDirVolumeSource(pod *v1.Pod) {
|
||||||
|
pod.Spec.Volumes = []v1.Volume{
|
||||||
|
{
|
||||||
|
Name: "sample",
|
||||||
|
VolumeSource: v1.VolumeSource{
|
||||||
|
HostPath: &v1.HostPathVolumeSource{Path: "somePath"},
|
||||||
|
EmptyDir: &v1.EmptyDirVolumeSource{
|
||||||
|
SizeLimit: resource.NewQuantity(int64(10), resource.BinarySI),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// SetNodeUnschedulable sets the given node unschedulable
|
// SetNodeUnschedulable sets the given node unschedulable
|
||||||
func SetNodeUnschedulable(node *v1.Node) {
|
func SetNodeUnschedulable(node *v1.Node) {
|
||||||
node.Spec.Unschedulable = true
|
node.Spec.Unschedulable = true
|
||||||
|
|||||||
Reference in New Issue
Block a user