mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 01:06:27 +00:00
add table test for should run predicates
This commit is contained in:
parent
c518e89042
commit
df0f4bd41e
@ -651,3 +651,119 @@ func TestObservedGeneration(t *testing.T) {
|
|||||||
t.Errorf("Wrong ObservedGeneration for daemon %s in status. Expected %d, got %d", updated.Name, daemon.Generation, updated.Status.ObservedGeneration)
|
t.Errorf("Wrong ObservedGeneration for daemon %s in status. Expected %d, got %d", updated.Name, daemon.Generation, updated.Status.ObservedGeneration)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestNodeShouldRunDaemonPod(t *testing.T) {
|
||||||
|
cases := []struct {
|
||||||
|
podsOnNode []*v1.Pod
|
||||||
|
ds *extensions.DaemonSet
|
||||||
|
wantToRun, shouldSchedule, shouldContinueRunning bool
|
||||||
|
err error
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
ds: &extensions.DaemonSet{
|
||||||
|
Spec: extensions.DaemonSetSpec{
|
||||||
|
Selector: &metav1.LabelSelector{MatchLabels: simpleDaemonSetLabel},
|
||||||
|
Template: v1.PodTemplateSpec{
|
||||||
|
ObjectMeta: v1.ObjectMeta{
|
||||||
|
Labels: simpleDaemonSetLabel,
|
||||||
|
},
|
||||||
|
Spec: resourcePodSpec("", "50M", "0.5"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
wantToRun: true,
|
||||||
|
shouldSchedule: true,
|
||||||
|
shouldContinueRunning: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ds: &extensions.DaemonSet{
|
||||||
|
Spec: extensions.DaemonSetSpec{
|
||||||
|
Selector: &metav1.LabelSelector{MatchLabels: simpleDaemonSetLabel},
|
||||||
|
Template: v1.PodTemplateSpec{
|
||||||
|
ObjectMeta: v1.ObjectMeta{
|
||||||
|
Labels: simpleDaemonSetLabel,
|
||||||
|
},
|
||||||
|
Spec: resourcePodSpec("", "200M", "0.5"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
wantToRun: true,
|
||||||
|
shouldSchedule: false,
|
||||||
|
shouldContinueRunning: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ds: &extensions.DaemonSet{
|
||||||
|
Spec: extensions.DaemonSetSpec{
|
||||||
|
Selector: &metav1.LabelSelector{MatchLabels: simpleDaemonSetLabel},
|
||||||
|
Template: v1.PodTemplateSpec{
|
||||||
|
ObjectMeta: v1.ObjectMeta{
|
||||||
|
Labels: simpleDaemonSetLabel,
|
||||||
|
},
|
||||||
|
Spec: resourcePodSpec("other-node", "50M", "0.5"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
wantToRun: false,
|
||||||
|
shouldSchedule: false,
|
||||||
|
shouldContinueRunning: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
podsOnNode: []*v1.Pod{
|
||||||
|
{
|
||||||
|
Spec: v1.PodSpec{
|
||||||
|
Containers: []v1.Container{{
|
||||||
|
Ports: []v1.ContainerPort{{
|
||||||
|
HostPort: 666,
|
||||||
|
}},
|
||||||
|
}},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ds: &extensions.DaemonSet{
|
||||||
|
Spec: extensions.DaemonSetSpec{
|
||||||
|
Selector: &metav1.LabelSelector{MatchLabels: simpleDaemonSetLabel},
|
||||||
|
Template: v1.PodTemplateSpec{
|
||||||
|
ObjectMeta: v1.ObjectMeta{
|
||||||
|
Labels: simpleDaemonSetLabel,
|
||||||
|
},
|
||||||
|
Spec: v1.PodSpec{
|
||||||
|
Containers: []v1.Container{{
|
||||||
|
Ports: []v1.ContainerPort{{
|
||||||
|
HostPort: 666,
|
||||||
|
}},
|
||||||
|
}},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
wantToRun: false,
|
||||||
|
shouldSchedule: false,
|
||||||
|
shouldContinueRunning: false,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for i, c := range cases {
|
||||||
|
node := newNode("test-node", nil)
|
||||||
|
node.Status.Allocatable = allocatableResources("100M", "1")
|
||||||
|
manager, _, _ := newTestController()
|
||||||
|
manager.nodeStore.Store.Add(node)
|
||||||
|
for _, p := range c.podsOnNode {
|
||||||
|
manager.podStore.Indexer.Add(p)
|
||||||
|
p.Spec.NodeName = "test-node"
|
||||||
|
}
|
||||||
|
wantToRun, shouldSchedule, shouldContinueRunning, err := manager.nodeShouldRunDaemonPod(node, c.ds)
|
||||||
|
|
||||||
|
if wantToRun != c.wantToRun {
|
||||||
|
t.Errorf("[%v] expected wantToRun: %v, got: %v", i, c.wantToRun, wantToRun)
|
||||||
|
}
|
||||||
|
if shouldSchedule != c.shouldSchedule {
|
||||||
|
t.Errorf("[%v] expected shouldSchedule: %v, got: %v", i, c.shouldSchedule, shouldSchedule)
|
||||||
|
}
|
||||||
|
if shouldContinueRunning != c.shouldContinueRunning {
|
||||||
|
t.Errorf("[%v] expected shouldContinueRunning: %v, got: %v", i, c.shouldContinueRunning, shouldContinueRunning)
|
||||||
|
}
|
||||||
|
if err != c.err {
|
||||||
|
t.Errorf("[%v] expected err: %v, got: %v", i, c.err, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user