github.com/zppinho/prow@v0.0.0-20240510014325-1738badeb017/test/integration/config/prow/deck.yaml (about)

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