sigs.k8s.io/prow@v0.0.0-20240503223140-c5e374dc7eb1/pkg/config/prow-config-documented.yaml (about)

     1  branch-protection:
     2      # AllowDeletions allows deletion of the protected branch by anyone with write access to the repository.
     3      allow_deletions: false
     4      # AllowDisabledJobPolicies allows a branch to choose to opt out of branch protection
     5      # even if Prow has registered required jobs for that branch.
     6      allow_disabled_job_policies: false
     7      # AllowDisabledPolicies allows a child to disable all protection even if the
     8      # branch has inherited protection options from a parent.
     9      allow_disabled_policies: false
    10      # AllowForcePushes permits force pushes to the protected branch by anyone with write access to the repository.
    11      allow_force_pushes: false
    12      # Admins overrides whether protections apply to admins if set.
    13      enforce_admins: false
    14      # Exclude specifies a set of regular expressions which identify branches
    15      # that should be excluded from the protection policy, mutually exclusive with Include
    16      exclude:
    17          - ""
    18      # Include specifies a set of regular expressions which identify branches
    19      # that should be included from the protection policy, mutually exclusive with Exclude
    20      include:
    21          - ""
    22      # Orgs holds branch protection options for orgs by name
    23      orgs:
    24          "":
    25              # AllowDeletions allows deletion of the protected branch by anyone with write access to the repository.
    26              allow_deletions: false
    27              # AllowForcePushes permits force pushes to the protected branch by anyone with write access to the repository.
    28              allow_force_pushes: false
    29              # Admins overrides whether protections apply to admins if set.
    30              enforce_admins: false
    31              # Exclude specifies a set of regular expressions which identify branches
    32              # that should be excluded from the protection policy, mutually exclusive with Include
    33              exclude:
    34                  - ""
    35              # Include specifies a set of regular expressions which identify branches
    36              # that should be included from the protection policy, mutually exclusive with Exclude
    37              include:
    38                  - ""
    39              # Protect overrides whether branch protection is enabled if set.
    40              protect: false
    41              repos:
    42                  "":
    43                      # AllowDeletions allows deletion of the protected branch by anyone with write access to the repository.
    44                      allow_deletions: false
    45                      # AllowForcePushes permits force pushes to the protected branch by anyone with write access to the repository.
    46                      allow_force_pushes: false
    47                      branches:
    48                          "":
    49                              # AllowDeletions allows deletion of the protected branch by anyone with write access to the repository.
    50                              allow_deletions: false
    51                              # AllowForcePushes permits force pushes to the protected branch by anyone with write access to the repository.
    52                              allow_force_pushes: false
    53                              # Admins overrides whether protections apply to admins if set.
    54                              enforce_admins: false
    55                              # Exclude specifies a set of regular expressions which identify branches
    56                              # that should be excluded from the protection policy, mutually exclusive with Include
    57                              exclude:
    58                                  - ""
    59                              # Include specifies a set of regular expressions which identify branches
    60                              # that should be included from the protection policy, mutually exclusive with Exclude
    61                              include:
    62                                  - ""
    63                              # Protect overrides whether branch protection is enabled if set.
    64                              protect: false
    65                              # RequireManuallyTriggeredJobs enforces a context presence when job runs conditionally, but not automatically,
    66                              # that results in params always_run: false, optional: false, and skip_if_only_change, run_if_changed not present.
    67                              require_manually_triggered_jobs: false
    68                              # RequiredLinearHistory enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch.
    69                              required_linear_history: false
    70                              # RequiredPullRequestReviews specifies github approval/review criteria.
    71                              required_pull_request_reviews:
    72                                  # BypassRestrictions appends users/teams that are allowed to bypass PR restrictions
    73                                  bypass_pull_request_allowances:
    74                                      teams:
    75                                          - ""
    76                                      users:
    77                                          - ""
    78                                  # DismissStale overrides whether new commits automatically dismiss old reviews if set
    79                                  dismiss_stale_reviews: false
    80                                  # DismissalRestrictions appends users/teams that are allowed to merge
    81                                  dismissal_restrictions:
    82                                      teams:
    83                                          - ""
    84                                      users:
    85                                          - ""
    86                                  # RequireOwners overrides whether CODEOWNERS must approve PRs if set
    87                                  require_code_owner_reviews: false
    88                                  # Approvals overrides the number of approvals required if set
    89                                  required_approving_review_count: 0
    90                              # RequiredStatusChecks configures github contexts
    91                              required_status_checks:
    92                                  # Contexts appends required contexts that must be green to merge
    93                                  contexts:
    94                                      - ""
    95                                  # Strict overrides whether new commits in the base branch require updating the PR if set
    96                                  strict: false
    97                              # Restrictions limits who can merge
    98                              restrictions:
    99                                  apps:
   100                                      - ""
   101                                  teams:
   102                                      - ""
   103                                  users:
   104                                      - ""
   105                              # Unmanaged makes us not manage the branchprotection.
   106                              unmanaged: false
   107                      # Admins overrides whether protections apply to admins if set.
   108                      enforce_admins: false
   109                      # Exclude specifies a set of regular expressions which identify branches
   110                      # that should be excluded from the protection policy, mutually exclusive with Include
   111                      exclude:
   112                          - ""
   113                      # Include specifies a set of regular expressions which identify branches
   114                      # that should be included from the protection policy, mutually exclusive with Exclude
   115                      include:
   116                          - ""
   117                      # Protect overrides whether branch protection is enabled if set.
   118                      protect: false
   119                      # RequireManuallyTriggeredJobs enforces a context presence when job runs conditionally, but not automatically,
   120                      # that results in params always_run: false, optional: false, and skip_if_only_change, run_if_changed not present.
   121                      require_manually_triggered_jobs: false
   122                      # RequiredLinearHistory enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch.
   123                      required_linear_history: false
   124                      # RequiredPullRequestReviews specifies github approval/review criteria.
   125                      required_pull_request_reviews:
   126                          # BypassRestrictions appends users/teams that are allowed to bypass PR restrictions
   127                          bypass_pull_request_allowances:
   128                              teams:
   129                                  - ""
   130                              users:
   131                                  - ""
   132                          # DismissStale overrides whether new commits automatically dismiss old reviews if set
   133                          dismiss_stale_reviews: false
   134                          # DismissalRestrictions appends users/teams that are allowed to merge
   135                          dismissal_restrictions:
   136                              teams:
   137                                  - ""
   138                              users:
   139                                  - ""
   140                          # RequireOwners overrides whether CODEOWNERS must approve PRs if set
   141                          require_code_owner_reviews: false
   142                          # Approvals overrides the number of approvals required if set
   143                          required_approving_review_count: 0
   144                      # RequiredStatusChecks configures github contexts
   145                      required_status_checks:
   146                          # Contexts appends required contexts that must be green to merge
   147                          contexts:
   148                              - ""
   149                          # Strict overrides whether new commits in the base branch require updating the PR if set
   150                          strict: false
   151                      # Restrictions limits who can merge
   152                      restrictions:
   153                          apps:
   154                              - ""
   155                          teams:
   156                              - ""
   157                          users:
   158                              - ""
   159                      # Unmanaged makes us not manage the branchprotection.
   160                      unmanaged: false
   161              # RequireManuallyTriggeredJobs enforces a context presence when job runs conditionally, but not automatically,
   162              # that results in params always_run: false, optional: false, and skip_if_only_change, run_if_changed not present.
   163              require_manually_triggered_jobs: false
   164              # RequiredLinearHistory enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch.
   165              required_linear_history: false
   166              # RequiredPullRequestReviews specifies github approval/review criteria.
   167              required_pull_request_reviews:
   168                  # BypassRestrictions appends users/teams that are allowed to bypass PR restrictions
   169                  bypass_pull_request_allowances:
   170                      teams:
   171                          - ""
   172                      users:
   173                          - ""
   174                  # DismissStale overrides whether new commits automatically dismiss old reviews if set
   175                  dismiss_stale_reviews: false
   176                  # DismissalRestrictions appends users/teams that are allowed to merge
   177                  dismissal_restrictions:
   178                      teams:
   179                          - ""
   180                      users:
   181                          - ""
   182                  # RequireOwners overrides whether CODEOWNERS must approve PRs if set
   183                  require_code_owner_reviews: false
   184                  # Approvals overrides the number of approvals required if set
   185                  required_approving_review_count: 0
   186              # RequiredStatusChecks configures github contexts
   187              required_status_checks:
   188                  # Contexts appends required contexts that must be green to merge
   189                  contexts:
   190                      - ""
   191                  # Strict overrides whether new commits in the base branch require updating the PR if set
   192                  strict: false
   193              # Restrictions limits who can merge
   194              restrictions:
   195                  apps:
   196                      - ""
   197                  teams:
   198                      - ""
   199                  users:
   200                      - ""
   201              # Unmanaged makes us not manage the branchprotection.
   202              unmanaged: false
   203      # Protect overrides whether branch protection is enabled if set.
   204      protect: false
   205      # ProtectTested determines if branch protection rules are set for all repos
   206      # that Prow has registered jobs for, regardless of if those repos are in the
   207      # branch protection config.
   208      protect-tested-repos: false
   209      # ProtectReposWithOptionalJobs will make the Branchprotector manage required status
   210      # contexts on repositories that only have optional jobs (default: false)
   211      protect_repos_with_optional_jobs: false
   212      # RequireManuallyTriggeredJobs enforces a context presence when job runs conditionally, but not automatically,
   213      # that results in params always_run: false, optional: false, and skip_if_only_change, run_if_changed not present.
   214      require_manually_triggered_jobs: false
   215      # RequiredLinearHistory enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch.
   216      required_linear_history: false
   217      # RequiredPullRequestReviews specifies github approval/review criteria.
   218      required_pull_request_reviews:
   219          # BypassRestrictions appends users/teams that are allowed to bypass PR restrictions
   220          bypass_pull_request_allowances:
   221              teams:
   222                  - ""
   223              users:
   224                  - ""
   225          # DismissStale overrides whether new commits automatically dismiss old reviews if set
   226          dismiss_stale_reviews: false
   227          # DismissalRestrictions appends users/teams that are allowed to merge
   228          dismissal_restrictions:
   229              teams:
   230                  - ""
   231              users:
   232                  - ""
   233          # RequireOwners overrides whether CODEOWNERS must approve PRs if set
   234          require_code_owner_reviews: false
   235          # Approvals overrides the number of approvals required if set
   236          required_approving_review_count: 0
   237      # RequiredStatusChecks configures github contexts
   238      required_status_checks:
   239          # Contexts appends required contexts that must be green to merge
   240          contexts:
   241              - ""
   242          # Strict overrides whether new commits in the base branch require updating the PR if set
   243          strict: false
   244      # Restrictions limits who can merge
   245      restrictions:
   246          apps:
   247              - ""
   248          teams:
   249              - ""
   250          users:
   251              - ""
   252      # Unmanaged makes us not manage the branchprotection.
   253      unmanaged: false
   254  # The git sha from which this config was generated.
   255  config_version_sha: ' '
   256  deck:
   257      # AdditionalAllowedBuckets is a list of storage buckets to allow in artifact requests
   258      # (in addition to those listed in the GCSConfiguration).
   259      # Setting this field requires "SkipStoragePathValidation" also be set to `false`.
   260      additional_allowed_buckets:
   261          - ""
   262      # Branding of the frontend
   263      branding:
   264          # BackgroundColor is the color of the background.
   265          background_color: ' '
   266          # Favicon is the location of the favicon that will be loaded in deck.
   267          favicon: ' '
   268          # HeaderColor is the color of the header.
   269          header_color: ' '
   270          # Logo is the location of the logo that will be loaded in deck.
   271          logo: ' '
   272      # DefaultRerunAuthConfigs is a list of DefaultRerunAuthConfigEntry structures that specify who can
   273      # trigger job reruns. Reruns are based on whether the entry's org/repo or cluster matches with the
   274      # expected fields in the given configuration.
   275  
   276      # Each entry in the slice specifies Repo and Cluster regexp filter fields to
   277      # match against jobs and a corresponding RerunAuthConfig. The entry matching the job with the
   278      # most specification is for authentication purposes.
   279  
   280      # This field is smarter than the RerunAuthConfigs, because each
   281      # entry includes additional Cluster regexp information that the old format
   282      # does not consider.
   283  
   284      # This field is mutually exclusive with the RerunAuthConfigs field.
   285      default_rerun_auth_configs:
   286          - # Cluster matches against the cluster alias of the build cluster that the
   287            # ProwJob is configured to run on. Recall that ProwJobs default to running on
   288            # the "default" build cluster if they omit the "cluster" field in config.
   289            cluster: ' '
   290            # OrgRepo matches against the "org" or "org/repo" that the presubmit or postsubmit
   291            # is associated with. If the job is a periodic, extra_refs[0] is used. If the
   292            # job is a periodic without extra_refs, the empty string will be used.
   293            # If this field is omitted all jobs will match.
   294            repo: ' '
   295            # Config is the RerunAuthConfig to apply if the filter fields all match the
   296            # ProwJob. Note that when multiple entries match a ProwJob the entry with the
   297            # highest specification is used.
   298            rerun_auth_configs:
   299              # If AllowAnyone is set to true, any user can rerun the job
   300              allow_anyone: true
   301              # GitHubOrgs contains names of GitHub organizations whose members can rerun the job
   302              github_orgs:
   303                  - ""
   304              # GitHubTeams contains IDs of GitHub teams of users who can rerun the job
   305              # If you know the name of a team and the org it belongs to,
   306              # you can look up its ID using this command, where the team slug is the hyphenated name:
   307              # curl -H "Authorization: token <token>" "https://api.github.com/orgs/<org-name>/teams/<team slug>"
   308              # or, to list all teams in a given org, use
   309              # curl -H "Authorization: token <token>" "https://api.github.com/orgs/<org-name>/teams"
   310              github_team_ids:
   311                  - 0
   312              # GitHubTeamSlugs contains slugs and orgs of teams of users who can rerun the job
   313              github_team_slugs:
   314                  - org: ' '
   315                    slug: ' '
   316              # GitHubUsers contains names of individual users who can rerun the job
   317              github_users:
   318                  - ""
   319      # ExternalAgentLogs ensures external agents can expose
   320      # their logs in prow.
   321      external_agent_logs:
   322          - # Agent is an external prow agent that supports exposing
   323            # logs via deck.
   324            agent: ' '
   325            # SelectorString compiles into Selector at load time.
   326            selector: ' '
   327            # URLTemplateString compiles into URLTemplate at load time.
   328            url_template: ' '
   329      # GoogleAnalytics, if specified, include a Google Analytics tracking code on each page.
   330      google_analytics: ' '
   331      # HiddenRepos is a list of orgs and/or repos that should not be displayed by Deck.
   332      hidden_repos:
   333          - ""
   334      # RerunAuthConfigs is not deprecated but DefaultRerunAuthConfigs should be used in favor.
   335      # It remains a part of Deck for the purposes of backwards compatibility.
   336      # RerunAuthConfigs is a map of configs that specify who is able to trigger job reruns. The field
   337      # accepts a key of: `org/repo`, `org` or `*` (wildcard) to define what GitHub org (or repo) a particular
   338      # config applies to and a value of: `RerunAuthConfig` struct to define the users/groups authorized to rerun jobs.
   339      rerun_auth_configs:
   340          "":
   341              allow_anyone: true
   342              github_orgs:
   343                  - ""
   344              github_team_ids:
   345                  - 0
   346              github_team_slugs:
   347                  - org: ' '
   348                    slug: ' '
   349              github_users:
   350                  - ""
   351      # SkipStoragePathValidation skips validation that restricts artifact requests to specific buckets.
   352      # By default, buckets listed in the GCSConfiguration are automatically allowed.
   353      # Additional locations can be allowed via `AdditionalAllowedBuckets` fields.
   354      # When unspecified (nil), it defaults to false
   355      skip_storage_path_validation: false
   356      # Spyglass specifies which viewers will be used for which artifacts when viewing a job in Deck.
   357      spyglass:
   358          # If set, Announcement is used as a Go HTML template string to be displayed at the top of
   359          # each spyglass page. Using HTML in the template is acceptable.
   360          # Currently the only variable available is .ArtifactPath, which contains the GCS path for the job artifacts.
   361          announcement: ' '
   362          # BucketAliases permits a naive URL rewriting functionality.
   363          # Keys represent aliases and their values are the authoritative
   364          # bucket names they will be substituted with
   365          bucket_aliases:
   366              "": ""
   367          # GCSBrowserPrefix is used to generate a link to a human-usable GCS browser.
   368          # If left empty, the link will be not be shown. Otherwise, a GCS path (with no
   369          # prefix or scheme) will be appended to GCSBrowserPrefix and shown to the user.
   370          gcs_browser_prefix: ' '
   371          # GCSBrowserPrefixesByRepo are used to generate a link to a human-usable GCS browser.
   372          # They are mapped by org, org/repo or '*' which is the default value.
   373          # These are the most specific and will override GCSBrowserPrefixesByBucket if both are resolved.
   374          gcs_browser_prefixes:
   375              "": ""
   376          # GCSBrowserPrefixesByBucket are used to generate a link to a human-usable GCS browser.
   377          # They are mapped by bucket name or '*' which is the default value.
   378          # They will only be utilized if there is not a GCSBrowserPrefixesByRepo for the org/repo.
   379          gcs_browser_prefixes_by_bucket:
   380              "": ""
   381          # HidePRHistLink allows prow hiding PR History link from deck, this is handy especially for
   382          # prow instances that only serves gerrit.
   383          # This might become obsolete once https://github.com/kubernetes/test-infra/issues/24130 is fixed.
   384          hide_pr_history_link: true
   385          # Lenses is a list of lens configurations.
   386          lenses:
   387              - # Lens is the lens to use, alongside any lens-specific configuration.
   388                lens:
   389                  # Name is the name of the lens.
   390                  name: ' '
   391                # OptionalFiles is a list of regexes of file paths that will be provided to the lens if they are
   392                # present, but will not preclude the lens being rendered by their absence.
   393                # The list entries are ORed together, so if only one of them is present it will be provided to
   394                # the lens even if the others are not.
   395                optional_files:
   396                  - ""
   397                # RemoteConfig specifies how to access remote lenses.
   398                remote_config:
   399                  # The endpoint for the lense.
   400                  endpoint: ' '
   401                  # HideTitle defines if we will keep showing the title after lens loads.
   402                  hide_title: false
   403                  # Priority for lens ordering, lowest priority first.
   404                  priority: 0
   405                  # The endpoint for static resources.
   406                  static_root: ' '
   407                  # The human-readable title for the lens.
   408                  title: ' '
   409                # RequiredFiles is a list of regexes of file paths that must all be present for a lens to appear.
   410                # The list entries are ANDed together, i.e. all of them are required. You can achieve an OR
   411                # by using a pipe in a regex.
   412                required_files:
   413                  - ""
   414          # PRHistLinkTemplate is the template for constructing href of `PR History` button,
   415          # by default it's "/pr-history?org={{.Org}}&repo={{.Repo}}&pr={{.Number}}"
   416          pr_history_link_template: ' '
   417          # TestGridConfig is the path to the TestGrid config proto. If the path begins with
   418          # "gs://" it is assumed to be a GCS reference, otherwise it is read from the local filesystem.
   419          # If left blank, TestGrid links will not appear.
   420          testgrid_config: ' '
   421          # TestGridRoot is the root URL to the TestGrid frontend, e.g. "https://testgrid.k8s.io/".
   422          # If left blank, TestGrid links will not appear.
   423          testgrid_root: ' '
   424          # Viewers is deprecated, prefer Lenses instead.
   425          # Viewers was a map of Regexp strings to viewer names that defines which sets
   426          # of artifacts need to be consumed by which viewers. It is copied in to Lenses at load time.
   427          viewers:
   428              "": null
   429      # TideUpdatePeriod specifies how often Deck will fetch status from Tide. Defaults to 10s.
   430      tide_update_period: 0s
   431  # DefaultJobTimeout this is default deadline for prow jobs. This value is used when
   432  # no timeout is configured at the job level. This value is set to 24 hours.
   433  default_job_timeout: 0s
   434  # DisabledClusters holds a list of disabled build cluster names. The same context names will be ignored while
   435  # Prow components load the kubeconfig files.
   436  disabled_clusters:
   437      - ""
   438  # Gangway contains configurations needed by the the Prow API server of the
   439  # same name. It encodes an allowlist of API clients and what kinds of Prow
   440  # Jobs they are authorized to trigger.
   441  gangway:
   442      # AllowedApiClients encodes identifying information about API clients
   443      # (AllowedApiClient). An AllowedApiClient has authority to trigger a subset
   444      # of Prow Jobs.
   445      allowed_api_clients:
   446          - # AllowedJobsFilters contains information about what kinds of Prow jobs this
   447            # API client is authorized to trigger.
   448            allowed_jobs_filters:
   449              - tenant_id: ' '
   450            # ApiClientGcp contains GoogleCloudPlatform details about a web API client.
   451            # We currently only support GoogleCloudPlatform but other cloud vendors are
   452            # possible as additional fields in this struct.
   453            gcp:
   454              # EndpointApiConsumerNumber is the expected value of the
   455              # x-endpoint-api-consumer-number HTTP metadata header. Typically this
   456              # encodes the GCP Project number value, which uniquely identifies a GCP
   457              # Project.
   458              endpoint_api_consumer_number: ' '
   459              # EndpointApiConsumerType is the expected value of the
   460              # x-endpoint-api-consumer-type HTTP metadata header. Typically this will be
   461              # "PROJECT".
   462              endpoint_api_consumer_type: ' '
   463  gerrit:
   464      allowed_presubmit_trigger_re: ' '
   465      # DeckURL is the root URL of Deck. This is used to construct links to
   466      # job runs for a given CL.
   467      deck_url: ' '
   468      org_repos_config: null
   469      # TickInterval is how often we do a sync with bound gerrit instance.
   470      tick_interval: 0s
   471  # GitHubOptions allows users to control how prow applications display GitHub website links.
   472  github:
   473      # LinkURLFromConfig is the string representation of the link_url config parameter.
   474      # This config parameter allows users to override the default GitHub link url for all plugins.
   475      # If this option is not set, we assume "https://github.com".
   476      link_url: ' '
   477  github_reporter:
   478      # JobTypesToReport is used to determine which type of prowjob
   479      # should be reported to github.
   480  
   481      # defaults to both presubmit and postsubmit jobs.
   482      job_types_to_report:
   483          - ""
   484      # NoCommentRepos is a list of orgs and org/repos for which failure report
   485      # comments should not be maintained. Status contexts will still be written.
   486      no_comment_repos:
   487          - ""
   488      # SummaryCommentRepos is a list of orgs and org/repos for which failure report
   489      # comments is only sent when all jobs from current SHA are finished. Status
   490      # contexts will still be written.
   491      summary_comment_repos:
   492          - ""
   493  horologium:
   494      # TickInterval is the interval in which we check if new jobs need to be
   495      # created. Defaults to one minute.
   496      tick_interval: 0s
   497  in_repo_config:
   498      # AllowedClusters is a list of allowed clusternames that can be used for jobs on
   499      # a given repo. All clusters that are allowed for the specific repo, its org or
   500      # globally can be used.
   501      allowed_clusters:
   502          "": null
   503      # Enabled describes whether InRepoConfig is enabled for a given repository. This can
   504      # be set globally, per org or per repo using '*', 'org' or 'org/repo' as key. The
   505      # narrowest match always takes precedence.
   506      enabled:
   507          "": false
   508  jenkins_operators:
   509      - # JobURLTemplateString compiles into JobURLTemplate at load time.
   510        job_url_template: ' '
   511        # LabelSelectorString compiles into LabelSelector at load time.
   512        # If set, this option needs to match --label-selector used by
   513        # the desired jenkins-operator. This option is considered
   514        # invalid when provided with a single jenkins-operator config.
   515  
   516        # For label selector syntax, see below:
   517        # https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
   518        label_selector: ' '
   519        # ReportTemplateString compiles into ReportTemplate at load time.
   520        report_template: ' '
   521        # ReportTemplateStrings is a mapping of template comments.
   522        # Use `org/repo`, `org` or `*` as a key.
   523        report_templates:
   524          "": ""
   525  # LogLevel enables dynamically updating the log level of the
   526  # standard logger that is used by all prow components.
   527  
   528  # Valid values:
   529  
   530  # "debug", "info", "warn", "warning", "error", "fatal", "panic"
   531  
   532  # Defaults to "info".
   533  log_level: ' '
   534  # ManagedWebhooks contains information about all github repositories and organizations which are using
   535  # non-global Hmac token.
   536  managed_webhooks:
   537      # Controls whether org/repo invitation for prow bot should be automatically
   538      # accepted or not. Only admin level invitations related to orgs and repos
   539      # in the managed_webhooks config will be accepted and all other invitations
   540      # will be left pending.
   541      auto_accept_invitation: false
   542      org_repo_config:
   543          "":
   544              token_created_after: "0001-01-01T00:00:00Z"
   545      respect_legacy_global_token: false
   546  # Moonraker contains configurations for Moonraker, such as the client
   547  # timeout to use for all Prow services that need to send requests to
   548  # Moonraker.
   549  moonraker:
   550      client_timeout: 0s
   551  # OwnersDirDenylist is used to configure regular expressions matching directories
   552  # to ignore when searching for OWNERS{,_ALIAS} files in a repo.
   553  owners_dir_denylist:
   554      # Default configures a default denylist for all repos (or orgs).
   555      # Some directories like ".git", "_output" and "vendor/.*/OWNERS"
   556      # are already preconfigured to be denylisted, and need not be included here.
   557      default:
   558          - ""
   559      # By default, some directories like ".git", "_output" and "vendor/.*/OWNERS"
   560      # are preconfigured to be denylisted.
   561      # If set, IgnorePreconfiguredDefaults will not add these preconfigured directories
   562      # to the denylist.
   563      ignore_preconfigured_defaults: true
   564      # Repos configures a directory denylist per repo (or org).
   565      repos:
   566          "": null
   567  plank:
   568      # BuildClusterStatusFile is an optional field used to specify the blob storage location
   569      # to publish cluster status information.
   570      # e.g. gs://my-bucket/cluster-status.json
   571      build_cluster_status_file: ' '
   572      # DefaultDecorationConfigEntries is used to populate DefaultDecorationConfigs.
   573  
   574      # Each entry in the slice specifies Repo and Cluster regexp filter fields to
   575      # match against jobs and a corresponding DecorationConfig. All entries that
   576      # match a job are used. Later matching entries override the fields of earlier
   577      # matching entries.
   578  
   579      # This field is smarter than the DefaultDecorationConfigsMap, because each
   580      # entry includes additional Cluster regexp information that the old format
   581      # does not consider.
   582  
   583      # This field is mutually exclusive with the DefaultDecorationConfigsMap field.
   584      default_decoration_config_entries:
   585          - # Cluster matches against the cluster alias of the build cluster that the
   586            # ProwJob is configured to run on. Recall that ProwJobs default to running on
   587            # the "default" build cluster if they omit the "cluster" field in config.
   588            cluster: ' '
   589            # Config is the DecorationConfig to apply if the filter fields all match the
   590            # ProwJob. Note that when multiple entries match a ProwJob they are all used
   591            # by sequentially merging with later entries overriding fields from earlier
   592            # entries.
   593            config:
   594              # BloblessFetch tells Prow to avoid fetching objects when cloning using
   595              # the --filter=blob:none flag.
   596              blobless_fetch: false
   597              # CensorSecrets enables censoring output logs and artifacts.
   598              censor_secrets: false
   599              # CensoringOptions exposes options for censoring output logs and artifacts.
   600              censoring_options:
   601                  # CensoringBufferSize is the size in bytes of the buffer allocated for every file
   602                  # being censored. We want to keep as little of the file in memory as possible in
   603                  # order for censoring to be reasonably performant in space. However, to guarantee
   604                  # that we censor every instance of every secret, our buffer size must be at least
   605                  # two times larger than the largest secret we are about to censor. While that size
   606                  # is the smallest possible buffer we could use, if the secrets being censored are
   607                  # small, censoring will not be performant as the number of I/O actions per file
   608                  # would increase. If unset, defaults to 10MiB.
   609                  censoring_buffer_size: 0
   610                  # CensoringConcurrency is the maximum number of goroutines that should be censoring
   611                  # artifacts and logs at any time. If unset, defaults to 10.
   612                  censoring_concurrency: 0
   613                  # ExcludeDirectories are directories which should not have their content censored. If
   614                  # present, content in these directories will not be censored even if the directory also
   615                  # matches a glob in IncludeDirectories. Entries in this list are relative to $ARTIFACTS,
   616                  # and are parsed with the go-zglob library, allowing for globbed matches.
   617                  exclude_directories:
   618                      - ""
   619                  # IncludeDirectories are directories which should have their content censored. If
   620                  # present, only content in these directories will be censored. Entries in this list
   621                  # are relative to $ARTIFACTS and are parsed with the go-zglob library, allowing for
   622                  # globbed matches.
   623                  include_directories:
   624                      - ""
   625              # CookieFileSecret is the name of a kubernetes secret that contains
   626              # a git http.cookiefile, which should be used during the cloning process.
   627              cookiefile_secret: ""
   628              # DefaultMemoryRequest is the default requested memory on a test container.
   629              # If SetLimitEqualsMemoryRequest is also true then the Limit will also be
   630              # set the same as this request. Could be overridden by memory request
   631              # defined explicitly on prowjob.
   632              default_memory_request: "0"
   633              # DefaultServiceAccountName is the name of the Kubernetes service account
   634              # that should be used by the pod if one is not specified in the podspec.
   635              default_service_account_name: ""
   636              # FsGroup defines special supplemental group ID used in all containers in a Pod.
   637              # This allows to change the ownership of particular volumes by kubelet.
   638              # This field will not override the existing ProwJob's PodSecurityContext.
   639              # Equivalent to PodSecurityContext's FsGroup
   640              fs_group: 0
   641              # GCSConfiguration holds options for pushing logs and
   642              # artifacts to GCS from a job.
   643              gcs_configuration:
   644                  # Bucket is the bucket to upload to, it can be:
   645                  # * a GCS bucket: with gs:// prefix
   646                  # * a S3 bucket: with s3:// prefix
   647                  # * a GCS bucket: without a prefix (deprecated, it's discouraged to use Bucket without prefix please add the gs:// prefix)
   648                  bucket: ' '
   649                  # CompressFileTypes specify file types that should be gzipped prior to upload.
   650                  # Matching files will be compressed prior to upload, and the content-encoding on these files will be set to gzip.
   651                  # GCS will transcode these gzipped files transparently when viewing. See: https://cloud.google.com/storage/docs/transcoding
   652                  # Example: "txt", "json"
   653                  # Use "*" for all
   654                  compress_file_types:
   655                      - ""
   656                  # DefaultOrg is omitted from GCS paths when using the
   657                  # legacy or simple strategy
   658                  default_org: ' '
   659                  # DefaultRepo is omitted from GCS paths when using the
   660                  # legacy or simple strategy
   661                  default_repo: ' '
   662                  # JobURLPrefix holds the baseURL under which the jobs output can be viewed.
   663                  # If unset, this will be derived based on org/repo from the job_url_prefix_config.
   664                  job_url_prefix: ' '
   665                  # LocalOutputDir specifies a directory where files should be copied INSTEAD of uploading to blob storage.
   666                  # This option is useful for testing jobs that use the pod-utilities without actually uploading.
   667                  local_output_dir: ' '
   668                  # MediaTypes holds additional extension media types to add to Go's
   669                  # builtin's and the local system's defaults. This maps extensions
   670                  # to media types, for example: MediaTypes["log"] = "text/plain"
   671                  mediaTypes:
   672                      "": ""
   673                  # PathPrefix is an optional path that follows the
   674                  # bucket name and comes before any structure
   675                  path_prefix: ' '
   676                  # PathStrategy dictates how the org and repo are used
   677                  # when calculating the full path to an artifact in GCS
   678                  path_strategy: ' '
   679              # GCSCredentialsSecret is the name of the Kubernetes secret
   680              # that holds GCS push credentials.
   681              gcs_credentials_secret: ""
   682              # GitHubAPIEndpoints are the endpoints of GitHub APIs.
   683              github_api_endpoints:
   684                  - ""
   685              # GitHubAppID is the ID of GitHub App, which is going to be used for fetching a private
   686              # repository.
   687              github_app_id: ' '
   688              # GitHubAppPrivateKeySecret is a Kubernetes secret that contains the GitHub App private key,
   689              # which is going to be used for fetching a private repository.
   690              github_app_private_key_secret:
   691                  # Key is the key of the corresponding kubernetes secret that
   692                  # holds the value of the GitHub App private key.
   693                  key: ' '
   694                  # Name is the name of a kubernetes secret.
   695                  name: ' '
   696              # GracePeriod is how long the pod utilities will wait
   697              # after sending SIGINT to send SIGKILL when aborting
   698              # a job. Only applicable if decorating the PodSpec.
   699              grace_period: 0s
   700              # OauthTokenSecret is a Kubernetes secret that contains the OAuth token,
   701              # which is going to be used for fetching a private repository.
   702              oauth_token_secret:
   703                  # Key is the key of the corresponding kubernetes secret that
   704                  # holds the value of the OAuth token.
   705                  key: ' '
   706                  # Name is the name of a kubernetes secret.
   707                  name: ' '
   708              # PodPendingTimeout defines how long the controller will wait to perform garbage
   709              # collection on pending pods. Specific for OrgRepo or Cluster. If not set, it has a fallback inside plank field.
   710              pod_pending_timeout: 0s
   711              # PodRunningTimeout defines how long the controller will wait to abort a prowjob pod
   712              # stuck in running state. Specific for OrgRepo or Cluster. If not set, it has a fallback inside plank field.
   713              pod_running_timeout: 0s
   714              # PodUnscheduledTimeout defines how long the controller will wait to abort a prowjob
   715              # stuck in an unscheduled state. Specific for OrgRepo or Cluster. If not set, it has a fallback inside plank field.
   716              pod_unscheduled_timeout: 0s
   717              # Resources holds resource requests and limits for utility
   718              # containers used to decorate a PodSpec.
   719              resources:
   720                  clonerefs:
   721                      limits:
   722                          "": "0"
   723                      requests:
   724                          "": "0"
   725                  initupload:
   726                      limits:
   727                          "": "0"
   728                      requests:
   729                          "": "0"
   730                  place_entrypoint:
   731                      limits:
   732                          "": "0"
   733                      requests:
   734                          "": "0"
   735                  sidecar:
   736                      limits:
   737                          "": "0"
   738                      requests:
   739                          "": "0"
   740              # RunAsGroup defines GID of process in all containers running in a Pod.
   741              # This field will not override the existing ProwJob's PodSecurityContext.
   742              # Equivalent to PodSecurityContext's RunAsGroup
   743              run_as_group: 0
   744              # RunAsUser defines UID for process in all containers running in a Pod.
   745              # This field will not override the existing ProwJob's PodSecurityContext.
   746              # Equivalent to PodSecurityContext's RunAsUser
   747              run_as_user: 0
   748              # S3CredentialsSecret is the name of the Kubernetes secret
   749              # that holds blob storage push credentials.
   750              s3_credentials_secret: ""
   751              # SetLimitEqualsMemoryRequest sets memory limit equal to request.
   752              set_limit_equals_memory_request: false
   753              # SkipCloning determines if we should clone source code in the
   754              # initcontainers for jobs that specify refs
   755              skip_cloning: false
   756              # SSHHostFingerprints are the fingerprints of known SSH hosts
   757              # that the cloning process can trust.
   758              # Create with ssh-keyscan [-t rsa] host
   759              ssh_host_fingerprints:
   760                  - ""
   761              # SSHKeySecrets are the names of Kubernetes secrets that contain
   762              # SSK keys which should be used during the cloning process.
   763              ssh_key_secrets:
   764                  - ""
   765              # Timeout is how long the pod utilities will wait
   766              # before aborting a job with SIGINT.
   767              timeout: 0s
   768              # UploadIgnoresInterrupts causes sidecar to ignore interrupts for the upload process in
   769              # hope that the test process exits cleanly before starting an upload.
   770              upload_ignores_interrupts: false
   771              # UtilityImages holds pull specs for utility container
   772              # images used to decorate a PodSpec.
   773              utility_images:
   774                  # CloneRefs is the pull spec used for the clonerefs utility
   775                  clonerefs: ' '
   776                  # Entrypoint is the pull spec used for the entrypoint utility
   777                  entrypoint: ' '
   778                  # InitUpload is the pull spec used for the initupload utility
   779                  initupload: ' '
   780                  # sidecar is the pull spec used for the sidecar utility
   781                  sidecar: ' '
   782            # OrgRepo matches against the "org" or "org/repo" that the presubmit or postsubmit
   783            # is associated with. If the job is a periodic, extra_refs[0] is used. If the
   784            # job is a periodic without extra_refs, the empty string will be used.
   785            # If this field is omitted all jobs will match.
   786            repo: ' '
   787      # DefaultDecorationConfigsMap is a mapping from 'org', 'org/repo', or the
   788      # literal string '*', to the default decoration config to use for that key.
   789      # The '*' key matches all jobs. (Periodics use extra_refs[0] for matching
   790      # if present.)
   791  
   792      # This field is mutually exclusive with the DefaultDecorationConfigEntries field.
   793      default_decoration_configs:
   794          "":
   795              # BloblessFetch tells Prow to avoid fetching objects when cloning using
   796              # the --filter=blob:none flag.
   797              blobless_fetch: false
   798              # CensorSecrets enables censoring output logs and artifacts.
   799              censor_secrets: false
   800              # CensoringOptions exposes options for censoring output logs and artifacts.
   801              censoring_options:
   802                  # CensoringBufferSize is the size in bytes of the buffer allocated for every file
   803                  # being censored. We want to keep as little of the file in memory as possible in
   804                  # order for censoring to be reasonably performant in space. However, to guarantee
   805                  # that we censor every instance of every secret, our buffer size must be at least
   806                  # two times larger than the largest secret we are about to censor. While that size
   807                  # is the smallest possible buffer we could use, if the secrets being censored are
   808                  # small, censoring will not be performant as the number of I/O actions per file
   809                  # would increase. If unset, defaults to 10MiB.
   810                  censoring_buffer_size: 0
   811                  # CensoringConcurrency is the maximum number of goroutines that should be censoring
   812                  # artifacts and logs at any time. If unset, defaults to 10.
   813                  censoring_concurrency: 0
   814                  # ExcludeDirectories are directories which should not have their content censored. If
   815                  # present, content in these directories will not be censored even if the directory also
   816                  # matches a glob in IncludeDirectories. Entries in this list are relative to $ARTIFACTS,
   817                  # and are parsed with the go-zglob library, allowing for globbed matches.
   818                  exclude_directories:
   819                      - ""
   820                  # IncludeDirectories are directories which should have their content censored. If
   821                  # present, only content in these directories will be censored. Entries in this list
   822                  # are relative to $ARTIFACTS and are parsed with the go-zglob library, allowing for
   823                  # globbed matches.
   824                  include_directories:
   825                      - ""
   826              # CookieFileSecret is the name of a kubernetes secret that contains
   827              # a git http.cookiefile, which should be used during the cloning process.
   828              cookiefile_secret: ""
   829              # DefaultMemoryRequest is the default requested memory on a test container.
   830              # If SetLimitEqualsMemoryRequest is also true then the Limit will also be
   831              # set the same as this request. Could be overridden by memory request
   832              # defined explicitly on prowjob.
   833              default_memory_request: "0"
   834              # DefaultServiceAccountName is the name of the Kubernetes service account
   835              # that should be used by the pod if one is not specified in the podspec.
   836              default_service_account_name: ""
   837              # FsGroup defines special supplemental group ID used in all containers in a Pod.
   838              # This allows to change the ownership of particular volumes by kubelet.
   839              # This field will not override the existing ProwJob's PodSecurityContext.
   840              # Equivalent to PodSecurityContext's FsGroup
   841              fs_group: 0
   842              # GCSConfiguration holds options for pushing logs and
   843              # artifacts to GCS from a job.
   844              gcs_configuration:
   845                  # Bucket is the bucket to upload to, it can be:
   846                  # * a GCS bucket: with gs:// prefix
   847                  # * a S3 bucket: with s3:// prefix
   848                  # * a GCS bucket: without a prefix (deprecated, it's discouraged to use Bucket without prefix please add the gs:// prefix)
   849                  bucket: ' '
   850                  # CompressFileTypes specify file types that should be gzipped prior to upload.
   851                  # Matching files will be compressed prior to upload, and the content-encoding on these files will be set to gzip.
   852                  # GCS will transcode these gzipped files transparently when viewing. See: https://cloud.google.com/storage/docs/transcoding
   853                  # Example: "txt", "json"
   854                  # Use "*" for all
   855                  compress_file_types:
   856                      - ""
   857                  # DefaultOrg is omitted from GCS paths when using the
   858                  # legacy or simple strategy
   859                  default_org: ' '
   860                  # DefaultRepo is omitted from GCS paths when using the
   861                  # legacy or simple strategy
   862                  default_repo: ' '
   863                  # JobURLPrefix holds the baseURL under which the jobs output can be viewed.
   864                  # If unset, this will be derived based on org/repo from the job_url_prefix_config.
   865                  job_url_prefix: ' '
   866                  # LocalOutputDir specifies a directory where files should be copied INSTEAD of uploading to blob storage.
   867                  # This option is useful for testing jobs that use the pod-utilities without actually uploading.
   868                  local_output_dir: ' '
   869                  # MediaTypes holds additional extension media types to add to Go's
   870                  # builtin's and the local system's defaults. This maps extensions
   871                  # to media types, for example: MediaTypes["log"] = "text/plain"
   872                  mediaTypes:
   873                      "": ""
   874                  # PathPrefix is an optional path that follows the
   875                  # bucket name and comes before any structure
   876                  path_prefix: ' '
   877                  # PathStrategy dictates how the org and repo are used
   878                  # when calculating the full path to an artifact in GCS
   879                  path_strategy: ' '
   880              # GCSCredentialsSecret is the name of the Kubernetes secret
   881              # that holds GCS push credentials.
   882              gcs_credentials_secret: ""
   883              # GitHubAPIEndpoints are the endpoints of GitHub APIs.
   884              github_api_endpoints:
   885                  - ""
   886              # GitHubAppID is the ID of GitHub App, which is going to be used for fetching a private
   887              # repository.
   888              github_app_id: ' '
   889              # GitHubAppPrivateKeySecret is a Kubernetes secret that contains the GitHub App private key,
   890              # which is going to be used for fetching a private repository.
   891              github_app_private_key_secret:
   892                  # Key is the key of the corresponding kubernetes secret that
   893                  # holds the value of the GitHub App private key.
   894                  key: ' '
   895                  # Name is the name of a kubernetes secret.
   896                  name: ' '
   897              # GracePeriod is how long the pod utilities will wait
   898              # after sending SIGINT to send SIGKILL when aborting
   899              # a job. Only applicable if decorating the PodSpec.
   900              grace_period: 0s
   901              # OauthTokenSecret is a Kubernetes secret that contains the OAuth token,
   902              # which is going to be used for fetching a private repository.
   903              oauth_token_secret:
   904                  # Key is the key of the corresponding kubernetes secret that
   905                  # holds the value of the OAuth token.
   906                  key: ' '
   907                  # Name is the name of a kubernetes secret.
   908                  name: ' '
   909              # PodPendingTimeout defines how long the controller will wait to perform garbage
   910              # collection on pending pods. Specific for OrgRepo or Cluster. If not set, it has a fallback inside plank field.
   911              pod_pending_timeout: 0s
   912              # PodRunningTimeout defines how long the controller will wait to abort a prowjob pod
   913              # stuck in running state. Specific for OrgRepo or Cluster. If not set, it has a fallback inside plank field.
   914              pod_running_timeout: 0s
   915              # PodUnscheduledTimeout defines how long the controller will wait to abort a prowjob
   916              # stuck in an unscheduled state. Specific for OrgRepo or Cluster. If not set, it has a fallback inside plank field.
   917              pod_unscheduled_timeout: 0s
   918              # Resources holds resource requests and limits for utility
   919              # containers used to decorate a PodSpec.
   920              resources:
   921                  clonerefs:
   922                      limits:
   923                          "": "0"
   924                      requests:
   925                          "": "0"
   926                  initupload:
   927                      limits:
   928                          "": "0"
   929                      requests:
   930                          "": "0"
   931                  place_entrypoint:
   932                      limits:
   933                          "": "0"
   934                      requests:
   935                          "": "0"
   936                  sidecar:
   937                      limits:
   938                          "": "0"
   939                      requests:
   940                          "": "0"
   941              # RunAsGroup defines GID of process in all containers running in a Pod.
   942              # This field will not override the existing ProwJob's PodSecurityContext.
   943              # Equivalent to PodSecurityContext's RunAsGroup
   944              run_as_group: 0
   945              # RunAsUser defines UID for process in all containers running in a Pod.
   946              # This field will not override the existing ProwJob's PodSecurityContext.
   947              # Equivalent to PodSecurityContext's RunAsUser
   948              run_as_user: 0
   949              # S3CredentialsSecret is the name of the Kubernetes secret
   950              # that holds blob storage push credentials.
   951              s3_credentials_secret: ""
   952              # SetLimitEqualsMemoryRequest sets memory limit equal to request.
   953              set_limit_equals_memory_request: false
   954              # SkipCloning determines if we should clone source code in the
   955              # initcontainers for jobs that specify refs
   956              skip_cloning: false
   957              # SSHHostFingerprints are the fingerprints of known SSH hosts
   958              # that the cloning process can trust.
   959              # Create with ssh-keyscan [-t rsa] host
   960              ssh_host_fingerprints:
   961                  - ""
   962              # SSHKeySecrets are the names of Kubernetes secrets that contain
   963              # SSK keys which should be used during the cloning process.
   964              ssh_key_secrets:
   965                  - ""
   966              # Timeout is how long the pod utilities will wait
   967              # before aborting a job with SIGINT.
   968              timeout: 0s
   969              # UploadIgnoresInterrupts causes sidecar to ignore interrupts for the upload process in
   970              # hope that the test process exits cleanly before starting an upload.
   971              upload_ignores_interrupts: false
   972              # UtilityImages holds pull specs for utility container
   973              # images used to decorate a PodSpec.
   974              utility_images:
   975                  # CloneRefs is the pull spec used for the clonerefs utility
   976                  clonerefs: ' '
   977                  # Entrypoint is the pull spec used for the entrypoint utility
   978                  entrypoint: ' '
   979                  # InitUpload is the pull spec used for the initupload utility
   980                  initupload: ' '
   981                  # sidecar is the pull spec used for the sidecar utility
   982                  sidecar: ' '
   983      # JobQueueCapacities is an optional field used to define job queue max concurrency.
   984      # Each job can be assigned to a specific queue which has its own max concurrency,
   985      # independent from the job's name. Setting the concurrency to 0 will block any job
   986      # from being triggered. Setting the concurrency to a negative value will remove the
   987      # limit. An example use case would be easier scheduling of jobs using boskos resources.
   988      # This mechanism is separate from ProwJob's MaxConcurrency setting.
   989      job_queue_capacities:
   990          "": 0
   991      # JobURLPrefixConfig is the host and path prefix under which job details
   992      # will be viewable. Use `org/repo`, `org` or `*`as key and an url as value.
   993      job_url_prefix_config:
   994          "": ""
   995      # JobURLTemplateString compiles into JobURLTemplate at load time.
   996      job_url_template: ' '
   997      # JobURLPrefixDisableAppendStorageProvider disables that the storageProvider is
   998      # automatically appended to the JobURLPrefix.
   999      jobURLPrefixDisableAppendStorageProvider: true
  1000      # PodPendingTimeout defines how long the controller will wait to perform a garbage
  1001      # collection on pending pods. Defaults to 10 minutes.
  1002      pod_pending_timeout: 0s
  1003      # PodRunningTimeout defines how long the controller will wait to abort a prowjob pod
  1004      # stuck in running state. Defaults to two days.
  1005      pod_running_timeout: 0s
  1006      # PodUnscheduledTimeout defines how long the controller will wait to abort a prowjob
  1007      # stuck in an unscheduled state. Defaults to 5 minutes.
  1008      pod_unscheduled_timeout: 0s
  1009      # ReportTemplateString compiles into ReportTemplate at load time.
  1010      report_template: ' '
  1011      # ReportTemplateStrings is a mapping of template comments.
  1012      # Use `org/repo`, `org` or `*` as a key.
  1013      report_templates:
  1014          "": ""
  1015  # PodNamespace is the namespace in the cluster that prow
  1016  # components will use for looking up Pods owned by ProwJobs.
  1017  # The namespace needs to exist and will not be created by prow.
  1018  # Defaults to "default".
  1019  pod_namespace: ' '
  1020  # ProwJobDefaultEntries holds a list of defaults for specific values
  1021  # Each entry in the slice specifies Repo and CLuster regexp filter fields to
  1022  # match against the jobs and a corresponding ProwJobDefault . All entries that
  1023  # match a job are used. Later matching entries override the fields of earlier
  1024  # matching entires.
  1025  prowjob_default_entries:
  1026      - # Cluster matches against the cluster alias of the build cluster that the
  1027        # ProwJob is configured to run on. Recall that ProwJobs default to running on
  1028        # the "default" build cluster if they omit the "cluster" field in config.
  1029        cluster: ' '
  1030        # Config is the ProwJobDefault to apply if the filter fields all match the
  1031        # ProwJob. Note that when multiple entries match a ProwJob they are all used
  1032        # by sequentially merging with later entries overriding fields from earlier
  1033        # entries.
  1034        config:
  1035          resultstore_config:
  1036              # ProjectID specifies the ResultStore InvocationAttributes.ProjectID, used
  1037              # for various quota and GUI access control purposes.
  1038              # In practice, it is generally the same as the Google Cloud Project ID or
  1039              # number of the job's GCS storage bucket.
  1040              # Required to upload results to ResultStore.
  1041              project_id: ' '
  1042          tenant_id: ' '
  1043        # OrgRepo matches against the "org" or "org/repo" that the presubmit or postsubmit
  1044        # is associated with. If the job is a periodic, extra_refs[0] is used. If the
  1045        # job is a periodic without extra_refs, the empty string will be used.
  1046        # If this field is omitted all jobs will match.
  1047        repo: ' '
  1048  # ProwJobNamespace is the namespace in the cluster that prow
  1049  # components will use for looking up ProwJobs. The namespace
  1050  # needs to exist and will not be created by prow.
  1051  # Defaults to "default".
  1052  prowjob_namespace: ' '
  1053  # Pub/Sub Subscriptions that we want to listen to.
  1054  pubsub_subscriptions:
  1055      "": null
  1056  # PubSubTriggers defines Pub/Sub Subscriptions that we want to listen to,
  1057  # can be used to restrict build cluster on a topic.
  1058  pubsub_triggers:
  1059      - allowed_clusters:
  1060          - ""
  1061        max_outstanding_messages: 0
  1062        project: ' '
  1063        topics:
  1064          - ""
  1065  # PushGateway is a prometheus push gateway.
  1066  push_gateway:
  1067      # Endpoint is the location of the prometheus pushgateway
  1068      # where prow will push metrics to.
  1069      endpoint: ' '
  1070      # Interval specifies how often prow will push metrics
  1071      # to the pushgateway. Defaults to 1m.
  1072      interval: 0s
  1073      # ServeMetrics tells if or not the components serve metrics.
  1074      serve_metrics: false
  1075  # Scheduler contains configuration for the additional scheduler.
  1076  # It has to be explicitly enabled.
  1077  scheduler:
  1078      enabled: true
  1079      # Scheduling strategies
  1080      failover:
  1081          # ClusterMappings maps a cluster to another one. It is used when we
  1082          # want to schedule a ProJob to a cluster other than the one it was
  1083          # configured to in the first place.
  1084          mappings:
  1085              "": ""
  1086  sinker:
  1087      # ExcludeClusters are build clusters that don't want to be managed by sinker.
  1088      exclude_clusters:
  1089          - ""
  1090      # MaxPodAge is how old a Pod can be before it is garbage-collected.
  1091      # Defaults to one day.
  1092      max_pod_age: 0s
  1093      # MaxProwJobAge is how old a ProwJob can be before it is garbage-collected.
  1094      # Defaults to one week.
  1095      max_prowjob_age: 0s
  1096      # ResyncPeriod is how often the controller will perform a garbage
  1097      # collection. Defaults to one hour.
  1098      resync_period: 0s
  1099      # TerminatedPodTTL is how long a Pod can live after termination before it is
  1100      # garbage collected.
  1101      # Defaults to matching MaxPodAge.
  1102      terminated_pod_ttl: 0s
  1103  slack_reporter_configs:
  1104      "":
  1105          channel: ' '
  1106          host: ' '
  1107          job_states_to_report:
  1108              - ""
  1109          job_types_to_report:
  1110              - ""
  1111          report: false
  1112          report_template: ' '
  1113  # StatusErrorLink is the url that will be used for jenkins prowJobs that can't be
  1114  # found, or have another generic issue. The default that will be used if this is not set
  1115  # is: https://github.com/kubernetes/test-infra/issues.
  1116  status_error_link: ' '
  1117  tide:
  1118      # BatchSizeLimitMap is a key/value pair of an org or org/repo as the key and
  1119      # integer batch size limit as the value. Use "*" as key to set a global default.
  1120      # Special values:
  1121      # 0 => unlimited batch size
  1122      # -1 => batch merging disabled :(
  1123      batch_size_limit:
  1124          "": 0
  1125      # BlockerLabel is an optional label that is used to identify merge blocking
  1126      # GitHub issues.
  1127      # Leave this blank to disable this feature and save 1 API token per sync loop.
  1128      blocker_label: ' '
  1129      # TideContextPolicyOptions defines merge options for context. If not set it will infer
  1130      # the required and optional contexts from the prow jobs configured and use the github
  1131      # combined status; otherwise it may apply the branch protection setting or let user
  1132      # define their own options in case branch protection is not used.
  1133      context_options:
  1134          # Infer required and optional jobs from Branch Protection configuration
  1135          from-branch-protection: false
  1136          optional-contexts:
  1137              - ""
  1138          # GitHub Orgs
  1139          orgs:
  1140              "":
  1141                  # Infer required and optional jobs from Branch Protection configuration
  1142                  from-branch-protection: false
  1143                  optional-contexts:
  1144                      - ""
  1145                  repos:
  1146                      "":
  1147                          branches:
  1148                              "":
  1149                                  # Infer required and optional jobs from Branch Protection configuration
  1150                                  from-branch-protection: false
  1151                                  optional-contexts:
  1152                                      - ""
  1153                                  required-contexts:
  1154                                      - ""
  1155                                  required-if-present-contexts:
  1156                                      - ""
  1157                                  # whether to consider unknown contexts optional (skip) or required.
  1158                                  skip-unknown-contexts: false
  1159                          # Infer required and optional jobs from Branch Protection configuration
  1160                          from-branch-protection: false
  1161                          optional-contexts:
  1162                              - ""
  1163                          required-contexts:
  1164                              - ""
  1165                          required-if-present-contexts:
  1166                              - ""
  1167                          # whether to consider unknown contexts optional (skip) or required.
  1168                          skip-unknown-contexts: false
  1169                  required-contexts:
  1170                      - ""
  1171                  required-if-present-contexts:
  1172                      - ""
  1173                  # whether to consider unknown contexts optional (skip) or required.
  1174                  skip-unknown-contexts: false
  1175          required-contexts:
  1176              - ""
  1177          required-if-present-contexts:
  1178              - ""
  1179          # whether to consider unknown contexts optional (skip) or required.
  1180          skip-unknown-contexts: false
  1181      # DisplayAllQueriesInStatus controls if Tide should mention all queries in the status it
  1182      # creates. The default is to only mention the one to which we are closest (Calculated
  1183      # by total number of requirements - fulfilled number of requirements).
  1184      display_all_tide_queries_in_status: true
  1185      gerrit:
  1186          queries:
  1187              - filters:
  1188                  branches:
  1189                      - ""
  1190                  excluded_branches:
  1191                      - ""
  1192                  opt_in_by_default: true
  1193                opt_out_help: true
  1194                org: ' '
  1195                repos:
  1196                  - ""
  1197      # A key/value pair of an org/repo as the key and Go template to override
  1198      # the default merge commit title and/or message. Template is passed the
  1199      # PullRequest struct (prow/github/types.go#PullRequest)
  1200      merge_commit_template:
  1201          "":
  1202              body: ' '
  1203              title: ' '
  1204      # MergeLabel is an optional label that is used to identify PRs that should
  1205      # always be merged with all individual commits from the PR.
  1206      # Leave this blank to disable this feature.
  1207      merge_label: ' '
  1208      # A key/value pair of an org/repo as the key and merge method to override
  1209      # the default method of merge. Valid options are squash, rebase, and merge.
  1210      merge_method:
  1211          "": ' '
  1212      # PRStatusBaseURL is the base URL for the PR status page.
  1213      # This is used to link to a merge requirements overview
  1214      # in the tide status context.
  1215      # Will be deprecated on June 2020.
  1216      pr_status_base_url: ' '
  1217      # PRStatusBaseURLs is the base URL for the PR status page
  1218      # mapped by org or org/repo level.
  1219      pr_status_base_urls:
  1220          "": ""
  1221      # PrioritizeExistingBatches configures on org or org/repo level if Tide should continue
  1222      # testing pre-existing batches instead of immediately including new PRs as they become
  1223      # eligible. Continuing on an old batch allows to re-use all existing test results whereas
  1224      # starting a new one requires to start new instances of all tests.
  1225      # Use '*' as key to set this globally. Defaults to true.
  1226      prioritize_existing_batches:
  1227          "": false
  1228      # Priority is an ordered list of sets of labels that would be prioritized before other PRs
  1229      # PRs should match all labels contained in a set to be prioritized. The first entry has
  1230      # the highest priority.
  1231      priority:
  1232          - labels:
  1233              - ""
  1234      # Queries represents a list of GitHub search queries that collectively
  1235      # specify the set of PRs that meet merge requirements.
  1236      queries:
  1237          - author: ' '
  1238            excludedBranches:
  1239              - ""
  1240            excludedRepos:
  1241              - ""
  1242            includedBranches:
  1243              - ""
  1244            labels:
  1245              - ""
  1246            milestone: ' '
  1247            missingLabels:
  1248              - ""
  1249            orgs:
  1250              - ""
  1251            repos:
  1252              - ""
  1253            reviewApprovedRequired: true
  1254      # RebaseLabel is an optional label that is used to identify PRs that should
  1255      # always be rebased and merged.
  1256      # Leave this blank to disable this feature.
  1257      rebase_label: ' '
  1258      # SquashLabel is an optional label that is used to identify PRs that should
  1259      # always be squash merged.
  1260      # Leave this blank to disable this feature.
  1261      squash_label: ' '
  1262      # StatusUpdatePeriod specifies how often Tide will update GitHub status contexts.
  1263      # Defaults to the value of SyncPeriod.
  1264      status_update_period: 0s
  1265      # SyncPeriod specifies how often Tide will sync jobs with GitHub. Defaults to 1m.
  1266      sync_period: 0s
  1267      # URL for tide status contexts.
  1268      # We can consider allowing this to be set separately for separate repos, or
  1269      # allowing it to be a template.
  1270      target_url: ' '
  1271      # TargetURLs is a map from "*", <org>, or <org/repo> to the URL for the tide status contexts.
  1272      # The most specific key that matches will be used.
  1273      # This field is mutually exclusive with TargetURL.
  1274      target_urls:
  1275          "": ""