...
1# The following labels are used in this file:
2# - fast: short execution time, ideally less than 30 seconds
3# - integration-test: used to select workloads that
4# run in pull-kubernetes-integration. Choosing those tests
5# is a tradeoff between code coverage and overall runtime.
6# - performance: used to select workloads that run
7# in ci-benchmark-scheduler-perf. Such workloads
8# must run long enough (ideally, longer than 10 seconds)
9# to provide meaningful samples for the pod scheduling
10# rate.
11#
12# Combining "performance" and "fast" selects suitable workloads for a local
13# before/after comparisons with benchstat.
14
15- name: SchedulingBasic
16 defaultPodTemplatePath: config/pod-default.yaml
17 workloadTemplate:
18 - opcode: createNodes
19 countParam: $initNodes
20 - opcode: createPods
21 countParam: $initPods
22 - opcode: createPods
23 countParam: $measurePods
24 collectMetrics: true
25 workloads:
26 - name: 500Nodes
27 labels: [integration-test, fast]
28 params:
29 initNodes: 500
30 initPods: 500
31 measurePods: 1000
32 - name: 5000Nodes
33 labels: [performance, fast]
34 params:
35 initNodes: 5000
36 initPods: 1000
37 measurePods: 1000
38
39- name: SchedulingPodAntiAffinity
40 defaultPodTemplatePath: config/pod-with-pod-anti-affinity.yaml
41 workloadTemplate:
42 - opcode: createNodes
43 countParam: $initNodes
44 - opcode: createNamespaces
45 prefix: sched
46 count: 2
47 - opcode: createPods
48 countParam: $initPods
49 namespace: sched-0
50 - opcode: createPods
51 countParam: $measurePods
52 collectMetrics: true
53 namespace: sched-1
54 workloads:
55 - name: 500Nodes
56 labels: [integration-test, fast]
57 params:
58 initNodes: 500
59 initPods: 100
60 measurePods: 400
61 - name: 5000Nodes
62 labels: [performance, fast]
63 params:
64 initNodes: 5000
65 initPods: 1000
66 measurePods: 1000
67
68- name: SchedulingSecrets
69 defaultPodTemplatePath: config/pod-with-secret-volume.yaml
70 workloadTemplate:
71 - opcode: createNodes
72 countParam: $initNodes
73 - opcode: createPods
74 countParam: $initPods
75 - opcode: createPods
76 countParam: $measurePods
77 collectMetrics: true
78 workloads:
79 - name: 500Nodes
80 labels: [fast]
81 params:
82 initNodes: 500
83 initPods: 500
84 measurePods: 1000
85 - name: 5000Nodes
86 labels: [performance, fast]
87 params:
88 initNodes: 5000
89 initPods: 5000
90 measurePods: 1000
91
92- name: SchedulingInTreePVs
93 labels: [performance]
94 workloadTemplate:
95 - opcode: createNodes
96 countParam: $initNodes
97 - opcode: createPods
98 countParam: $initPods
99 persistentVolumeTemplatePath: config/pv-aws.yaml
100 persistentVolumeClaimTemplatePath: config/pvc.yaml
101 - opcode: createPods
102 countParam: $measurePods
103 persistentVolumeTemplatePath: config/pv-aws.yaml
104 persistentVolumeClaimTemplatePath: config/pvc.yaml
105 collectMetrics: true
106 workloads:
107 - name: 500Nodes
108 labels: [fast]
109 params:
110 initNodes: 500
111 initPods: 500
112 measurePods: 1000
113 - name: 5000Nodes
114 params:
115 initNodes: 5000
116 initPods: 5000
117 measurePods: 1000
118
119- name: SchedulingMigratedInTreePVs
120 labels: [performance]
121 workloadTemplate:
122 - opcode: createNodes
123 countParam: $initNodes
124 nodeTemplatePath: config/node-default.yaml
125 nodeAllocatableStrategy:
126 nodeAllocatable:
127 attachable-volumes-csi-ebs.csi.aws.com: "39"
128 csiNodeAllocatable:
129 ebs.csi.aws.com:
130 count: 39
131 migratedPlugins:
132 - "kubernetes.io/aws-ebs"
133 - opcode: createPods
134 countParam: $initPods
135 persistentVolumeTemplatePath: config/pv-aws.yaml
136 persistentVolumeClaimTemplatePath: config/pvc.yaml
137 - opcode: createPods
138 countParam: $measurePods
139 persistentVolumeTemplatePath: config/pv-aws.yaml
140 persistentVolumeClaimTemplatePath: config/pvc.yaml
141 collectMetrics: true
142 workloads:
143 - name: 500Nodes
144 labels: [fast]
145 params:
146 initNodes: 500
147 initPods: 500
148 measurePods: 1000
149 - name: 5000Nodes
150 params:
151 initNodes: 5000
152 initPods: 5000
153 measurePods: 1000
154
155- name: SchedulingCSIPVs
156 labels: [performance]
157 workloadTemplate:
158 - opcode: createNodes
159 countParam: $initNodes
160 nodeTemplatePath: config/node-default.yaml
161 nodeAllocatableStrategy:
162 nodeAllocatable:
163 attachable-volumes-csi-ebs.csi.aws.com: "39"
164 csiNodeAllocatable:
165 ebs.csi.aws.com:
166 count: 39
167 - opcode: createPods
168 countParam: $initPods
169 persistentVolumeTemplatePath: config/pv-csi.yaml
170 persistentVolumeClaimTemplatePath: config/pvc.yaml
171 - opcode: createPods
172 countParam: $measurePods
173 persistentVolumeTemplatePath: config/pv-csi.yaml
174 persistentVolumeClaimTemplatePath: config/pvc.yaml
175 collectMetrics: true
176 workloads:
177 - name: 500Nodes
178 labels: [integration-test, fast]
179 params:
180 initNodes: 500
181 initPods: 500
182 measurePods: 1000
183 - name: 5000Nodes
184 params:
185 initNodes: 5000
186 initPods: 5000
187 measurePods: 1000
188
189- name: SchedulingPodAffinity
190 defaultPodTemplatePath: config/pod-with-pod-affinity.yaml
191 workloadTemplate:
192 - opcode: createNodes
193 countParam: $initNodes
194 nodeTemplatePath: config/node-default.yaml
195 labelNodePrepareStrategy:
196 labelKey: "topology.kubernetes.io/zone"
197 labelValues: ["zone1"]
198 - opcode: createNamespaces
199 prefix: sched
200 count: 2
201 - opcode: createPods
202 countParam: $initPods
203 namespace: sched-0
204 - opcode: createPods
205 countParam: $measurePods
206 namespace: sched-1
207 collectMetrics: true
208 workloads:
209 - name: 500Nodes
210 labels: [fast]
211 params:
212 initNodes: 500
213 initPods: 500
214 measurePods: 1000
215 - name: 5000Nodes
216 labels: [performance, fast]
217 params:
218 initNodes: 5000
219 initPods: 5000
220 measurePods: 1000
221
222- name: SchedulingPreferredPodAffinity
223 labels: [performance]
224 defaultPodTemplatePath: config/pod-with-preferred-pod-affinity.yaml
225 workloadTemplate:
226 - opcode: createNodes
227 countParam: $initNodes
228 - opcode: createNamespaces
229 prefix: sched
230 count: 2
231 - opcode: createPods
232 countParam: $initPods
233 namespace: sched-0
234 - opcode: createPods
235 countParam: $measurePods
236 namespace: sched-1
237 collectMetrics: true
238 workloads:
239 - name: 500Nodes
240 labels: [integration-test, fast]
241 params:
242 initNodes: 500
243 initPods: 500
244 measurePods: 1000
245 - name: 5000Nodes
246 params:
247 initNodes: 5000
248 initPods: 5000
249 measurePods: 1000
250
251- name: SchedulingPreferredPodAntiAffinity
252 defaultPodTemplatePath: config/pod-with-preferred-pod-affinity.yaml
253 workloadTemplate:
254 - opcode: createNodes
255 countParam: $initNodes
256 - opcode: createNamespaces
257 prefix: sched
258 count: 2
259 - opcode: createPods
260 countParam: $initPods
261 namespace: sched-0
262 - opcode: createPods
263 countParam: $measurePods
264 namespace: sched-1
265 collectMetrics: true
266 workloads:
267 - name: 500Nodes
268 labels: [fast]
269 params:
270 initNodes: 500
271 initPods: 500
272 measurePods: 1000
273 - name: 5000Nodes
274 labels: [performance, fast]
275 params:
276 initNodes: 5000
277 initPods: 5000
278 measurePods: 1000
279
280- name: SchedulingNodeAffinity
281 defaultPodTemplatePath: config/pod-with-node-affinity.yaml
282 workloadTemplate:
283 - opcode: createNodes
284 countParam: $initNodes
285 nodeTemplatePath: config/node-default.yaml
286 labelNodePrepareStrategy:
287 labelKey: "topology.kubernetes.io/zone"
288 labelValues: ["zone1"]
289 - opcode: createPods
290 countParam: $initPods
291 - opcode: createPods
292 countParam: $measurePods
293 collectMetrics: true
294 workloads:
295 - name: 500Nodes
296 labels: [fast]
297 params:
298 initNodes: 500
299 initPods: 500
300 measurePods: 1000
301 - name: 5000Nodes
302 labels: [performance, fast]
303 params:
304 initNodes: 5000
305 initPods: 5000
306 measurePods: 1000
307
308- name: TopologySpreading
309 workloadTemplate:
310 - opcode: createNodes
311 countParam: $initNodes
312 nodeTemplatePath: config/node-default.yaml
313 labelNodePrepareStrategy:
314 labelKey: "topology.kubernetes.io/zone"
315 labelValues: ["moon-1", "moon-2", "moon-3"]
316 - opcode: createPods
317 countParam: $initPods
318 podTemplatePath: config/pod-default.yaml
319 - opcode: createPods
320 countParam: $measurePods
321 podTemplatePath: config/pod-with-topology-spreading.yaml
322 collectMetrics: true
323 workloads:
324 - name: 500Nodes
325 labels: [integration-test, fast]
326 params:
327 initNodes: 500
328 initPods: 1000
329 measurePods: 1000
330 - name: 5000Nodes
331 labels: [performance, fast]
332 params:
333 initNodes: 5000
334 initPods: 5000
335 measurePods: 2000
336
337- name: PreferredTopologySpreading
338 labels: [performance]
339 workloadTemplate:
340 - opcode: createNodes
341 countParam: $initNodes
342 nodeTemplatePath: config/node-default.yaml
343 labelNodePrepareStrategy:
344 labelKey: "topology.kubernetes.io/zone"
345 labelValues: ["moon-1", "moon-2", "moon-3"]
346 - opcode: createPods
347 countParam: $initPods
348 podTemplatePath: config/pod-default.yaml
349 - opcode: createPods
350 countParam: $measurePods
351 podTemplatePath: config/pod-with-preferred-topology-spreading.yaml
352 collectMetrics: true
353 workloads:
354 - name: 500Nodes
355 labels: [fast]
356 params:
357 initNodes: 500
358 initPods: 1000
359 measurePods: 1000
360 - name: 5000Nodes
361 params:
362 initNodes: 5000
363 initPods: 5000
364 measurePods: 2000
365
366- name: MixedSchedulingBasePod
367 labels: [performance]
368 defaultPodTemplatePath: config/pod-default.yaml
369 workloadTemplate:
370 - opcode: createNodes
371 countParam: $initNodes
372 nodeTemplatePath: config/node-default.yaml
373 labelNodePrepareStrategy:
374 labelKey: "topology.kubernetes.io/zone"
375 labelValues: ["zone1"]
376 - opcode: createNamespaces
377 prefix: sched
378 count: 1
379 - opcode: createPods
380 countParam: $initPods
381 namespace: sched-0
382 - opcode: createPods
383 countParam: $initPods
384 podTemplatePath: config/pod-with-pod-affinity.yaml
385 namespace: sched-0
386 - opcode: createPods
387 countParam: $initPods
388 podTemplatePath: config/pod-with-pod-anti-affinity.yaml
389 namespace: sched-0
390 - opcode: createPods
391 countParam: $initPods
392 podTemplatePath: config/pod-with-preferred-pod-affinity.yaml
393 namespace: sched-0
394 - opcode: createPods
395 countParam: $initPods
396 podTemplatePath: config/pod-with-preferred-pod-anti-affinity.yaml
397 namespace: sched-0
398 - opcode: createPods
399 countParam: $measurePods
400 collectMetrics: true
401 workloads:
402 - name: 500Nodes
403 labels: [integration-test, fast]
404 params:
405 initNodes: 500
406 initPods: 200
407 measurePods: 1000
408 - name: 5000Nodes
409 params:
410 initNodes: 5000
411 initPods: 2000
412 measurePods: 1000
413
414- name: PreemptionBasic
415 labels: [performance]
416 workloadTemplate:
417 - opcode: createNodes
418 countParam: $initNodes
419 - opcode: createPods
420 countParam: $initPods
421 podTemplatePath: config/pod-low-priority.yaml
422 - opcode: createPods
423 countParam: $measurePods
424 podTemplatePath: config/pod-high-priority.yaml
425 collectMetrics: true
426 workloads:
427 - name: 500Nodes
428 labels: [fast]
429 params:
430 initNodes: 500
431 initPods: 2000
432 measurePods: 500
433# This test case always seems to fail.
434# https://github.com/kubernetes/kubernetes/issues/108308
435#
436# - name: 5000Nodes
437# params:
438# initNodes: 5000
439# initPods: 20000
440# measurePods: 5000
441
442- name: PreemptionPVs
443 labels: [performance]
444 workloadTemplate:
445 - opcode: createNodes
446 countParam: $initNodes
447 - opcode: createPods
448 countParam: $initPods
449 podTemplatePath: config/pod-low-priority.yaml
450 - opcode: createPods
451 countParam: $measurePods
452 podTemplatePath: config/pod-high-priority.yaml
453 persistentVolumeTemplatePath: config/pv-aws.yaml
454 persistentVolumeClaimTemplatePath: config/pvc.yaml
455 collectMetrics: true
456 workloads:
457 - name: 500Nodes
458 labels: [fast]
459 params:
460 initNodes: 500
461 initPods: 2000
462 measurePods: 500
463# This test case always seems to fail.
464# https://github.com/kubernetes/kubernetes/issues/108308
465#
466# - name: 5000Nodes
467# params:
468# initNodes: 5000
469# initPods: 20000
470# measurePods: 5000
471
472- name: Unschedulable
473 workloadTemplate:
474 - opcode: createNodes
475 countParam: $initNodes
476 - opcode: createPods
477 countParam: $initPods
478 podTemplatePath: config/pod-large-cpu.yaml
479 skipWaitToCompletion: true
480 - opcode: createPods
481 countParam: $measurePods
482 podTemplatePath: config/pod-default.yaml
483 collectMetrics: true
484 workloads:
485 - name: 500Nodes/200InitPods
486 labels: [fast]
487 params:
488 initNodes: 500
489 initPods: 200
490 measurePods: 1000
491 - name: 5000Nodes/200InitPods
492 labels: [performance, fast]
493 params:
494 initNodes: 5000
495 initPods: 200
496 measurePods: 5000
497 - name: 5000Nodes/2000InitPods
498 params:
499 initNodes: 5000
500 initPods: 2000
501 measurePods: 5000
502
503- name: SchedulingWithMixedChurn
504 workloadTemplate:
505 - opcode: createNodes
506 countParam: $initNodes
507 - opcode: churn
508 mode: recreate
509 number: 1
510 templatePaths:
511 - config/churn/node-default.yaml
512 - config/pod-high-priority-large-cpu.yaml
513 - config/churn/service-default.yaml
514 intervalMilliseconds: 1000
515 - opcode: createPods
516 countParam: $measurePods
517 podTemplatePath: config/pod-default.yaml
518 collectMetrics: true
519 workloads:
520 - name: 1000Nodes
521 labels: [integration-test, fast]
522 params:
523 initNodes: 1000
524 measurePods: 1000
525 - name: 5000Nodes
526 labels: [performance, fast]
527 params:
528 initNodes: 5000
529 measurePods: 2000
530
531- name: SchedulingRequiredPodAntiAffinityWithNSSelector
532 labels: [performance]
533 defaultPodTemplatePath: config/pod-anti-affinity-ns-selector.yaml
534 workloadTemplate:
535 - opcode: createNodes
536 countParam: $initNodes
537 - opcode: createNamespaces
538 prefix: init-ns
539 countParam: $initNamespaces
540 namespaceTemplatePath: config/namespace-with-labels.yaml
541 - opcode: createNamespaces
542 prefix: measure-ns
543 count: 1
544 namespaceTemplatePath: config/namespace-with-labels.yaml
545 - opcode: createPodSets
546 countParam: $initNamespaces
547 namespacePrefix: init-ns
548 createPodsOp:
549 opcode: createPods
550 countParam: $initPodsPerNamespace
551 - opcode: createPods
552 countParam: $measurePods
553 collectMetrics: true
554 namespace: measure-ns-0
555 workloads:
556 - name: 500Nodes
557 labels: [fast]
558 params:
559 initNodes: 500
560 initPodsPerNamespace: 4
561 initNamespaces: 10
562 measurePods: 100
563 - name: 5000Nodes
564 params:
565 initNodes: 5000
566 initPodsPerNamespace: 40
567 initNamespaces: 100
568 measurePods: 1000
569
570- name: SchedulingPreferredAntiAffinityWithNSSelector
571 labels: [performance]
572 defaultPodTemplatePath: config/pod-preferred-anti-affinity-ns-selector.yaml
573 workloadTemplate:
574 - opcode: createNodes
575 countParam: $initNodes
576 - opcode: createNamespaces
577 prefix: init-ns
578 countParam: $initNamespaces
579 namespaceTemplatePath: config/namespace-with-labels.yaml
580 - opcode: createNamespaces
581 prefix: measure-ns
582 count: 1
583 namespaceTemplatePath: config/namespace-with-labels.yaml
584 - opcode: createPodSets
585 countParam: $initNamespaces
586 namespacePrefix: init-ns
587 createPodsOp:
588 opcode: createPods
589 countParam: $initPodsPerNamespace
590 - opcode: createPods
591 countParam: $measurePods
592 collectMetrics: true
593 namespace: measure-ns-0
594 workloads:
595 - name: 500Nodes
596 labels: [fast]
597 params:
598 initNodes: 500
599 initPodsPerNamespace: 4
600 initNamespaces: 10
601 measurePods: 100
602 - name: 5000Nodes
603 params:
604 initNodes: 5000
605 initPodsPerNamespace: 40
606 initNamespaces: 100
607 measurePods: 1000
608
609- name: SchedulingRequiredPodAffinityWithNSSelector
610 labels: [performance]
611 defaultPodTemplatePath: config/pod-affinity-ns-selector.yaml
612 workloadTemplate:
613 - opcode: createNodes
614 countParam: $initNodes
615 labelNodePrepareStrategy:
616 labelKey: "topology.kubernetes.io/zone"
617 labelValues: ["zone1"]
618 - opcode: createNamespaces
619 prefix: init-ns
620 countParam: $initNamespaces
621 namespaceTemplatePath: config/namespace-with-labels.yaml
622 - opcode: createNamespaces
623 prefix: measure-ns
624 count: 1
625 namespaceTemplatePath: config/namespace-with-labels.yaml
626 - opcode: createPodSets
627 countParam: $initNamespaces
628 namespacePrefix: init-ns
629 createPodsOp:
630 opcode: createPods
631 countParam: $initPodsPerNamespace
632 - opcode: createPods
633 countParam: $measurePods
634 collectMetrics: true
635 namespace: measure-ns-0
636 workloads:
637 - name: 500Nodes
638 labels: [fast]
639 params:
640 initNodes: 500
641 initPodsPerNamespace: 4
642 initNamespaces: 10
643 measurePods: 100
644 - name: 5000Nodes
645 params:
646 initNodes: 5000
647 initPodsPerNamespace: 50
648 initNamespaces: 100
649 measurePods: 1000
650
651- name: SchedulingPreferredAffinityWithNSSelector
652 labels: [performance]
653 defaultPodTemplatePath: config/pod-preferred-affinity-ns-selector.yaml
654 workloadTemplate:
655 - opcode: createNodes
656 countParam: $initNodes
657 - opcode: createNamespaces
658 prefix: init-ns
659 countParam: $initNamespaces
660 namespaceTemplatePath: config/namespace-with-labels.yaml
661 - opcode: createNamespaces
662 prefix: measure-ns
663 count: 1
664 namespaceTemplatePath: config/namespace-with-labels.yaml
665 - opcode: createPodSets
666 countParam: $initNamespaces
667 namespacePrefix: init-ns
668 createPodsOp:
669 opcode: createPods
670 countParam: $initPodsPerNamespace
671 - opcode: createPods
672 countParam: $measurePods
673 collectMetrics: true
674 namespace: measure-ns-0
675 workloads:
676 - name: 500Nodes
677 labels: [fast]
678 params:
679 initNodes: 500
680 initPodsPerNamespace: 4
681 initNamespaces: 10
682 measurePods: 100
683 - name: 5000Nodes
684 params:
685 initNodes: 5000
686 initPodsPerNamespace: 50
687 initNamespaces: 100
688 measurePods: 1000
689
690- name: SchedulingWithNodeInclusionPolicy
691 featureGates:
692 NodeInclusionPolicyInPodTopologySpread: true
693 defaultPodTemplatePath: config/pod-with-node-inclusion-policy.yaml
694 workloadTemplate:
695 - opcode: createNodes
696 countParam: $normalNodes
697 - opcode: createNodes
698 nodeTemplatePath: config/node-with-taint.yaml
699 countParam: $taintNodes
700 - opcode: createPods
701 countParam: $measurePods
702 collectMetrics: true
703 workloads:
704 - name: 500Nodes
705 labels: [fast]
706 params:
707 taintNodes: 100
708 normalNodes: 400
709 measurePods: 400
710 - name: 5000Nodes
711 labels: [performance, fast]
712 params:
713 taintNodes: 1000
714 normalNodes: 4000
715 measurePods: 4000
716
717# SchedulingWithResourceClaimTemplate uses a ResourceClaimTemplate
718# and dynamically created ResourceClaim instances for each pod.
719- name: SchedulingWithResourceClaimTemplate
720 featureGates:
721 DynamicResourceAllocation: true
722 workloadTemplate:
723 - opcode: createNodes
724 countParam: $nodesWithoutDRA
725 - opcode: createNodes
726 nodeTemplatePath: config/dra/node-with-dra-test-driver.yaml
727 countParam: $nodesWithDRA
728 - opcode: createResourceDriver
729 driverName: test-driver.cdi.k8s.io
730 nodes: scheduler-perf-dra-*
731 maxClaimsPerNodeParam: $maxClaimsPerNode
732 - opcode: createAny
733 templatePath: config/dra/resourceclass.yaml
734 - opcode: createAny
735 templatePath: config/dra/resourceclaimtemplate.yaml
736 namespace: init
737 - opcode: createPods
738 namespace: init
739 countParam: $initPods
740 podTemplatePath: config/dra/pod-with-claim-template.yaml
741 - opcode: createAny
742 templatePath: config/dra/resourceclaimtemplate.yaml
743 namespace: test
744 - opcode: createPods
745 namespace: test
746 countParam: $measurePods
747 podTemplatePath: config/dra/pod-with-claim-template.yaml
748 collectMetrics: true
749 workloads:
750 - name: fast
751 labels: [integration-test, fast]
752 params:
753 # This testcase runs through all code paths without
754 # taking too long overall.
755 nodesWithDRA: 1
756 nodesWithoutDRA: 1
757 initPods: 0
758 measurePods: 10
759 maxClaimsPerNode: 10
760 - name: 2000pods_100nodes
761 labels: [performance, fast]
762 params:
763 # In this testcase, the number of nodes is smaller
764 # than the limit for the PodScheduling slices.
765 nodesWithDRA: 100
766 nodesWithoutDRA: 0
767 initPods: 1000
768 measurePods: 1000
769 maxClaimsPerNode: 20
770 - name: 2000pods_200nodes
771 params:
772 # In this testcase, the driver and scheduler must
773 # truncate the PotentialNodes and UnsuitableNodes
774 # slices.
775 nodesWithDRA: 200
776 nodesWithoutDRA: 0
777 initPods: 1000
778 measurePods: 1000
779 maxClaimsPerNode: 10
780
781# This similar to SchedulingWithResourceClaimTemplate, except
782# that it uses four claims per pod, from two different drivers.
783# This emphasizes a bit more the complexity of collaborative
784# scheduling via PodSchedulingContext.
785- name: SchedulingWithMultipleResourceClaims
786 featureGates:
787 DynamicResourceAllocation: true
788 workloadTemplate:
789 - opcode: createNodes
790 countParam: $nodesWithoutDRA
791 - opcode: createNodes
792 nodeTemplatePath: config/dra/node-with-dra-test-driver.yaml
793 countParam: $nodesWithDRA
794 - opcode: createResourceDriver
795 driverName: test-driver.cdi.k8s.io
796 nodes: scheduler-perf-dra-*
797 maxClaimsPerNodeParam: $maxClaimsPerNode
798 - opcode: createResourceDriver
799 driverName: another-test-driver.cdi.k8s.io
800 nodes: scheduler-perf-dra-*
801 maxClaimsPerNodeParam: $maxClaimsPerNode
802 - opcode: createAny
803 templatePath: config/dra/resourceclass.yaml
804 - opcode: createAny
805 templatePath: config/dra/another-resourceclass.yaml
806 - opcode: createAny
807 templatePath: config/dra/resourceclaimtemplate.yaml
808 namespace: init
809 - opcode: createAny
810 templatePath: config/dra/another-resourceclaimtemplate.yaml
811 namespace: init
812 - opcode: createPods
813 namespace: init
814 countParam: $initPods
815 podTemplatePath: config/dra/pod-with-many-claim-templates.yaml
816 - opcode: createAny
817 templatePath: config/dra/resourceclaimtemplate.yaml
818 namespace: test
819 - opcode: createAny
820 templatePath: config/dra/another-resourceclaimtemplate.yaml
821 namespace: test
822 - opcode: createPods
823 namespace: test
824 countParam: $measurePods
825 podTemplatePath: config/dra/pod-with-many-claim-templates.yaml
826 collectMetrics: true
827 workloads:
828 - name: fast
829 params:
830 # This testcase runs through all code paths without
831 # taking too long overall.
832 nodesWithDRA: 1
833 nodesWithoutDRA: 1
834 initPods: 0
835 measurePods: 1
836 maxClaimsPerNode: 20
837 - name: 2000pods_100nodes
838 params:
839 # In this testcase, the number of nodes is smaller
840 # than the limit for the PodScheduling slices.
841 nodesWithDRA: 100
842 nodesWithoutDRA: 0
843 initPods: 1000
844 measurePods: 1000
845 maxClaimsPerNode: 40
846 - name: 2000pods_200nodes
847 params:
848 # In this testcase, the driver and scheduler must
849 # truncate the PotentialNodes and UnsuitableNodes
850 # slices.
851 nodesWithDRA: 200
852 nodesWithoutDRA: 0
853 initPods: 1000
854 measurePods: 1000
855 maxClaimsPerNode: 20
856
857# SchedulingWithResourceClaimTemplate uses a ResourceClaimTemplate
858# and dynamically creates ResourceClaim instances for each pod.
859# The driver uses structured parameters.
860- name: SchedulingWithResourceClaimTemplateStructured
861 featureGates:
862 DynamicResourceAllocation: true
863 workloadTemplate:
864 - opcode: createNodes
865 countParam: $nodesWithoutDRA
866 - opcode: createNodes
867 nodeTemplatePath: config/dra/node-with-dra-test-driver.yaml
868 countParam: $nodesWithDRA
869 - opcode: createResourceDriver
870 driverName: test-driver.cdi.k8s.io
871 nodes: scheduler-perf-dra-*
872 maxClaimsPerNodeParam: $maxClaimsPerNode
873 structuredParameters: true
874 - opcode: createAny
875 templatePath: config/dra/resourceclass-structured.yaml
876 - opcode: createAny
877 templatePath: config/dra/resourceclaimparameters.yaml
878 namespace: init
879 - opcode: createAny
880 templatePath: config/dra/resourceclaimtemplate-structured.yaml
881 namespace: init
882 - opcode: createPods
883 namespace: init
884 countParam: $initPods
885 podTemplatePath: config/dra/pod-with-claim-template.yaml
886 - opcode: createAny
887 templatePath: config/dra/resourceclaimparameters.yaml
888 namespace: test
889 - opcode: createAny
890 templatePath: config/dra/resourceclaimtemplate-structured.yaml
891 namespace: test
892 - opcode: createPods
893 namespace: test
894 countParam: $measurePods
895 podTemplatePath: config/dra/pod-with-claim-template.yaml
896 collectMetrics: true
897 workloads:
898 - name: fast
899 labels: [integration-test, fast]
900 params:
901 # This testcase runs through all code paths without
902 # taking too long overall.
903 nodesWithDRA: 1
904 nodesWithoutDRA: 1
905 initPods: 0
906 measurePods: 10
907 maxClaimsPerNode: 10
908 - name: 2000pods_100nodes
909 labels: [performance, fast]
910 params:
911 # In this testcase, the number of nodes is smaller
912 # than the limit for the PodScheduling slices.
913 nodesWithDRA: 100
914 nodesWithoutDRA: 0
915 initPods: 1000
916 measurePods: 1000
917 maxClaimsPerNode: 20
918 - name: 2000pods_200nodes
919 params:
920 # In this testcase, the driver and scheduler must
921 # truncate the PotentialNodes and UnsuitableNodes
922 # slices.
923 nodesWithDRA: 200
924 nodesWithoutDRA: 0
925 initPods: 1000
926 measurePods: 1000
927 maxClaimsPerNode: 10
View as plain text