...

Text file src/k8s.io/kubernetes/test/integration/scheduler_perf/config/performance-config.yaml

Documentation: k8s.io/kubernetes/test/integration/scheduler_perf/config

     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