k8s.io/test-infra@v0.0.0-20240520184403-27c6b4c223d8/releng/README.md (about)

     1  # Release Engineering tooling <!-- omit in toc -->
     2  
     3  This directory contains tooling to generate Prow jobs.
     4  While some of this may be generically useful for other cases, the primary
     5  function of these tools is to generate release branch jobs after
     6  kubernetes/kubernetes releases which create new branches.
     7  
     8  > NOTE: The documentation here supersedes overlapping guidance from the
     9  [Release Manager handbooks][branch-manager-handbook] (which will be removed at
    10  a future date).
    11  
    12  - [Tools](#tools)
    13  - [Release branch jobs](#release-branch-jobs)
    14    - [Generate jobs](#generate-jobs)
    15    - [Update release dashboards](#update-release-dashboards)
    16    - [Check/resolve configuration errors](#checkresolve-configuration-errors)
    17    - [Create a pull request](#create-a-pull-request)
    18    - [Validate](#validate)
    19    - [Announce](#announce)
    20  
    21  ## Tools
    22  
    23  - [`generate_tests.py`](./generate_tests.py): Populates generated jobs based on
    24    the configurations specified in [`test_config.yaml`](./test_config.yaml)
    25  - [`prepare_release_branch.py`](./releng/prepare_release_branch.py): Generates
    26    release branch jobs using `config-forker` and `config-rotator`
    27  - [`config-forker`](./config-forker/README.md): Forks presubmit, periodic, and
    28    postsubmit job configs with the `fork-per-release` annotation
    29  - [`config-rotator`](./config-rotator/README.md): Rotates forked presubmit,
    30    periodic, and postsubmit job configs created by `config-forker`
    31  
    32  ## Release branch jobs
    33  
    34  **WARNING:** Release branch jobs generation for 1.28+ requires special steps
    35  that are yet to be documented. See [#29387](https://github.com/kubernetes/test-infra/pull/29387)
    36  and "TODO(1.31)" comments for more details.
    37  
    38  This task should be done after the release is complete and previous PRs are
    39  merged. The following steps should be run from the root of this repository.
    40  
    41  ### Generate jobs
    42  
    43  ```console
    44  make -C releng prepare-release-branch
    45  ```
    46  
    47  ### Update release dashboards
    48  
    49  Update release dashboards in the [Testgrid config](https://git.k8s.io/test-infra/config/testgrids/kubernetes/sig-release/config.yaml) ([example commit](https://github.com/kubernetes/test-infra/pull/15023/commits/cad8a3ce8ef3537568b12619634dff702b16cda7)).
    50  
    51  - Remove the oldest release `sig-release-<version>-{blocking,informing}` dashboards
    52  - Add dashboards for the current release e.g., `sig-release-1.23-{blocking,informing}`
    53  
    54  ### Check/resolve configuration errors
    55  
    56  ```console
    57  make verify
    58  ```
    59  
    60  ### Create a pull request
    61  
    62  Issue a PR with the new release branch job configurations ([example PR](https://github.com/kubernetes/test-infra/pull/15023)).
    63  
    64  ### Validate
    65  
    66  Once the PR has merged, verify that the new dashboards have been created and are populated with jobs.
    67  
    68  Examples:
    69  
    70  - [sig-release-1.27-blocking](https://testgrid.k8s.io/sig-release-1.27-blocking)
    71  - [sig-release-1.27-informing](https://testgrid.k8s.io/sig-release-1.27-informing)
    72  
    73  ### Announce
    74  
    75  [Announce in #sig-release and #release-management](https://kubernetes.slack.com/archives/C2C40FMNF/p1565746110248300?thread_ts=1565701466.241200&cid=C2C40FMNF) that this work has been completed.
    76  
    77  [branch-manager-handbook]: https://git.k8s.io/sig-release/release-engineering/role-handbooks/branch-manager.md