k8s.io/test-infra@v0.0.0-20240520184403-27c6b4c223d8/config/prow/config.yaml (about)

     1  plank:
     2    job_url_template: 'https://prow.k8s.io/view/gs/kubernetes-jenkins/{{if eq .Spec.Type "presubmit"}}pr-logs/pull{{else if eq .Spec.Type "batch"}}pr-logs/pull{{else}}logs{{end}}{{if .Spec.Refs}}{{if ne .Spec.Refs.Org ""}}{{if ne .Spec.Refs.Org "kubernetes"}}/{{if and (eq .Spec.Refs.Org "kubernetes-sigs") (ne .Spec.Refs.Repo "poseidon")}}sigs.k8s.io{{else}}{{.Spec.Refs.Org}}{{end}}_{{.Spec.Refs.Repo}}{{else if ne .Spec.Refs.Repo "kubernetes"}}/{{.Spec.Refs.Repo}}{{end}}{{end}}{{end}}{{if eq .Spec.Type "presubmit"}}/{{with index .Spec.Refs.Pulls 0}}{{.Number}}{{end}}{{else if eq .Spec.Type "batch"}}/batch{{end}}/{{.Spec.Job}}/{{.Status.BuildID}}/'
     3    report_templates:
     4      '*': '[Full PR test history](https://prow.k8s.io/pr-history?org={{.Spec.Refs.Org}}&repo={{.Spec.Refs.Repo}}&pr={{with index .Spec.Refs.Pulls 0}}{{.Number}}{{end}}). [Your PR dashboard](https://prow.k8s.io/pr?query=is%3Apr%20state%3Aopen%20author%3A{{with index .Spec.Refs.Pulls 0}}{{.Author}}{{end}}). Please help us cut down on flakes by [linking to](https://git.k8s.io/community/contributors/devel/sig-testing/flaky-tests.md#filing-issues-for-flaky-tests) an [open issue](https://github.com/{{.Spec.Refs.Org}}/{{.Spec.Refs.Repo}}/issues?q=is:issue+is:open) when you hit one in your PR.'
     5    job_url_prefix_config:
     6      '*': https://prow.k8s.io/view/
     7    pod_pending_timeout: 15m
     8    pod_unscheduled_timeout: 5m
     9    job_queue_capacities:
    10      'k8sio-image-promo': 1
    11    default_decoration_config_entries:
    12    - config:
    13        timeout: 2h
    14        grace_period: 15m
    15        utility_images:
    16          clonerefs: "gcr.io/k8s-prow/clonerefs:v20240517-ea10bd814"
    17          initupload: "gcr.io/k8s-prow/initupload:v20240517-ea10bd814"
    18          entrypoint: "gcr.io/k8s-prow/entrypoint:v20240517-ea10bd814"
    19          sidecar: "gcr.io/k8s-prow/sidecar:v20240517-ea10bd814"
    20        gcs_configuration:
    21          bucket: "kubernetes-jenkins"
    22          path_strategy: "legacy"
    23          default_org: "kubernetes"
    24          default_repo: "kubernetes"
    25        gcs_credentials_secret: "service-account"
    26        resources:
    27          clonerefs:
    28            requests:
    29              cpu: 100m
    30          initupload:
    31            requests:
    32              cpu: 100m
    33          place_entrypoint:
    34            requests:
    35              cpu: 100m
    36          sidecar:
    37            requests:
    38              cpu: 100m
    39        blobless_fetch: true
    40    - cluster: gke_rules-k8s_us-central1-f_testing
    41      config:
    42        gcs_credentials_secret: ""
    43        default_service_account_name: "prowjob-default-sa"
    44    - cluster: test-infra-trusted
    45      config:
    46        gcs_credentials_secret: ""
    47        default_service_account_name: "prowjob-default-sa"
    48  
    49  sinker:
    50    resync_period: 1m
    51    max_prowjob_age: 48h
    52    max_pod_age: 48h
    53    terminated_pod_ttl: 30m
    54  
    55  deck:
    56    spyglass:
    57      announcement: "Help migrate Prow jobs to community clusters! See <a href='https://github.com/kubernetes/test-infra/issues/29722'>k8s/test-infra#29722</a> for details."
    58      size_limit: 200000000 # 200MB
    59      gcs_browser_prefix: https://gcsweb.k8s.io/gcs/
    60      testgrid_config: gs://k8s-testgrid/config
    61      testgrid_root: https://testgrid.k8s.io/
    62      lenses:
    63      - lens:
    64          name: metadata
    65        required_files:
    66        - ^(?:started|finished)\.json$
    67        optional_files:
    68        - ^(?:podinfo|prowjob)\.json$
    69      - lens:
    70          name: buildlog
    71          config:
    72            highlighter:
    73              endpoint: http://halogen.default.svc.cluster.local
    74              pin: true
    75              auto: false
    76            highlight_regexes:
    77            - Automatic merge failed
    78            - cannot convert.+to type
    79            - "cannot use.+as.+(type|value)"
    80            - Cluster failed to initialize
    81            - cluster unreachable
    82            - "compilepkg: error"
    83            - configuration error
    84            - contact Google support
    85            - could not apply prowjob annotations
    86            - could not find the referenced.+TestGroup
    87            - could not write config
    88            - "couldn't load prow config:"
    89            - curl.+Failed to connect
    90            - DATA RACE
    91            - dirty working directory
    92            - ^E\d{4} \d\d:\d\d:\d\d\.\d+
    93            - "(Error|ERROR|error)s?:"
    94            - Error.+executing benchmarks
    95            - Expected.+got
    96            - FAILED. See logs
    97            - failed to acquire k8s binaries
    98            - failed to solve
    99            - (FAIL|Failure \[)\b
   100            - fatal error
   101            - flag provided but not defined
   102            - Full Stack Trace
   103            - got.+expected
   104            - hash mismatch
   105            - Hit an unsupported type
   106            - imported but not used
   107            - Incompatible changes
   108            - incorrect boilerplate
   109            - indent-error-flow
   110            - INSTALLATION FAILED
   111            - is a misspelling
   112            - LimitExceeded
   113            - "make:.+Error"
   114            - Master not detected
   115            - Merge conflict
   116            - not enough arguments in call
   117            - panic\b
   118            - Previous (write|read)
   119            - Process did not finish before.+timeout
   120            - race detected
   121            - security token.+invalid
   122            - "signal: killed"
   123            - Something went wrong
   124            - too few arguments
   125            - too many errors
   126            - "[Tt]imed out"
   127            - type.+has no field
   128            - unable to start the controlplane
   129            - "undefined:"
   130            - Unfortunately, an error
   131            - unused.+deadcode
   132            - "[Uu]nexpected error"
   133            - verify.+failed
   134            - want.+got
   135            - Your cluster may not be fully functional
   136            - ^\s+\^$
   137            - \[(0;)?31m
   138            - "^diff " # [+-]{3}\\s" has too much noise from go test output and set -x
   139            - • Failure
   140            # This highlights the start of bazel tests/runs to skip go importing noise.
   141            - "^INFO: Analyzed \\d+ targets"
   142        required_files:
   143          - ^.*build-log\.txt$
   144      - lens:
   145          name: junit
   146        required_files:
   147          - ^artifacts(/.*/|/)junit.*\.xml$ # https://regex101.com/r/vCSegS/1
   148      - lens:
   149          name: coverage
   150        required_files:
   151          - ^artifacts/filtered\.cov$
   152        optional_files:
   153          - ^artifacts/filtered\.html$
   154      - lens:
   155          name: podinfo
   156          config:
   157            runner_configs:
   158                "default":
   159                  pod_link_template: "https://console.cloud.google.com/kubernetes/pod/us-central1-f/prow/test-pods/{{ .Name }}/details?project=k8s-prow-builds"
   160                "test-infra-trusted":
   161                  pod_link_template: "https://console.cloud.google.com/kubernetes/pod/us-central1-f/prow/test-pods/{{ .Name }}/details?project=k8s-prow"
   162        required_files:
   163          - ^podinfo\.json$
   164        optional_files:
   165          - ^prowjob\.json$
   166      - lens:
   167          name: links
   168        required_files:
   169          - artifacts/.*\.link\.txt
   170    tide_update_period: 1s
   171    hidden_repos:
   172    - kubernetes-security
   173    google_analytics: UA-82843984-5
   174    rerun_auth_configs:
   175      '*':
   176        github_team_ids:
   177        - 2009231 # test-infra-admins
   178        - 2460384 # milestone-maintainers
   179    # additional_allowed_buckets is used only when skip_storage_path_validation is
   180    # false
   181    skip_storage_path_validation: false
   182    additional_allowed_buckets:
   183      - k8s-ovn
   184      - containerd-integration
   185      - ppc64le-kubernetes
   186      - k8s-conform-s390x-k8s
   187      - arm64-k8s-test
   188  
   189  prowjob_namespace: default
   190  pod_namespace: test-pods
   191  log_level: debug
   192  
   193  managed_webhooks:
   194    # This has to be true if any of the managed repo/org is using the legacy global token that is manually created.
   195    respect_legacy_global_token: true
   196    # Config for orgs and repos that have been onboarded to this Prow instance.
   197    org_repo_config:
   198      kubernetes:
   199        token_created_after: 2020-08-12T00:00:00Z
   200      kubernetes-client:
   201        token_created_after: 2020-07-24T00:00:00Z
   202      kubernetes-csi:
   203        token_created_after: 2020-08-12T00:00:00Z
   204      kubernetes-security:
   205        token_created_after: 2021-05-19T00:00:00Z
   206      kubernetes-sigs:
   207        token_created_after: 2020-08-12T00:00:00Z
   208      containerd/containerd:
   209        token_created_after: 2020-09-17T00:00:00Z
   210      kubernetes-sigs/apisnoop:
   211        token_created_after: 2020-09-22T00:00:00Z
   212      etcd-io:
   213        token_created_after: 2023-11-13T00:00:00Z
   214  
   215  slack_reporter_configs:
   216    '*':
   217      job_types_to_report:
   218        - postsubmit
   219        - periodic
   220        - batch
   221      job_states_to_report:
   222        - failure
   223        - error
   224      channel: test-failures
   225      # The template shown below is the default
   226      report_template: 'Job {{.Spec.Job}} of type {{.Spec.Type}} ended with state {{.Status.State}}. <{{.Status.URL}}|View logs>'
   227  
   228  branch-protection:
   229    orgs:
   230      kubernetes:
   231        protect: true
   232        required_status_checks:
   233          contexts:
   234          - EasyCLA
   235        exclude:
   236          - "^revert-" # don't protect revert branches
   237          - "^dependabot/" # don't protect branches created by dependabot
   238          - "^greenkeeper/" # don't protect branches created by greenkeeper
   239        repos:
   240          api:
   241            restrictions:
   242              users: []
   243              teams:
   244              - stage-bots
   245          apiextensions-apiserver:
   246            restrictions:
   247              users: []
   248              teams:
   249              - stage-bots
   250          apimachinery:
   251            restrictions:
   252              users: []
   253              teams:
   254              - stage-bots
   255          apiserver:
   256            restrictions:
   257              users: []
   258              teams:
   259              - stage-bots
   260          autoscaler:
   261            required_status_checks:
   262              contexts:
   263              - test-and-verify
   264              - Helm chart
   265              - Helm Docs
   266            branches:
   267              gh-pages:
   268                protect: false
   269          client-go:
   270            restrictions:
   271              users: []
   272              teams:
   273              - stage-bots
   274          cli-runtime:
   275            restrictions:
   276              users: []
   277              teams:
   278              - stage-bots
   279          cloud-provider:
   280            restrictions:
   281              users: []
   282              teams:
   283              - stage-bots
   284          cloud-provider-aws:
   285            branches:
   286              gh-pages:
   287                protect: false
   288          cloud-provider-openstack:
   289            branches:
   290              gh-pages:
   291                protect: false
   292          cluster-bootstrap:
   293            restrictions:
   294              users: []
   295              teams:
   296              - stage-bots
   297          code-generator:
   298            restrictions:
   299              users: []
   300              teams:
   301              - stage-bots
   302          component-base:
   303            restrictions:
   304              users: []
   305              teams:
   306              - stage-bots
   307          component-helpers:
   308            restrictions:
   309              users: []
   310              teams:
   311              - stage-bots
   312          controller-manager:
   313            restrictions:
   314              users: []
   315              teams:
   316              - stage-bots
   317          cri-api:
   318            restrictions:
   319              users: []
   320              teams:
   321              - stage-bots
   322          cri-client:
   323            restrictions:
   324              users: []
   325              teams:
   326              - stage-bots
   327          csi-translation-lib:
   328            restrictions:
   329              users: []
   330              teams:
   331              - stage-bots
   332          dashboard:
   333            required_pull_request_reviews:
   334              required_approving_review_count: 1
   335          dns:
   336            required_status_checks:
   337              contexts:
   338              - continuous-integration/travis-ci
   339            required_pull_request_reviews:
   340              required_approving_review_count: 1
   341          dynamic-resource-allocation:
   342            restrictions:
   343              users: []
   344              teams:
   345              - stage-bots
   346          endpointslice:
   347            restrictions:
   348              users: []
   349              teams:
   350              - stage-bots
   351          enhancements:
   352            restrictions: # only allow admins
   353              users: []
   354              teams: []
   355          git-sync:
   356            enforce_admins: true
   357            restrictions: # only allow admins
   358              users: []
   359              teams: []
   360          ingress-nginx:
   361            branches:
   362              gh-pages:
   363                protect: false
   364          kms:
   365            restrictions:
   366              users: []
   367              teams:
   368              - stage-bots
   369          kompose:
   370            required_pull_request_reviews:
   371              required_approving_review_count: 1
   372          kops:
   373            required_status_checks:
   374              contexts:
   375              - build-linux-amd64
   376              - build-macos-amd64
   377              - build-windows-amd64
   378              - verify
   379          kubelet:
   380            restrictions:
   381              users: []
   382              teams:
   383              - stage-bots
   384          kubernetes:
   385            restrictions: # only allow admins
   386              users: []
   387              teams: []
   388          kube-aggregator:
   389            restrictions:
   390              users: []
   391              teams:
   392              - stage-bots
   393          kube-controller-manager:
   394            restrictions:
   395              users: []
   396              teams:
   397              - stage-bots
   398          kube-openapi:
   399            required_status_checks:
   400              contexts:
   401              - required
   402          kube-proxy:
   403            restrictions:
   404              users: []
   405              teams:
   406              - stage-bots
   407          kube-state-metrics:
   408            required_status_checks:
   409              contexts:
   410              - ci-benchmark-tests
   411              - ci-build-kube-state-metrics
   412              - ci-e2e-tests
   413              - ci-go-lint
   414              - ci-unit-tests
   415              - ci-validate-docs
   416              - ci-validate-go-modules
   417              - ci-validate-manifests
   418            branches:
   419              gh-pages:
   420                protect: false
   421          kube-scheduler:
   422            restrictions:
   423              users: []
   424              teams:
   425              - stage-bots
   426          kubectl:
   427            restrictions:
   428              users: []
   429              teams:
   430              - stage-bots
   431          legacy-cloud-providers:
   432            restrictions:
   433              users: []
   434              teams:
   435              - stage-bots
   436          metrics:
   437            restrictions:
   438              users: []
   439              teams:
   440              - stage-bots
   441          mount-utils:
   442            restrictions:
   443              users: []
   444              teams:
   445              - stage-bots
   446          node-api:
   447            restrictions:
   448              users: []
   449              teams:
   450              - stage-bots
   451          org:
   452            restrictions: # only allow admins
   453              users: []
   454              teams: []
   455          pod-security-admission:
   456            restrictions:
   457              users: []
   458              teams:
   459              - stage-bots
   460          sample-apiserver:
   461            restrictions:
   462              users: []
   463              teams:
   464              - stage-bots
   465          sample-cli-plugin:
   466            restrictions:
   467              users: []
   468              teams:
   469              - stage-bots
   470          sample-controller:
   471            restrictions:
   472              users: []
   473              teams:
   474              - stage-bots
   475          website:
   476            protect: true
   477      kubernetes-client:
   478        protect: true
   479        required_status_checks:
   480          contexts:
   481          - EasyCLA
   482        exclude:
   483          - "^revert-" # don't protect revert branches
   484          - "^dependabot/" # don't protect branches created by dependabot
   485          - "^greenkeeper/" # don't protect branches created by greenkeeper
   486        repos:
   487          python:
   488            required_status_checks:
   489              contexts:
   490              - continuous-integration/travis-ci
   491          python-base:
   492            required_status_checks:
   493              contexts:
   494              - continuous-integration/travis-ci
   495      kubernetes-csi:
   496        protect: true
   497        required_status_checks:
   498          contexts:
   499          - EasyCLA
   500        exclude:
   501          - "^revert-" # don't protect revert branches
   502          - "^dependabot/" # don't protect branches created by dependabot
   503          - "^greenkeeper/" # don't protect branches created by greenkeeper
   504      kubernetes-sigs:
   505        protect: true
   506        required_status_checks:
   507          contexts:
   508          - EasyCLA
   509        exclude:
   510          - "^revert-" # don't protect revert branches
   511          - "^dependabot/" # don't protect branches created by dependabot
   512          - "^greenkeeper/" # don't protect branches created by greenkeeper
   513        repos:
   514          aws-ebs-csi-driver:
   515            branches:
   516              gh-pages:
   517                protect: false
   518          aws-efs-csi-driver:
   519            branches:
   520              gh-pages:
   521                protect: false
   522          aws-fsx-csi-driver:
   523            branches:
   524              gh-pages:
   525                protect: false
   526          cluster-api:
   527            required_status_checks:
   528              contexts:
   529              - lint
   530          cluster-api-provider-gcp:
   531            required_status_checks:
   532              contexts:
   533              - lint
   534          cluster-api-provider-kubevirt:
   535            required_status_checks:
   536              contexts:
   537              - "unit_test (ubuntu-latest)"
   538              - integration
   539              - go-linter
   540              - check-gen
   541          cluster-api-provider-vsphere:
   542            required_status_checks:
   543              contexts:
   544              - lint
   545          cluster-proportional-autoscaler:
   546            branches:
   547              gh-pages:
   548                protect: false
   549          cloud-provider-azure:
   550            exclude:
   551              - "^doc/" # don't protect branches created by release note github action
   552            branches:
   553              master:
   554                protect: true
   555              release-1.23:
   556                protect: true
   557              release-1.24:
   558                protect: true
   559              release-1.25:
   560                protect: true
   561              release-1.26:
   562                protect: true
   563              kubetest2-aks:
   564                protect: true
   565          descheduler:
   566            branches:
   567              gh-pages:
   568                protect: false
   569          external-dns:
   570            branches:
   571              gh-pages:
   572                protect: false
   573          hydrophone:
   574            exclude:
   575              - "^dependencies/" # don't protect branches created by github action that updates dependencies
   576          kernel-module-management:
   577            required_status_checks:
   578              contexts:
   579                - e2e
   580                - e2e-hub
   581          kubectl-validate:
   582            required_status_checks:
   583              contexts:
   584              - required
   585          kubernetes-scheduler-simulator:
   586            branches:
   587              gh-pages:
   588                protect: false
   589          kubespray:
   590            required_status_checks:
   591              contexts:
   592              - Kubespray CI Pipeline
   593          kustomize:
   594            required_status_checks:
   595              contexts:
   596                - Lint
   597                - Test Linux
   598                - Test MacOS
   599                - Test Windows
   600          metrics-server:
   601            branches:
   602              gh-pages:
   603                protect: false
   604          nfs-ganesha-server-and-external-provisioner:
   605            branches:
   606              gh-pages:
   607                protect: false
   608          nfs-subdir-external-provisioner:
   609            branches:
   610              gh-pages:
   611                protect: false
   612          node-feature-discovery:
   613            branches:
   614              gh-pages:
   615                protect: false
   616          node-feature-discovery-operator:
   617            branches:
   618              gh-pages:
   619                protect: false
   620          provider-aws-test-infra:
   621            exclude:
   622              - "^dependencies/" # don't protect branches created by github action that updates dependencies
   623          secrets-store-csi-driver:
   624            branches:
   625              gh-pages:
   626                protect: false
   627          security-profiles-operator:
   628            enforce_admins: true
   629            required_linear_history: true
   630            restrictions:
   631              users:
   632              - k8s-ci-robot
   633          sig-storage-local-static-provisioner:
   634            branches:
   635              gh-pages:
   636                protect: false
   637  
   638  tide:
   639    sync_period: 2m
   640    queries:
   641    - orgs:
   642      - kubernetes
   643      - kubernetes-client
   644      - kubernetes-csi
   645      - kubernetes-sigs
   646      excludedRepos:
   647      - kubernetes/kubernetes # Handled with a separate Tide query below.
   648      - kubernetes-sigs/lwkd # Only 2 active contributors, they've requested that Tide be disabled.
   649      # The following are staging repos which do not normally support merging PRs.
   650      # https://github.com/kubernetes/kubernetes/blob/master/staging/README.md
   651      # Note that k/client-go is an exception to this rule so it is not an excludedRepo.
   652      - kubernetes/api
   653      - kubernetes/apiextensions-apiserver
   654      - kubernetes/apimachinery
   655      - kubernetes/apiserver
   656      - kubernetes/cli-runtime
   657      - kubernetes/cloud-provider
   658      - kubernetes/cluster-bootstrap
   659      - kubernetes/code-generator
   660      - kubernetes/component-base
   661      - kubernetes/component-helpers
   662      - kubernetes/controller-manager
   663      - kubernetes/cri-api
   664      - kubernetes/csi-translation-lib
   665      - kubernetes/kube-aggregator
   666      - kubernetes/kube-controller-manager
   667      - kubernetes/kube-proxy
   668      - kubernetes/kube-scheduler
   669      - kubernetes/kubectl
   670      - kubernetes/kubelet
   671      - kubernetes/legacy-cloud-providers
   672      - kubernetes/metrics
   673      - kubernetes/mount-utils
   674      - kubernetes/node-api
   675      - kubernetes/pod-security-admission
   676      - kubernetes/sample-apiserver
   677      - kubernetes/sample-cli-plugin
   678      - kubernetes/sample-controller
   679      - kubernetes-sigs/cloud-provider-azure
   680      - kubernetes-sigs/cluster-api
   681      labels:
   682      - lgtm
   683      - approved
   684      - "cncf-cla: yes"
   685      missingLabels:
   686      - do-not-merge
   687      - do-not-merge/blocked-paths
   688      - do-not-merge/contains-merge-commits
   689      - do-not-merge/hold
   690      - do-not-merge/invalid-commit-message
   691      - do-not-merge/invalid-owners-file
   692      - do-not-merge/release-note-label-needed
   693      - do-not-merge/work-in-progress
   694    - repos:
   695      - kubernetes/kubernetes
   696      labels:
   697      - lgtm
   698      - approved
   699      - "cncf-cla: yes"
   700      missingLabels:
   701      - do-not-merge
   702      - do-not-merge/blocked-paths
   703      - do-not-merge/cherry-pick-not-approved
   704      - do-not-merge/contains-merge-commits
   705      - do-not-merge/hold
   706      - do-not-merge/invalid-commit-message
   707      - do-not-merge/invalid-owners-file
   708      - do-not-merge/needs-kind
   709      - do-not-merge/needs-sig
   710      - do-not-merge/release-note-label-needed
   711      - do-not-merge/work-in-progress
   712    - author: k8s-ci-robot
   713      labels: # k8s-ci-robot should only create autobump PR with this label
   714      - skip-review
   715      - "cncf-cla: yes"
   716      missingLabels:
   717      - do-not-merge
   718      - do-not-merge/blocked-paths
   719      - do-not-merge/contains-merge-commits
   720      - do-not-merge/hold
   721      - do-not-merge/invalid-commit-message
   722      - do-not-merge/invalid-owners-file
   723      - do-not-merge/release-note-label-needed
   724      - do-not-merge/work-in-progress
   725      repos:
   726      - kubernetes/test-infra
   727    - author: k8s-infra-ci-robot
   728      labels: # k8s-infra-ci-robot should only create autobump PR with this label
   729      - skip-review
   730      - "cncf-cla: yes"
   731      missingLabels:
   732      - do-not-merge
   733      - do-not-merge/blocked-paths
   734      - do-not-merge/contains-merge-commits
   735      - do-not-merge/hold
   736      - do-not-merge/invalid-commit-message
   737      - do-not-merge/invalid-owners-file
   738      - do-not-merge/release-note-label-needed
   739      - do-not-merge/work-in-progress
   740      repos:
   741      - kubernetes/k8s.io
   742      - kubernetes/test-infra
   743    - repos:
   744      - kubernetes-sigs/cloud-provider-azure
   745      labels:
   746      - lgtm
   747      - approved
   748      - "cncf-cla: yes"
   749      missingLabels:
   750      - do-not-merge
   751      - do-not-merge/blocked-paths
   752      - do-not-merge/cherry-pick-not-approved
   753      - do-not-merge/contains-merge-commits
   754      - do-not-merge/hold
   755      - do-not-merge/invalid-commit-message
   756      - do-not-merge/invalid-owners-file
   757      - do-not-merge/needs-kind
   758      - do-not-merge/needs-sig
   759      - do-not-merge/release-note-label-needed
   760      - do-not-merge/work-in-progress
   761      - needs-kind
   762    - repos:
   763      - kubernetes-sigs/cluster-api
   764      labels:
   765        - lgtm
   766        - approved
   767        - "cncf-cla: yes"
   768      missingLabels:
   769        - do-not-merge
   770        - do-not-merge/blocked-paths
   771        - do-not-merge/contains-merge-commits
   772        - do-not-merge/hold
   773        - do-not-merge/invalid-commit-message
   774        - do-not-merge/invalid-owners-file
   775        - do-not-merge/needs-area
   776        - do-not-merge/release-note-label-needed
   777        - do-not-merge/work-in-progress
   778    merge_method:
   779      kubernetes-client/csharp: squash
   780      kubernetes-client/gen: squash
   781      kubernetes-sigs/cluster-api-provider-digitalocean: squash
   782      kubernetes-sigs/cluster-api-provider-ibmcloud: squash
   783      kubernetes-sigs/ibm-vpc-block-csi-driver: squash
   784      kubernetes-sigs/karpenter: squash
   785      kubernetes-sigs/kernel-module-management: squash
   786      kubernetes-sigs/krew-index: squash
   787      kubernetes-sigs/krew: squash
   788      kubernetes-sigs/kubespray: squash
   789      kubernetes-sigs/kueue: squash
   790      kubernetes-sigs/kui: rebase
   791      kubernetes-sigs/security-profiles-operator: rebase
   792      kubernetes-sigs/service-catalog: squash
   793      kubernetes-sigs/gateway-api: squash
   794      kubernetes-sigs/go-open-service-broker-client: squash
   795      kubernetes-sigs/minibroker: squash
   796      kubernetes-sigs/vsphere-csi-driver: squash
   797      kubernetes/cloud-provider-openstack: squash
   798      kubernetes/dashboard: squash
   799      kubernetes/ingress-nginx: squash
   800      kubernetes-sigs/ingress2gateway: squash
   801    pr_status_base_urls:
   802      '*': https://prow.k8s.io/pr
   803    blocker_label: tide/merge-blocker
   804    squash_label: tide/merge-method-squash
   805    rebase_label: tide/merge-method-rebase
   806    merge_label: tide/merge-method-merge
   807    context_options:
   808      orgs:
   809        kubernetes:
   810          optional-contexts:
   811          # NOTE(MadhavJivrajani): This is temporary and left in for an additional release cycle after full EasyCLA rollout
   812          # to ensure things get merged in.
   813          - "cla/linuxfoundation"
   814          repos:
   815            dashboard:
   816              from-branch-protection: true
   817        kubernetes-client:
   818          optional-contexts:
   819          # NOTE(MadhavJivrajani): This is temporary and left in for an additional release cycle after full EasyCLA rollout
   820          # to ensure things get merged in.
   821          - "cla/linuxfoundation"
   822        kubernetes-csi:
   823          optional-contexts:
   824          # NOTE(MadhavJivrajani): This is temporary and left in for an additional release cycle after full EasyCLA rollout
   825          # to ensure things get merged in.
   826          - "cla/linuxfoundation"
   827        kubernetes-sigs:
   828          optional-contexts:
   829          # NOTE(MadhavJivrajani): This is temporary and left in for an additional release cycle after full EasyCLA rollout
   830          # to ensure things get merged in.
   831          - "cla/linuxfoundation"
   832          repos:
   833            cluster-api:
   834              from-branch-protection: true
   835            cluster-api-provider-kubevirt:
   836              from-branch-protection: true
   837            cluster-api-provider-vsphere:
   838              from-branch-protection: true
   839    batch_size_limit:
   840      "kubernetes/kubernetes": 15
   841    priority:
   842    - labels: [ "kind/flake", "priority/critical-urgent" ]
   843    - labels: [ "kind/failing-test", "priority/critical-urgent" ]
   844    - labels: [ "kind/bug", "priority/critical-urgent" ]
   845  
   846  push_gateway:
   847    endpoint: pushgateway
   848    serve_metrics: true
   849  
   850  github_reporter:
   851    job_types_to_report:
   852    - presubmit
   853    - postsubmit
   854  
   855  presets:
   856  # credential presets
   857  - labels:
   858      preset-service-account: "true"
   859    env:
   860    - name: GOOGLE_APPLICATION_CREDENTIALS
   861      value: /etc/service-account/service-account.json
   862    # storage e2e tests borrow this as a preconfigured key instead of creating and
   863    # injecting a new key. this allows us to avoid mass key download warnings
   864    - name: E2E_GOOGLE_APPLICATION_CREDENTIALS
   865      value: /etc/service-account/service-account.json
   866    - name: GOOGLE_APPLICATION_CREDENTIALS_DEPRECATED
   867      value: "Migrate to workload identity, contact sig-testing"
   868    volumes:
   869    - name: service
   870      secret:
   871        secretName: service-account
   872    volumeMounts:
   873    - name: service
   874      mountPath: /etc/service-account
   875      readOnly: true
   876  - labels:
   877      preset-k8s-ssh: "true"
   878    env:
   879    - name: USER
   880      value: prow
   881    - name: JENKINS_GCE_SSH_PRIVATE_KEY_FILE
   882      value: /etc/ssh-key-secret/ssh-private
   883    - name: JENKINS_GCE_SSH_PUBLIC_KEY_FILE
   884      value: /etc/ssh-key-secret/ssh-public
   885    - name: GCE_SSH_PRIVATE_KEY_FILE
   886      value: /etc/ssh-key-secret/ssh-private
   887    - name: GCE_SSH_PUBLIC_KEY_FILE
   888      value: /etc/ssh-key-secret/ssh-public
   889    volumes:
   890    - name: ssh
   891      secret:
   892        defaultMode: 0400
   893        secretName: ssh-key-secret
   894    volumeMounts:
   895    - name: ssh
   896      mountPath: /etc/ssh-key-secret
   897      readOnly: true
   898  - labels:
   899      preset-aws-ssh: "true"
   900    env:
   901    - name: USER
   902      value: prow
   903    - name: AWS_SSH_PRIVATE_KEY_FILE
   904      value: /etc/aws-ssh/aws-ssh-private
   905    - name: AWS_SSH_PUBLIC_KEY_FILE
   906      value: /etc/aws-ssh/aws-ssh-public
   907    volumes:
   908    - name: aws-ssh
   909      secret:
   910        defaultMode: 0400
   911        secretName: aws-ssh-key-secret
   912    volumeMounts:
   913    - name: aws-ssh
   914      mountPath: /etc/aws-ssh
   915      readOnly: true
   916  - labels:
   917      preset-windows-private-registry-cred: "true"
   918    env:
   919    - name: DOCKER_CONFIG_FILE
   920      value: /etc/docker-cred/config.json
   921    volumes:
   922    - name: windows-private-registry-cred
   923      secret:
   924        secretName: windows-private-registry-docker-config
   925    volumeMounts:
   926    - name: windows-private-registry-cred
   927      mountPath: /etc/docker-cred/
   928      readOnly: true
   929  - labels:
   930      preset-azure-cred: "true"
   931    env:
   932    - name: AZURE_CREDENTIALS
   933      value: /etc/azure-cred/credentials
   934    - name: AZURE_SSH_PUBLIC_KEY_FILE
   935      value: /etc/azure-ssh/azure-ssh-pub
   936    - name: REGISTRY
   937      value: k8sprow.azurecr.io
   938    - name: KUBE_VERBOSE
   939      value: "0"
   940    - name: AZ_STORAGE_CONTAINER_NAME
   941      value: mystoragecontainer
   942    - name: KUBE_BUILD_CONFORMANCE
   943      value: "n"
   944    volumes:
   945    - name: azure-cred
   946      secret:
   947        secretName: azure-cred
   948    - name: azure-ssh
   949      secret:
   950        secretName: azure-ssh
   951    volumeMounts:
   952    - name: azure-cred
   953      mountPath: /etc/azure-cred
   954      readOnly: true
   955    - name: azure-ssh
   956      mountPath: /etc/azure-ssh
   957      readOnly: true
   958  - labels:
   959      preset-azure-anonymous-pull: "true"
   960    env:
   961      - name: REGISTRY
   962        value: capzci.azurecr.io
   963      - name: LOCAL_ONLY # This variable is used for backwards compatibility, can be removed once CAPZ v1.7.0+ is used in all jobs
   964        value: "false"
   965      - name: USE_LOCAL_KIND_REGISTRY
   966        value: "false"
   967  - labels:
   968      preset-azure-cred-only: "true"
   969    env:
   970      - name: AZURE_CREDENTIALS
   971        value: /etc/azure-cred/credentials
   972    volumes:
   973      - name: azure-cred
   974        secret:
   975          secretName: azure-cred
   976    volumeMounts:
   977      - name: azure-cred
   978        mountPath: /etc/azure-cred
   979        readOnly: true
   980  # storage / caching presets
   981  - labels:
   982      preset-bazel-scratch-dir: "true"
   983    env:
   984    - name: TEST_TMPDIR
   985      value: /bazel-scratch/.cache/bazel
   986    volumes:
   987    - name: bazel-scratch
   988      emptyDir: {}
   989    volumeMounts:
   990    - name: bazel-scratch
   991      mountPath: /bazel-scratch/.cache
   992  - labels:
   993      preset-bazel-remote-cache-enabled: "true"
   994    env:
   995    - name: BAZEL_REMOTE_CACHE_ENABLED
   996      value: "false"
   997  # docker-in-docker (with images/bootstrap) preset
   998  # NOTE: using this also requires using that image,
   999  # ensuring you run your test under either the ENTRYPOINT or:
  1000  # /usr/local/bin/runner.sh my-test-command --foo --bar
  1001  # AND setting the following on your PodSpec:
  1002  # securityContext:
  1003  #   privileged: true
  1004  - labels:
  1005      preset-dind-enabled: "true"
  1006    env:
  1007    - name: DOCKER_IN_DOCKER_ENABLED
  1008      value: "true"
  1009    volumes:
  1010    # kubekins-e2e legacy path
  1011    - name: docker-graph
  1012      emptyDir: {}
  1013    # krte (normal) path
  1014    - name: docker-root
  1015      emptyDir: {}
  1016    volumeMounts:
  1017    - name: docker-graph
  1018      mountPath: /docker-graph
  1019    - name: docker-root
  1020      mountPath: /var/lib/docker
  1021  # volume mounts for kind
  1022  - labels:
  1023      preset-kind-volume-mounts: "true"
  1024    volumeMounts:
  1025      - mountPath: /lib/modules
  1026        name: modules
  1027        readOnly: true
  1028      - mountPath: /sys/fs/cgroup
  1029        name: cgroup
  1030    volumes:
  1031      - name: modules
  1032        hostPath:
  1033          path: /lib/modules
  1034          type: Directory
  1035      - name: cgroup
  1036        hostPath:
  1037          path: /sys/fs/cgroup
  1038          type: Directory
  1039  # enable GOPROXY by default
  1040  - env:
  1041    - name: GOPROXY
  1042      value: "https://proxy.golang.org"