|
| 1 | +--- |
| 2 | +name: Release a new minor version of Cilium from a stable branch |
| 3 | +about: Create a checklist for an upcoming release |
| 4 | +title: 'v1.10.0 release' |
| 5 | +labels: kind/release |
| 6 | +assignees: '' |
| 7 | + |
| 8 | +--- |
| 9 | + |
| 10 | +## Setup preparation |
| 11 | + |
| 12 | +- [ ] Depending on your OS, make sure Docker is running |
| 13 | +- [ ] Export a [`GITHUB_TOKEN`](https://github.com/settings/tokens/new?description=Cilium%20Release%20Script&scopes=write:org,public_repo) that has access to the repository |
| 14 | +- [ ] Make sure a setup (GPG, SSH, S/MIME) is in place for [signing tags] with Git |
| 15 | +- [ ] Make sure the `GOPATH` environment variable is set and pointing to the relevant path |
| 16 | +- [ ] Make sure the [Cilium helm charts][Cilium charts] and [release][Cilium release-notes tool] repositories are installed locally: |
| 17 | + - [ ] Run `git clone https://github.com/cilium/charts.git "$GOPATH/src/github.com/cilium/charts"` |
| 18 | + - [ ] Run `git clone https://github.com/cilium/release.git "$GOPATH/src/github.com/cilium/release"` |
| 19 | + - [ ] If you already have the repo checked out, make sure the `release` binary is up to date: |
| 20 | + |
| 21 | + git checkout master && git pull && make |
| 22 | + |
| 23 | +## Pre-release |
| 24 | + |
| 25 | +- [ ] Announce in Cilium slack channel #launchpad: `Starting v1.10.0 release process :ship:` |
| 26 | +- [ ] Create a thread for that message and ping current top-hat to not merge any |
| 27 | + PRs until the release process is complete. |
| 28 | +- [ ] Change directory to the local copy of Cilium repository. |
| 29 | +- [ ] Check that there are no [release blockers] for the targeted release version |
| 30 | +- [ ] Ensure that outstanding [backport PRs] are merged |
| 31 | +- [ ] Check with @cilium/security team if there are any security fixes to include |
| 32 | + in the release. |
| 33 | +- [ ] Execute `release --current-version 1.10.0 --next-dev-version 1.10.1` to |
| 34 | + automatically move any unresolved issues/PRs from old release project |
| 35 | + into the new project. The `release` binary is located in the |
| 36 | + [current repository][Cilium release-notes tool]. |
| 37 | +- [ ] Push a PR including the changes necessary for the new release: |
| 38 | + - [ ] Pull latest changes from the branch being released |
| 39 | + - [ ] The next step will generate a `CHANGELOG.md` that will not be correct. |
| 40 | + That is expected, and it is fixed with a follow-up step. Don't worry. |
| 41 | + - [ ] Run `../release/internal/start-release.sh 1.10.0 <GH-PROJECT> 1.9` |
| 42 | + Note that this script produces some files at the root of the Cilium |
| 43 | + repository, and that these files are required at a later step for |
| 44 | + tagging the release. |
| 45 | + - [ ] `rm CHANGELOG.md` |
| 46 | + - [ ] Regenerate the log since the previous release with `prep-changelog.sh <last-patch-release> v1.10.0` |
| 47 | + - [ ] Check and edit the `CHANGELOG.md` to ensure all PRs have proper release notes |
| 48 | + - [ ] Edit the `v1.10.0-changes.txt` files locally to replace the text with "See CHANGELOG.md for more details" |
| 49 | + - [ ] Add the 'stable' tag as part of the GitHub workflow and remove the |
| 50 | + 'stable' tag from the last stable branch. |
| 51 | + - [ ] Commit all changes with title `Prepare for release v1.10.0` |
| 52 | + - [ ] Submit PR (`../release/internal/submit-release.sh`) |
| 53 | + - [ ] Submit a PR that removes the 'stable' tag from the last stable branch. |
| 54 | +- [ ] Merge PR |
| 55 | +- [ ] Create and push *both* tags to GitHub (`v1.10.0`, `1.10.0`) |
| 56 | + - [ ] Pull latest branch locally and run `../release/internal/tag-release.sh`. |
| 57 | +- [ ] Ask a maintainer to approve the build in the following link (keep the URL |
| 58 | + of the GitHub run to be used later): |
| 59 | + [Cilium Image Release builds](https://github.com/cilium/cilium/actions?query=workflow:%22Image+Release+Build%22) |
| 60 | + - [ ] Check if all docker images are available before announcing the release: |
| 61 | + `make -C install/kubernetes/ check-docker-images` |
| 62 | +- [ ] Get the image digests from the build process and make a commit and PR with |
| 63 | + these digests. |
| 64 | + - [ ] Run `../release/internal/post-release.sh URL` to fetch the image |
| 65 | + digests and submit a PR to update these, use the `URL` of the GitHub |
| 66 | + run here |
| 67 | + - [ ] Get someone to review the PR. Do not trigger the full CI suite, but |
| 68 | + wait for the automatic checks to complete. Merge the PR. |
| 69 | +- [ ] Update helm charts |
| 70 | + - [ ] Create helm charts artifacts in [Cilium charts] repository using |
| 71 | + [cilium helm release tool] for the `v1.10.0` release. |
| 72 | + - [ ] Check the output of the [chart workflow] and see if the test was |
| 73 | + successful. |
| 74 | +- [ ] Check [read the docs] configuration: |
| 75 | + - [ ] Set the [default version] and mark the EOL version as active, and |
| 76 | + hidden and configure the new minor version as active and **not** |
| 77 | + hidden in [active versions]. |
| 78 | + - [ ] Update algolia configuration search in [docsearch-scraper-webhook]. |
| 79 | +- [ ] Check draft release from [releases] page |
| 80 | + - [ ] Update the text at the top with 2-3 highlights of the release |
| 81 | + - [ ] Publish the release |
| 82 | +- [ ] Announce the release in #general on Slack (Use [@]channel for v1.10.0) |
| 83 | +- [ ] Update Grafana dashboards |
| 84 | + |
| 85 | +## Post-release |
| 86 | + |
| 87 | +- [ ] Update the upgrade guide and [roadmap](https://github.com/cilium/cilium/blob/main/Documentation/community/roadmap.rst) for any features that changed status. |
| 88 | +- [ ] For new minor version update [security policy] |
| 89 | +- [ ] Prepare post-release changes to main branch using `../release/internal/bump-readme.sh` |
| 90 | + - [ ] Make sure to update the `.github/maintainers-little-helper.yaml` so that |
| 91 | + upcoming PRs are tracked correctly for the next release. |
| 92 | + - [ ] Bump the main testsuite to upgrade from v1.10 branch to main |
| 93 | + - [ ] `echo 1.10.0 > stable.txt`. |
| 94 | + - [ ] `echo '{"results":[{"slug":"v1.10"}]}' > Documentation/_static/stable-version.json`. |
| 95 | + - [ ] Commit / amend the commit to add all of the changes above and push the PR. |
| 96 | + - [ ] Merge the post-release PR. |
| 97 | +- [ ] Notify #development on Slack that deprecated features may now be removed. |
| 98 | +- [ ] This is the list of links for known external installers that depend on |
| 99 | + the release process. Ideally, work toward updating external tools and |
| 100 | + guides to point to the new Cilium version. If you find where to submit |
| 101 | + the update, please add the relevant links to this template. |
| 102 | + - [kops] |
| 103 | + - [kubespray] |
| 104 | + - [network policy] |
| 105 | + - [cluster administration networking] |
| 106 | + - [cluster administration addons] |
| 107 | + |
| 108 | + |
| 109 | +[signing tags]: https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-tags |
| 110 | +[release blockers]: https://github.com/cilium/cilium/labels/release-blocker%2F1.10 |
| 111 | +[backport PRs]: https://github.com/cilium/cilium/pulls?q=is%3Aopen+is%3Apr+label%3Abackport%2F1.10 |
| 112 | +[Cilium release-notes tool]: https://github.com/cilium/release |
| 113 | +[Cilium charts]: https://github.com/cilium/charts |
| 114 | +[releases]: https://github.com/cilium/cilium/releases |
| 115 | +[kops]: https://github.com/kubernetes/kops/ |
| 116 | +[kubespray]: https://github.com/kubernetes-sigs/kubespray/ |
| 117 | +[cilium helm release tool]: https://github.com/cilium/charts/blob/master/RELEASE.md |
| 118 | +[cilium-runtime images]: https://quay.io/repository/cilium/cilium-runtime |
| 119 | +[read the docs]: https://readthedocs.org/projects/cilium/ |
| 120 | +[active versions]: https://readthedocs.org/projects/cilium/versions/ |
| 121 | +[default version]: https://readthedocs.org/dashboard/cilium/advanced/ |
| 122 | +[docsearch-scraper-webhook]: https://github.com/cilium/docsearch-scraper-webhook |
| 123 | +[security policy]: https://github.com/cilium/cilium/security/policy |
| 124 | +[network policy]: https://kubernetes.io/docs/tasks/administer-cluster/network-policy-provider/cilium-network-policy/ |
| 125 | +[cluster administration networking]: https://kubernetes.io/docs/concepts/cluster-administration/networking/ |
| 126 | +[cluster administration addons]: https://kubernetes.io/docs/concepts/cluster-administration/addons/ |
| 127 | +[chart workflow]: https://github.com/cilium/charts/actions/workflows/validate-cilium-chart.yaml |
0 commit comments