k8s.io/kubernetes@v1.31.0-alpha.0.0.20240520171757-56147500dadc/test/integration/scheduler_perf/config/performance-config.yaml (about)

     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