k8s.io/test-infra@v0.0.0-20240520184403-27c6b4c223d8/config/jobs/kubernetes/sig-scalability/sig-scalability-presubmit-jobs.yaml (about)

     1  presubmits:
     2    kubernetes/kubernetes:
     3    # This job is lighweight version of release blocking periodic job 'ci-kubernetes-e2e-gci-gce-scalability'.
     4    # Some elements (like access tokens) are removed to speed up testing.
     5    - name: pull-kubernetes-e2e-gce-100-performance
     6      cluster: k8s-infra-prow-build
     7      always_run: false
     8      skip_report: false
     9      max_concurrency: 12
    10      skip_branches:
    11      - release-\d+\.\d+  # per-release image
    12      decorate: true
    13      path_alias: k8s.io/kubernetes
    14      decoration_config:
    15        timeout: 120m
    16      extra_refs:
    17      - org: kubernetes
    18        repo: perf-tests
    19        base_ref: master
    20        path_alias: k8s.io/perf-tests
    21      - org: kubernetes
    22        repo: release
    23        base_ref: master
    24        path_alias: k8s.io/release
    25      labels:
    26        preset-service-account: "true"
    27        preset-k8s-ssh: "true"
    28        preset-dind-enabled: "true"
    29        preset-e2e-scalability-common: "true"
    30        preset-e2e-scalability-presubmits: "true"
    31      annotations:
    32        fork-per-release: "true"
    33        testgrid-dashboards: presubmits-kubernetes-scalability
    34        testgrid-tab-name: pull-kubernetes-e2e-gce-100-performance
    35      spec:
    36        containers:
    37        - image: gcr.io/k8s-staging-test-infra/kubekins-e2e:v20240515-17c6d50e24-master
    38          command:
    39          - runner.sh
    40          - /workspace/scenarios/kubernetes_e2e.py
    41          args:
    42          - --build=quick
    43          - --cluster=
    44          - --env=HEAPSTER_MACHINE_TYPE=e2-standard-8
    45          - --env=KUBEMARK_APISERVER_TEST_ARGS=--max-requests-inflight=80 --max-mutating-requests-inflight=0 --profiling --contention-profiling
    46          - --extract=local
    47          - --flush-mem-after-build=true
    48          - --gcp-node-image=gci
    49          - --gcp-nodes=100
    50          - --gcp-project-type=scalability-project
    51          - --gcp-zone=us-east1-b
    52          - --provider=gce
    53          - --stage=gs://kubernetes-release-pull/ci/pull-kubernetes-e2e-gce-100-performance
    54          - --tear-down-previous
    55          - --env=CL2_ENABLE_DNS_PROGRAMMING=true
    56          - --env=CL2_SCHEDULER_THROUGHPUT_THRESHOLD=0
    57          - --env=CL2_ENABLE_API_AVAILABILITY_MEASUREMENT=true
    58          - --env=CL2_API_AVAILABILITY_PERCENTAGE_THRESHOLD=99.5
    59          - --test=false
    60          - --test-cmd=$GOPATH/src/k8s.io/perf-tests/run-e2e.sh
    61          - --test-cmd-args=cluster-loader2
    62          - --test-cmd-args=--nodes=100
    63          - --test-cmd-args=--provider=gce
    64          - --test-cmd-args=--experimental-gcp-snapshot-prometheus-disk=true
    65          - --test-cmd-args=--experimental-prometheus-disk-snapshot-name=$(JOB_NAME)-$(BUILD_ID)
    66          - --test-cmd-args=--experimental-prometheus-snapshot-to-report-dir=true
    67          - --test-cmd-args=--prometheus-scrape-kubelets=true
    68          - --test-cmd-args=--prometheus-scrape-node-exporter
    69          - --test-cmd-args=--report-dir=$(ARTIFACTS)
    70          - --test-cmd-args=--testconfig=testing/load/config.yaml
    71          - --test-cmd-args=--testconfig=testing/huge-service/config.yaml
    72          - --test-cmd-args=--testoverrides=./testing/experiments/enable_restart_count_check.yaml
    73          - --test-cmd-args=--testoverrides=./testing/experiments/use_simple_latency_query.yaml
    74          - --test-cmd-args=--testoverrides=./testing/overrides/load_throughput.yaml
    75          - --test-cmd-name=ClusterLoaderV2
    76          - --timeout=100m
    77          - --use-logexporter
    78          - --logexporter-gcs-path=gs://sig-scalability-logs/$(JOB_NAME)/$(BUILD_ID)
    79          resources:
    80            # Using 6 CPU to speed up bazel build phase (2 is enough for the test itself)
    81            limits:
    82              cpu: 6
    83              memory: "14Gi"
    84            requests:
    85              cpu: 6
    86              memory: "14Gi"
    87          securityContext:
    88            privileged: true
    89  
    90    - name: pull-kubernetes-e2e-gce-big-performance
    91      always_run: false
    92      max_concurrency: 1
    93      branches:
    94      # TODO(releng): Remove once repo default branch has been renamed
    95      - master
    96      - main
    97      decorate: true
    98      path_alias: k8s.io/kubernetes
    99      decoration_config:
   100        timeout: 270m
   101      extra_refs:
   102      - org: kubernetes
   103        repo: perf-tests
   104        base_ref: master
   105        path_alias: k8s.io/perf-tests
   106      - org: kubernetes
   107        repo: release
   108        base_ref: master
   109        path_alias: k8s.io/release
   110      labels:
   111        preset-service-account: "true"
   112        preset-k8s-ssh: "true"
   113        preset-dind-enabled: "true"
   114        preset-e2e-scalability-common: "true"
   115        preset-e2e-scalability-presubmits: "true"
   116      annotations:
   117        testgrid-dashboards: presubmits-kubernetes-scalability
   118        testgrid-tab-name: pull-kubernetes-e2e-gce-big-performance
   119      spec:
   120        containers:
   121        - image: gcr.io/k8s-staging-test-infra/kubekins-e2e:v20240515-17c6d50e24-master
   122          command:
   123          - runner.sh
   124          - /workspace/scenarios/kubernetes_e2e.py
   125          args:
   126          - --build=quick
   127          - --cluster=
   128          - --env=HEAPSTER_MACHINE_TYPE=e2-standard-4
   129          - --env=KUBEMARK_APISERVER_TEST_ARGS=--max-requests-inflight=160 --max-mutating-requests-inflight=0 --profiling --contention-profiling
   130          - --extract=local
   131          - --flush-mem-after-build=true
   132          - --gcp-nodes=500
   133          - --gcp-project-type=scalability-presubmit-5k-project
   134          - --gcp-zone=us-east1-b
   135          - --provider=gce
   136          - --stage=gs://kubernetes-release-pull/ci/pull-kubernetes-e2e-gce-big-performance
   137          - --tear-down-previous
   138          - --test=false
   139          - --test-cmd=$GOPATH/src/k8s.io/perf-tests/run-e2e.sh
   140          - --test-cmd-args=cluster-loader2
   141          - --test-cmd-args=--nodes=500
   142          - --test-cmd-args=--provider=gce
   143          - --test-cmd-args=--report-dir=$(ARTIFACTS)
   144          - --test-cmd-args=--testconfig=testing/load/config.yaml
   145          - --test-cmd-args=--testconfig=testing/huge-service/config.yaml
   146          - --test-cmd-args=--testconfig=testing/access-tokens/config.yaml
   147          - --test-cmd-name=ClusterLoaderV2
   148          - --timeout=240m
   149          - --use-logexporter
   150          - --logexporter-gcs-path=gs://sig-scalability-logs/$(JOB_NAME)/$(BUILD_ID)
   151          resources:
   152            limits:
   153              # Using 6 CPU to speed up bazel build phase (4 is enough for the test itself)
   154              cpu: 6
   155              memory: "16Gi"
   156            requests:
   157              cpu: 6
   158              memory: "16Gi"
   159          securityContext:
   160            privileged: true
   161  
   162    # This is an equivalent of the ci-kubernetes-e2e-gce-scale-correctness test
   163    # at 100 node scale. It's an optional presubmit to simplify testing changes
   164    # that affect the releasing blocking ci correctness tests.
   165    - name: pull-kubernetes-e2e-gce-correctness
   166      cluster: k8s-infra-prow-build
   167      always_run: false
   168      optional: true
   169      decorate: true
   170      path_alias: k8s.io/kubernetes
   171      decoration_config:
   172        timeout: 270m
   173      extra_refs:
   174      - org: kubernetes
   175        repo: release
   176        base_ref: master
   177        path_alias: k8s.io/release
   178      labels:
   179        preset-service-account: "true"
   180        preset-k8s-ssh: "true"
   181        preset-dind-enabled: "true"
   182        preset-e2e-scalability-common: "true"
   183      annotations:
   184        testgrid-dashboards: presubmits-kubernetes-scalability
   185        testgrid-tab-name: pull-kubernetes-e2e-gce-correctness
   186      spec:
   187        containers:
   188        - image: gcr.io/k8s-staging-test-infra/kubekins-e2e:v20240515-17c6d50e24-master
   189          command:
   190          - runner.sh
   191          - /workspace/scenarios/kubernetes_e2e.py
   192          args:
   193          - --build=quick
   194          - --cluster=gce-cluster
   195          - --env=CONCURRENT_SERVICE_SYNCS=20 # support 20 LoadBalancer Services in parallel to deal with existing CI load #122286
   196          - --env=HEAPSTER_MACHINE_TYPE=e2-standard-2
   197          - --env=KUBEMARK_APISERVER_TEST_ARGS=--max-requests-inflight=80 --max-mutating-requests-inflight=0 --profiling --contention-profiling
   198          - --extract=local
   199          - --gcp-master-image=gci
   200          - --gcp-node-image=gci
   201          - --gcp-node-size=e2-small
   202          - --gcp-nodes=100
   203          - --gcp-project-type=scalability-project
   204          - --gcp-ssh-proxy-instance-name=gce-cluster-master
   205          - --gcp-zone=us-east1-b
   206          - --ginkgo-parallel=40
   207          - --provider=gce
   208          - --stage=gs://kubernetes-release-pull/ci/pull-kubernetes-e2e-gce-correctness
   209          - --test_args=--ginkgo.skip=\[Serial\]|\[Disruptive\]|\[Flaky\]|\[Feature:([^L].*|L[^o].*|Lo[^a].*|Loa[^d].*)\] --minStartupPods=8 --node-schedulable-timeout=90m
   210          - --timeout=240m
   211          - --use-logexporter
   212          - --logexporter-gcs-path=gs://sig-scalability-logs/$(JOB_NAME)/$(BUILD_ID)
   213          resources:
   214            limits:
   215              cpu: 6
   216              memory: "16Gi"
   217            requests:
   218              cpu: 6
   219              memory: "16Gi"
   220          securityContext:
   221            privileged: true
   222  
   223    - name: pull-kubernetes-e2e-gce-scale-performance-manual
   224      always_run: false
   225      max_concurrency: 1
   226      branches:
   227      # TODO(releng): Remove once repo default branch has been renamed
   228      - master
   229      - main
   230      decorate: true
   231      path_alias: k8s.io/kubernetes
   232      decoration_config:
   233        timeout: 450m
   234      extra_refs:
   235      - org: kubernetes
   236        repo: perf-tests
   237        base_ref: master
   238        path_alias: k8s.io/perf-tests
   239      - org: kubernetes
   240        repo: release
   241        base_ref: master
   242        path_alias: k8s.io/release
   243      labels:
   244        preset-service-account: "true"
   245        preset-k8s-ssh: "true"
   246        preset-dind-enabled: "true"
   247        preset-e2e-scalability-common: "true"
   248        preset-e2e-scalability-presubmits: "true"
   249      annotations:
   250        testgrid-dashboards: presubmits-kubernetes-scalability
   251        testgrid-tab-name: pull-kubernetes-e2e-gce-large-performance
   252      spec:
   253        containers:
   254        - image: gcr.io/k8s-staging-test-infra/kubekins-e2e:v20240515-17c6d50e24-master
   255          command:
   256          - runner.sh
   257          - /workspace/scenarios/kubernetes_e2e.py
   258          args:
   259          - --build=quick
   260          - --cluster=
   261          - --env=HEAPSTER_MACHINE_TYPE=e2-standard-32
   262          # TODO(mborsz): Adjust or remove this change once we understand coredns
   263          # memory usage regression.
   264          - --env=KUBE_DNS_MEMORY_LIMIT=300Mi
   265          - --extract=local
   266          - --flush-mem-after-build=true
   267          - --gcp-nodes=5000
   268          - --gcp-project-type=scalability-presubmit-5k-project
   269          - --gcp-zone=us-east1-b
   270          - --provider=gce
   271          - --stage=gs://kubernetes-release-pull/ci/pull-kubernetes-e2e-gce-scale-performance-manual
   272          - --metadata-sources=cl2-metadata.json
   273          - --env=CL2_LOAD_TEST_THROUGHPUT=50
   274          - --env=CL2_DELETE_TEST_THROUGHPUT=50
   275          - --env=CL2_RATE_LIMIT_POD_CREATION=false
   276          - --env=KUBE_CONTROLLER_MANAGER_TEST_ARGS=--endpointslice-updates-batch-period=500ms --endpoint-updates-batch-period=500ms
   277          # Overrides CONTROLLER_MANAGER_TEST_ARGS from preset-e2e-scalability-periodics.
   278          - --env=CONTROLLER_MANAGER_TEST_ARGS=--profiling --contention-profiling --kube-api-qps=100 --kube-api-burst=100
   279          # Overrides SCHEDULER_TEST_ARGS from preset-e2e-scalability-periodics.
   280          # TODO(#1311): Clean this up after the experiment - it should allow
   281          #   to hugely decrease pod-startup-latency across the whole test.
   282          #   Given that individual controllers have separate QPS limits, we allow
   283          #   scheduler to keep up with the load from deployment, daemonset and job
   284          #   performing pod creations at once.
   285          - --env=SCHEDULER_TEST_ARGS=--profiling --contention-profiling --kube-api-qps=500 --kube-api-burst=500
   286          # With APF only sum of --max-requests-inflight and --max-mutating-requests-inflight matters, so set --max-mutating-requests-inflight to 0.
   287          - --env=APISERVER_TEST_ARGS=--max-requests-inflight=640 --max-mutating-requests-inflight=0 --profiling --contention-profiling
   288          - --env=CL2_ENABLE_API_AVAILABILITY_MEASUREMENT=true
   289          - --env=CL2_API_AVAILABILITY_PERCENTAGE_THRESHOLD=99.5
   290          - --test=false
   291          - --test-cmd=$GOPATH/src/k8s.io/perf-tests/run-e2e.sh
   292          - --test-cmd-args=cluster-loader2
   293          - --test-cmd-args=--experimental-gcp-snapshot-prometheus-disk=true
   294          - --test-cmd-args=--experimental-prometheus-disk-snapshot-name=$(JOB_NAME)-$(BUILD_ID)
   295          - --test-cmd-args=--experimental-prometheus-snapshot-to-report-dir=true
   296          - --test-cmd-args=--nodes=5000
   297          - --test-cmd-args=--prometheus-scrape-node-exporter
   298          - --test-cmd-args=--provider=gce
   299          - --test-cmd-args=--report-dir=$(ARTIFACTS)
   300          - --test-cmd-args=--testconfig=testing/load/config.yaml
   301          - --test-cmd-args=--testconfig=testing/huge-service/config.yaml
   302          - --test-cmd-args=--testconfig=testing/access-tokens/config.yaml
   303          - --test-cmd-args=--testoverrides=./testing/experiments/enable_restart_count_check.yaml
   304          - --test-cmd-args=--testoverrides=./testing/experiments/ignore_known_gce_container_restarts.yaml
   305          - --test-cmd-args=--testoverrides=./testing/overrides/5000_nodes.yaml
   306          - --test-cmd-name=ClusterLoaderV2
   307          - --timeout=420m
   308          - --use-logexporter
   309          - --logexporter-gcs-path=gs://sig-scalability-logs/$(JOB_NAME)/$(BUILD_ID)
   310          resources:
   311            limits:
   312              # Using 6 CPU to speed up bazel build phase (4 is enough for the test itself)
   313              cpu: 6
   314              memory: "16Gi"
   315            requests:
   316              cpu: 6
   317              memory: "16Gi"
   318          securityContext:
   319            privileged: true
   320  
   321    - name: pull-kubernetes-kubemark-e2e-gce-big
   322      cluster: k8s-infra-prow-build
   323      always_run: false
   324      optional: true
   325      skip_report: false
   326      max_concurrency: 12
   327      skip_branches:
   328      - release-\d+\.\d+  # per-release image
   329      decorate: true
   330      path_alias: k8s.io/kubernetes
   331      decoration_config:
   332        timeout: 120m
   333      extra_refs:
   334      - org: kubernetes
   335        repo: perf-tests
   336        base_ref: master
   337        path_alias: k8s.io/perf-tests
   338      - org: kubernetes
   339        repo: release
   340        base_ref: master
   341        path_alias: k8s.io/release
   342      labels:
   343        preset-service-account: "true"
   344        preset-k8s-ssh: "true"
   345        preset-dind-enabled: "true"
   346        preset-e2e-kubemark-common: "true"
   347        preset-e2e-scalability-presubmits: "true"
   348      annotations:
   349        fork-per-release: "true"
   350        testgrid-dashboards: presubmits-kubernetes-scalability
   351        testgrid-tab-name: pull-kubernetes-kubemark-e2e-gce-big
   352      spec:
   353        containers:
   354        - image: gcr.io/k8s-staging-test-infra/kubekins-e2e:v20240515-17c6d50e24-master
   355          command:
   356          - runner.sh
   357          - /workspace/scenarios/kubernetes_e2e.py
   358          args:
   359          - --build=quick
   360          - --cluster=
   361          - --extract=local
   362          - --flush-mem-after-build=true
   363          - --gcp-master-size=n2-standard-4
   364          - --gcp-node-size=e2-standard-8
   365          - --gcp-nodes=7
   366          - --gcp-project-type=scalability-project
   367          - --gcp-zone=us-east1-b
   368          - --kubemark
   369          - --kubemark-nodes=500
   370          - --kubemark-master-size=n2-standard-16
   371          - --env=KUBEMARK_APISERVER_TEST_ARGS=--max-requests-inflight=160 --max-mutating-requests-inflight=0 --profiling --contention-profiling
   372          - --provider=gce
   373          - --stage=gs://kubernetes-release-pull/ci/pull-kubernetes-kubemark-e2e-gce-big
   374          - --tear-down-previous
   375          - --test=false
   376          - --test_args=--ginkgo.focus=xxxx
   377          - --test-cmd=$GOPATH/src/k8s.io/perf-tests/run-e2e.sh
   378          - --test-cmd-args=cluster-loader2
   379          - --test-cmd-args=--experimental-gcp-snapshot-prometheus-disk=true
   380          - --test-cmd-args=--experimental-prometheus-disk-snapshot-name=$(JOB_NAME)-$(BUILD_ID)
   381          - --test-cmd-args=--experimental-prometheus-snapshot-to-report-dir=true
   382          - --test-cmd-args=--nodes=500
   383          - --test-cmd-args=--provider=kubemark
   384          - --test-cmd-args=--report-dir=$(ARTIFACTS)
   385          - --test-cmd-args=--testconfig=testing/load/config.yaml
   386          - --test-cmd-args=--testconfig=testing/huge-service/config.yaml
   387          - --test-cmd-args=--testconfig=testing/access-tokens/config.yaml
   388          - --test-cmd-args=--testoverrides=./testing/experiments/enable_restart_count_check.yaml
   389          - --test-cmd-args=--testoverrides=./testing/experiments/use_simple_latency_query.yaml
   390          - --test-cmd-args=--testoverrides=./testing/overrides/kubemark_500_nodes.yaml
   391          - --test-cmd-name=ClusterLoaderV2
   392          - --timeout=100m
   393          - --use-logexporter
   394          - --logexporter-gcs-path=gs://sig-scalability-logs/$(JOB_NAME)/$(BUILD_ID)
   395          # TODO(krzyzacy): Figure out bazel built kubemark image
   396          #env:
   397          # - name: KUBEMARK_BAZEL_BUILD
   398          # value: "y"
   399          resources:
   400            limits:
   401              # Using 6 CPU to speed up bazel build phase (4 is enough for the test itself)
   402              cpu: 6
   403              memory: 16Gi
   404            requests:
   405              cpu: 6
   406              memory: 16Gi
   407          securityContext:
   408            privileged: true
   409  
   410    - name: pull-kubernetes-kubemark-e2e-gce-scale
   411      cluster: k8s-infra-prow-build
   412      always_run: false
   413      max_concurrency: 1
   414      branches:
   415      # TODO(releng): Remove once repo default branch has been renamed
   416      - master
   417      - main
   418      decorate: true
   419      path_alias: k8s.io/kubernetes
   420      decoration_config:
   421        timeout: 1100m
   422      extra_refs:
   423      - org: kubernetes
   424        repo: perf-tests
   425        base_ref: master
   426        path_alias: k8s.io/perf-tests
   427      - org: kubernetes
   428        repo: release
   429        base_ref: master
   430        path_alias: k8s.io/release
   431      labels:
   432        preset-service-account: "true"
   433        preset-k8s-ssh: "true"
   434        preset-dind-enabled: "true"
   435        preset-e2e-kubemark-common: "true"
   436        preset-e2e-kubemark-gce-scale: "true"
   437        preset-e2e-scalability-presubmits: "true"
   438      annotations:
   439        fork-per-release: "true"
   440        testgrid-dashboards: presubmits-kubernetes-scalability
   441        testgrid-tab-name: pull-kubernetes-kubemark-e2e-gce-scale
   442      spec:
   443        containers:
   444        - image: gcr.io/k8s-staging-test-infra/kubekins-e2e:v20240515-17c6d50e24-master
   445          command:
   446          - runner.sh
   447          - /workspace/scenarios/kubernetes_e2e.py
   448          args:
   449          - --build=quick
   450          - --cluster=
   451          - --extract=local
   452          - --flush-mem-after-build=true
   453          - --gcp-node-size=e2-standard-8
   454          - --gcp-nodes=84
   455          - --gcp-project-type=scalability-project
   456          - --gcp-zone=us-east1-b
   457          - --kubemark
   458          - --kubemark-nodes=5000
   459          - --kubemark-master-size=n2-standard-64
   460          - --provider=gce
   461          - --stage=gs://kubernetes-release-pull/ci/pull-kubernetes-kubemark-e2e-gce-scale
   462          # With APF only sum of --max-requests-inflight and --max-mutating-requests-inflight matters, so set --max-mutating-requests-inflight to 0.
   463          - --env=KUBEMARK_APISERVER_TEST_ARGS=--max-requests-inflight=640 --max-mutating-requests-inflight=0 --profiling --contention-profiling
   464          - --test=false
   465          - --test_args=--ginkgo.focus=xxxx
   466          - --test-cmd=$GOPATH/src/k8s.io/perf-tests/run-e2e.sh
   467          - --test-cmd-args=cluster-loader2
   468          - --test-cmd-args=--experimental-gcp-snapshot-prometheus-disk=true
   469          - --test-cmd-args=--experimental-prometheus-disk-snapshot-name=$(JOB_NAME)-$(BUILD_ID)
   470          - --test-cmd-args=--experimental-prometheus-snapshot-to-report-dir=true
   471          - --test-cmd-args=--nodes=5000
   472          - --test-cmd-args=--provider=kubemark
   473          - --test-cmd-args=--report-dir=$(ARTIFACTS)
   474          - --test-cmd-args=--testconfig=testing/load/config.yaml
   475          - --test-cmd-args=--testconfig=testing/huge-service/config.yaml
   476          - --test-cmd-args=--testconfig=testing/access-tokens/config.yaml
   477          - --test-cmd-name=ClusterLoaderV2
   478          - --timeout=1080m
   479          - --use-logexporter
   480          - --logexporter-gcs-path=gs://k8s-infra-scalability-tests-logs/$(JOB_NAME)/$(BUILD_ID)
   481          # TODO(krzyzacy): Figure out bazel built kubemark image
   482          #env:
   483          # - name: KUBEMARK_BAZEL_BUILD
   484          # value: "y"
   485          resources:
   486            limits:
   487              # Using 6 CPU to speed up bazel build phase (4 is enough for the test itself)
   488              cpu: 6
   489              memory: "16Gi"
   490            requests:
   491              cpu: 6
   492              memory: "16Gi"
   493          securityContext:
   494            privileged: true
   495  
   496    kubernetes/perf-tests:
   497    - name: pull-perf-tests-benchmark-kube-dns
   498      cluster: k8s-infra-prow-build
   499      always_run: false
   500      skip_report: false
   501      max_concurrency: 3
   502      branches:
   503      - master
   504      decorate: true
   505      path_alias: k8s.io/perf-tests
   506      decoration_config:
   507        timeout: 140m
   508      extra_refs:
   509      - org: kubernetes
   510        repo: release
   511        base_ref: master
   512        path_alias: k8s.io/release
   513      annotations:
   514        testgrid-dashboards: presubmits-kubernetes-scalability
   515        testgrid-tab-name: pull-perf-tests-benchmark-kube-dns
   516      labels:
   517        preset-service-account: "true"
   518        preset-k8s-ssh: "true"
   519      run_if_changed: ^dns/.*$
   520      spec:
   521        containers:
   522        - image: gcr.io/k8s-staging-test-infra/kubekins-e2e:v20240515-17c6d50e24-master
   523          command:
   524          - runner.sh
   525          - /workspace/scenarios/kubernetes_e2e.py
   526          args:
   527          - --check-leaked-resources
   528          - --cluster=kube-dns-benchmark
   529          - --extract=ci/latest
   530          - --gcp-nodes=3
   531          - --gcp-zone=us-east1-b
   532          - --provider=gce
   533          - --test=false
   534          - --test-cmd=$GOPATH/src/k8s.io/perf-tests/run-e2e.sh
   535          - --test-cmd-args=kube-dns
   536          - --test-cmd-args=$(ARTIFACTS)/out
   537          - --test-cmd-args=$(ARTIFACTS)
   538          - --test-cmd-name=KubeDnsBenchmark
   539          - --timeout=120m
   540          resources:
   541            limits:
   542              cpu: 4
   543              memory: "12Gi"
   544            requests:
   545              cpu: 4
   546              memory: "12Gi"
   547  
   548    - name: pull-perf-tests-clusterloader2
   549      cluster: k8s-infra-prow-build
   550      always_run: false
   551      skip_report: false
   552      max_concurrency: 3
   553      branches:
   554      - master
   555      decorate: true
   556      path_alias: k8s.io/perf-tests
   557      decoration_config:
   558        timeout: 120m
   559      extra_refs:
   560      - org: kubernetes
   561        repo: release
   562        base_ref: master
   563        path_alias: k8s.io/release
   564      labels:
   565        preset-service-account: "true"
   566        preset-k8s-ssh: "true"
   567        preset-e2e-scalability-common: "true"
   568        preset-e2e-scalability-presubmits: "true"
   569      annotations:
   570        fork-per-release: "true"
   571        testgrid-dashboards: presubmits-kubernetes-scalability
   572        testgrid-tab-name: pull-perf-tests-clusterloader2
   573      run_if_changed: ^clusterloader2/.*$
   574      spec:
   575        containers:
   576        - image: gcr.io/k8s-staging-test-infra/kubekins-e2e:v20240515-17c6d50e24-master
   577          command:
   578          - runner.sh
   579          - /workspace/scenarios/kubernetes_e2e.py
   580          args:
   581          - --cluster=
   582          - --env=HEAPSTER_MACHINE_TYPE=e2-standard-8
   583          - --extract=ci/latest
   584          - --gcp-nodes=100
   585          - --gcp-project-type=scalability-project
   586          - --gcp-zone=us-east1-b
   587          - --provider=gce
   588          - --tear-down-previous
   589          - --env=CL2_ENABLE_DNS_PROGRAMMING=true
   590          - --env=CL2_SCHEDULER_THROUGHPUT_THRESHOLD=0
   591          - --env=CL2_ENABLE_API_AVAILABILITY_MEASUREMENT=true
   592          - --env=CL2_API_AVAILABILITY_PERCENTAGE_THRESHOLD=99.5
   593          - --env=KUBEMARK_APISERVER_TEST_ARGS=--max-requests-inflight=80 --max-mutating-requests-inflight=0 --profiling --contention-profiling
   594          - --test=false
   595          - --test-cmd=$GOPATH/src/k8s.io/perf-tests/run-e2e.sh
   596          - --test-cmd-args=cluster-loader2
   597          - --test-cmd-args=--nodes=100
   598          - --test-cmd-args=--prometheus-scrape-node-exporter
   599          - --test-cmd-args=--provider=gce
   600          - --test-cmd-args=--report-dir=$(ARTIFACTS)
   601          - --test-cmd-args=--testconfig=testing/load/config.yaml
   602          - --test-cmd-args=--testconfig=testing/huge-service/config.yaml
   603          - --test-cmd-args=--testconfig=testing/access-tokens/config.yaml
   604          - --test-cmd-args=--testoverrides=./testing/experiments/enable_restart_count_check.yaml
   605          - --test-cmd-args=--testoverrides=./testing/experiments/use_simple_latency_query.yaml
   606          - --test-cmd-args=--testoverrides=./testing/overrides/load_throughput.yaml
   607          - --test-cmd-name=ClusterLoaderV2
   608          - --timeout=100m
   609          - --use-logexporter
   610          - --logexporter-gcs-path=gs://sig-scalability-logs/$(JOB_NAME)/$(BUILD_ID)
   611          resources:
   612            limits:
   613              cpu: 2
   614              memory: "6Gi"
   615            requests:
   616              cpu: 2
   617              memory: "6Gi"
   618  
   619    - name: pull-perf-tests-clusterloader2-kubemark
   620      cluster: k8s-infra-prow-build
   621      always_run: false
   622      skip_report: false
   623      max_concurrency: 3
   624      branches:
   625      - master
   626      decorate: true
   627      path_alias: k8s.io/perf-tests
   628      decoration_config:
   629        timeout: 120m
   630      extra_refs:
   631      - org: kubernetes
   632        repo: release
   633        base_ref: master
   634        path_alias: k8s.io/release
   635      labels:
   636        preset-service-account: "true"
   637        preset-k8s-ssh: "true"
   638        preset-dind-enabled: "true"
   639        preset-e2e-kubemark-common: "true"
   640        preset-e2e-scalability-presubmits: "true"
   641      annotations:
   642        fork-per-release: "true"
   643        testgrid-dashboards: presubmits-kubernetes-scalability
   644        testgrid-tab-name: pull-perf-tests-clusterloader2-kubemark
   645      run_if_changed: ^clusterloader2/.*$
   646      spec:
   647        containers:
   648        - image: gcr.io/k8s-staging-test-infra/kubekins-e2e:v20240515-17c6d50e24-master
   649          command:
   650          - runner.sh
   651          - /workspace/scenarios/kubernetes_e2e.py
   652          args:
   653          - --cluster=
   654          - --extract=ci/latest
   655          - --gcp-master-size=n2-standard-2
   656          - --gcp-node-size=e2-standard-4
   657          - --gcp-nodes=4
   658          - --gcp-project-type=scalability-project
   659          - --gcp-zone=us-east1-b
   660          - --kubemark
   661          - --kubemark-nodes=100
   662          - --kubemark-master-size=n2-standard-8
   663          - --env=KUBEMARK_APISERVER_TEST_ARGS=--max-requests-inflight=80 --max-mutating-requests-inflight=0 --profiling --contention-profiling
   664          - --provider=gce
   665          - --tear-down-previous
   666          - --test=false
   667          - --test_args=--ginkgo.focus=xxxx
   668          - --test-cmd=$GOPATH/src/k8s.io/perf-tests/run-e2e.sh
   669          - --test-cmd-args=cluster-loader2
   670          - --test-cmd-args=--nodes=100
   671          - --test-cmd-args=--prometheus-scrape-node-exporter
   672          - --test-cmd-args=--provider=kubemark
   673          - --env=CL2_ENABLE_DNS_PROGRAMMING=true
   674          - --env=CL2_ENABLE_API_AVAILABILITY_MEASUREMENT=true
   675          - --test-cmd-args=--report-dir=$(ARTIFACTS)
   676          - --test-cmd-args=--testconfig=testing/load/config.yaml
   677          - --test-cmd-args=--testconfig=testing/huge-service/config.yaml
   678          - --test-cmd-args=--testconfig=testing/access-tokens/config.yaml
   679          - --test-cmd-args=--testoverrides=./testing/experiments/enable_restart_count_check.yaml
   680          - --test-cmd-args=--testoverrides=./testing/experiments/use_simple_latency_query.yaml
   681          - --test-cmd-args=--testoverrides=./testing/overrides/kubemark_load_throughput.yaml
   682          - --test-cmd-name=ClusterLoaderV2
   683          - --timeout=100m
   684          - --use-logexporter
   685          - --logexporter-gcs-path=gs://sig-scalability-logs/$(JOB_NAME)/$(BUILD_ID)
   686          resources:
   687            limits:
   688              cpu: 2
   689              memory: "6Gi"
   690            requests:
   691              cpu: 2
   692              memory: "6Gi"
   693          securityContext:
   694            privileged: true
   695  
   696    # Fork of kubernetes/kubernetes: pull-kubernetes-e2e-gce-scale-performance-manual
   697    - name: pull-perf-tests-clusterloader2-e2e-gce-scale-performance-manual
   698      cluster: k8s-infra-prow-build
   699      always_run: false
   700      max_concurrency: 1
   701      branches:
   702      - master
   703      decorate: true
   704      path_alias: k8s.io/perf-tests
   705      decoration_config:
   706        timeout: 450m
   707      extra_refs:
   708      - org: kubernetes
   709        repo: release
   710        base_ref: master
   711        path_alias: k8s.io/release
   712      labels:
   713        preset-service-account: "true"
   714        preset-k8s-ssh: "true"
   715        preset-dind-enabled: "true"
   716        preset-e2e-scalability-common: "true"
   717        preset-e2e-scalability-presubmits: "true"
   718      annotations:
   719        testgrid-dashboards: presubmits-kubernetes-scalability
   720        testgrid-tab-name: pull-perf-tests-clusterloader2-e2e-gce-scale-performance
   721      spec:
   722        containers:
   723        - image: gcr.io/k8s-staging-test-infra/kubekins-e2e:v20240515-17c6d50e24-master
   724          command:
   725          - runner.sh
   726          - /workspace/scenarios/kubernetes_e2e.py
   727          args:
   728          - --cluster=
   729          - --env=HEAPSTER_MACHINE_TYPE=e2-standard-32
   730          # TODO(mborsz): Adjust or remove this change once we understand coredns
   731          # memory usage regression.
   732          - --env=KUBE_DNS_MEMORY_LIMIT=300Mi
   733          - --extract=ci/fast/latest-fast
   734          - --extract-ci-bucket=k8s-release-dev
   735          - --gcp-nodes=5000
   736          - --gcp-project-type=scalability-scale-project
   737          - --gcp-zone=us-east1-b
   738          - --provider=gce
   739          - --metadata-sources=cl2-metadata.json
   740          - --env=CL2_LOAD_TEST_THROUGHPUT=50
   741          - --env=CL2_DELETE_TEST_THROUGHPUT=50
   742          - --env=CL2_RATE_LIMIT_POD_CREATION=false
   743          - --env=KUBE_CONTROLLER_MANAGER_TEST_ARGS=--endpointslice-updates-batch-period=500ms --endpoint-updates-batch-period=500ms
   744          # Overrides CONTROLLER_MANAGER_TEST_ARGS from preset-e2e-scalability-periodics.
   745          - --env=CONTROLLER_MANAGER_TEST_ARGS=--profiling --contention-profiling --kube-api-qps=100 --kube-api-burst=100
   746          # Overrides SCHEDULER_TEST_ARGS from preset-e2e-scalability-periodics.
   747          # TODO(#1311): Clean this up after the experiment - it should allow
   748          #   to hugely decrease pod-startup-latency across the whole test.
   749          #   Given that individual controllers have separate QPS limits, we allow
   750          #   scheduler to keep up with the load from deployment, daemonset and job
   751          #   performing pod creations at once.
   752          - --env=SCHEDULER_TEST_ARGS=--profiling --contention-profiling --kube-api-qps=500 --kube-api-burst=500
   753          # With APF only sum of --max-requests-inflight and --max-mutating-requests-inflight matters, so set --max-mutating-requests-inflight to 0.
   754          - --env=APISERVER_TEST_ARGS=--max-requests-inflight=640 --max-mutating-requests-inflight=0 --profiling --contention-profiling
   755          - --env=CL2_ENABLE_API_AVAILABILITY_MEASUREMENT=true
   756          - --env=CL2_API_AVAILABILITY_PERCENTAGE_THRESHOLD=99.5
   757          - --test=false
   758          - --test-cmd=$GOPATH/src/k8s.io/perf-tests/run-e2e.sh
   759          - --test-cmd-args=cluster-loader2
   760          - --test-cmd-args=--experimental-gcp-snapshot-prometheus-disk=true
   761          - --test-cmd-args=--experimental-prometheus-disk-snapshot-name=$(JOB_NAME)-$(BUILD_ID)
   762          - --test-cmd-args=--experimental-prometheus-snapshot-to-report-dir=true
   763          - --test-cmd-args=--nodes=5000
   764          - --test-cmd-args=--prometheus-scrape-node-exporter
   765          - --test-cmd-args=--provider=gce
   766          - --test-cmd-args=--report-dir=$(ARTIFACTS)
   767          - --test-cmd-args=--testconfig=testing/load/config.yaml
   768          - --test-cmd-args=--testconfig=testing/huge-service/config.yaml
   769          - --test-cmd-args=--testconfig=testing/access-tokens/config.yaml
   770          - --test-cmd-args=--testoverrides=./testing/experiments/enable_restart_count_check.yaml
   771          - --test-cmd-args=--testoverrides=./testing/experiments/ignore_known_gce_container_restarts.yaml
   772          - --test-cmd-args=--testoverrides=./testing/overrides/5000_nodes.yaml
   773          - --test-cmd-name=ClusterLoaderV2
   774          - --timeout=420m
   775          resources:
   776            limits:
   777              # Using 6 CPU to speed up bazel build phase (4 is enough for the test itself)
   778              cpu: 6
   779              memory: "16Gi"
   780            requests:
   781              cpu: 6
   782              memory: "16Gi"
   783          securityContext:
   784            privileged: true
   785  
   786    - name: pull-perf-tests-util-images
   787      cluster: k8s-infra-prow-build
   788      always_run: false
   789      skip_report: false
   790      max_concurrency: 10
   791      run_if_changed: ^util-images/.*$
   792      branches:
   793      - master
   794      labels:
   795        preset-service-account: "true"
   796        preset-dind-enabled: "true"
   797      decorate: true
   798      path_alias: k8s.io/perf-tests
   799      decoration_config:
   800        timeout: 60m
   801      annotations:
   802        testgrid-dashboards: presubmits-kubernetes-scalability
   803        testgrid-tab-name: pull-perf-tests-util-images
   804      spec:
   805        containers:
   806        - image: gcr.io/k8s-staging-test-infra/kubekins-e2e:v20240515-17c6d50e24-master
   807          command:
   808          - runner.sh
   809          args:
   810          - /home/prow/go/src/k8s.io/perf-tests/util-images/presubmit.sh
   811          # docker-in-docker needs privileged mode
   812          securityContext:
   813            privileged: true
   814          resources:
   815            requests:
   816              cpu: 1
   817              memory: "2Gi"
   818            limits:
   819              cpu: 1
   820              memory: "2Gi"
   821  
   822    - name: pull-perf-tests-verify-all-python
   823      cluster: k8s-infra-prow-build
   824      decorate: true
   825      always_run: true
   826      skip_branches:
   827        - release-1.1[2-9] # Presubmit has been implemented for 1.20+ releases
   828      path_alias: "k8s.io/perf-tests"
   829      annotations:
   830        testgrid-dashboards: presubmits-kubernetes-scalability
   831        testgrid-tab-name: pull-perf-tests-verify-python-all
   832      spec:
   833        containers:
   834          - image: python:3
   835            command:
   836              - make
   837            args:
   838              - verify-all-python
   839            resources:
   840              requests:
   841                cpu: 1
   842                memory: "2Gi"
   843              limits:
   844                cpu: 1
   845                memory: "2Gi"
   846  
   847    - name: pull-perf-tests-verify-test
   848      cluster: k8s-infra-prow-build
   849      decorate: true
   850      always_run: true
   851      skip_branches:
   852      - release-1.19 # We use verify-all for that branch
   853      path_alias: "k8s.io/perf-tests"
   854      annotations:
   855        testgrid-dashboards: presubmits-kubernetes-scalability
   856        testgrid-tab-name: pull-perf-tests-verify-test
   857      spec:
   858        containers:
   859        - image: public.ecr.aws/docker/library/golang:1.20
   860          command:
   861          - verify/test.sh
   862          resources:
   863            requests:
   864              cpu: 1
   865              memory: "2Gi"
   866            limits:
   867              cpu: 1
   868              memory: "2Gi"
   869  
   870    - name: pull-perf-tests-verify-dashboard
   871      cluster: k8s-infra-prow-build
   872      decorate: true
   873      run_if_changed: ^clusterloader2/pkg/prometheus/manifests/dashboards/.*\.json$
   874      skip_branches:
   875      - release-1.1[2-8] # Presubmit has been implemented for 1.19+ releases
   876      path_alias: "k8s.io/perf-tests"
   877      annotations:
   878        testgrid-dashboards: presubmits-kubernetes-scalability
   879        testgrid-tab-name: pull-perf-tests-verify-dashboard
   880      spec:
   881        containers:
   882        - image: python:3.7
   883          command:
   884          - make
   885          args:
   886          - verify-dashboard
   887          resources:
   888            requests:
   889              cpu: 1
   890              memory: "2Gi"
   891            limits:
   892              cpu: 1
   893              memory: "2Gi"
   894  
   895    - name: pull-perf-tests-verify-lint
   896      cluster: k8s-infra-prow-build
   897      decorate: true
   898      always_run: true
   899      skip_branches:
   900      - release-1.1[2-8] # Presubmit has been implemented for 1.19+ releases
   901      path_alias: "k8s.io/perf-tests"
   902      annotations:
   903        testgrid-dashboards: presubmits-kubernetes-scalability
   904        testgrid-tab-name: pull-perf-tests-verify-lint
   905      spec:
   906        containers:
   907        - image: golangci/golangci-lint:v1.51.2
   908          command:
   909          - make
   910          args:
   911          - verify-lint
   912          resources:
   913            requests:
   914              cpu: 2
   915              memory: "2Gi"
   916            limits:
   917              cpu: 2
   918              memory: "2Gi"