[ ] Run git clone https://github.com/cilium/charts.git "$GOPATH/src/github.com/cilium/charts"
[ ] Run git clone https://github.com/cilium/release.git "$GOPATH/src/github.com/cilium/release"
[ ] If you already have the repo checked out, make sure the release binary is up to date:
git checkout master && git pull && make
Pre-release
[ ] Announce in Cilium slack channel #launchpad: Starting vX.Y.0 release process :ship:
[ ] Create a thread for that message and ping current top-hat to not merge any
PRs until the release process is complete.
[ ] Change directory to the local copy of Cilium repository.
[ ] Check that there are no release blockers for the targeted release version
[ ] Ensure that outstanding backport PRs are merged
[ ] Check with @cilium/security team if there are any security fixes to include
in the release.
[ ] Execute release --current-version X.Y.0 --next-dev-version X.Y.1 to
automatically move any unresolved issues/PRs from old release project
into the new project. The release binary is located in the
current repository.
[ ] Push a PR including the changes necessary for the new release:
[ ] Pull latest changes from the branch being released
[ ] The next step will generate a CHANGELOG.md that will not be correct.
That is expected, and it is fixed with a follow-up step. Don't worry.
[ ] Run contrib/release/start-release.sh X.Y.0 <GH-PROJECT> X.Y-1
Note that this script produces some files at the root of the Cilium
repository, and that these files are required at a later step for
tagging the release.
[ ] rm CHANGELOG.md
[ ] Regenerate the log since the previous release with prep-changelog.sh <last-patch-release> vX.Y.0
[ ] Check and edit the CHANGELOG.md to ensure all PRs have proper release notes
[ ] Edit the vX.Y.0-changes.txt files locally to replace the text with "See CHANGELOG.md for more details"
[ ] Add the 'stable' tag as part of the GitHub workflow and remove the
'stable' tag from the last stable branch.
[ ] Commit all changes with title Prepare for release vX.Y.0
[ ] Submit PR (contrib/release/submit-release.sh)
[ ] Submit a PR that removes the 'stable' tag from the last stable branch.
[ ] Merge PR
[ ] Create and push both tags to GitHub (vX.Y.0, X.Y.0)
[ ] Pull latest branch locally and run contrib/release/tag-release.sh.
[ ] Ask a maintainer to approve the build in the following link (keep the URL
of the GitHub run to be used later):
Cilium Image Release builds
[ ] Check if all docker images are available before announcing the release:
make -C install/kubernetes/ check-docker-images
[ ] Get the image digests from the build process and make a commit and PR with
these digests.
[ ] Run contrib/release/post-release.sh URL to fetch the image
digests and submit a PR to update these, use the URL of the GitHub
run here
[ ] Get someone to review the PR. Do not trigger the full CI suite, but
wait for the automatic checks to complete. Merge the PR.
[ ] Update helm charts
[ ] Pull latest branch locally into the cilium repository.
[ ] Create helm charts artifacts in Cilium charts repository using
cilium helm release tool for the vX.Y.0 release. Make sure the
generated helm charts point to the commit that contains the image
digests.
[ ] Check the output of the chart workflow and see if the test was
successful.
[ ] Set the default version and mark the EOL version as active, and
hidden and configure the new minor version as active and not
hidden in active versions.
[ ] Prepare post-release changes to main branch using contrib/release/bump-readme.sh
[ ] Make sure to update the .github/maintainers-little-helper.yaml so that
upcoming PRs are tracked correctly for the next release.
[ ] Bump the main testsuite to upgrade from vX.Y branch to main
[ ] Notify #development on Slack that deprecated features may now be removed.
[ ] This is the list of links for known external installers that depend on
the release process. Ideally, work toward updating external tools and
guides to point to the new Cilium version. If you find where to submit
the update, please add the relevant links to this template.
Setup preparation
GITHUB_TOKEN
that has access to the repositoryGOPATH
environment variable is set and pointing to the relevant path[ ] Make sure the Cilium helm charts and release repositories are installed locally:
git clone https://github.com/cilium/charts.git "$GOPATH/src/github.com/cilium/charts"
git clone https://github.com/cilium/release.git "$GOPATH/src/github.com/cilium/release"
[ ] If you already have the repo checked out, make sure the
release
binary is up to date:git checkout master && git pull && make
Pre-release
Starting vX.Y.0 release process :ship:
release --current-version X.Y.0 --next-dev-version X.Y.1
to automatically move any unresolved issues/PRs from old release project into the new project. Therelease
binary is located in the current repository.CHANGELOG.md
that will not be correct. That is expected, and it is fixed with a follow-up step. Don't worry.contrib/release/start-release.sh X.Y.0 <GH-PROJECT> X.Y-1
Note that this script produces some files at the root of the Cilium repository, and that these files are required at a later step for tagging the release.rm CHANGELOG.md
prep-changelog.sh <last-patch-release> vX.Y.0
CHANGELOG.md
to ensure all PRs have proper release notesvX.Y.0-changes.txt
files locally to replace the text with "See CHANGELOG.md for more details"Prepare for release vX.Y.0
contrib/release/submit-release.sh
)vX.Y.0
,X.Y.0
)contrib/release/tag-release.sh
.make -C install/kubernetes/ check-docker-images
contrib/release/post-release.sh URL
to fetch the image digests and submit a PR to update these, use theURL
of the GitHub run herevX.Y.0
release. Make sure the generated helm charts point to the commit that contains the image digests.Post-release
contrib/release/bump-readme.sh
.github/maintainers-little-helper.yaml
so that upcoming PRs are tracked correctly for the next release.