For all releases
For this step we're going to start with the main
branch to create our release branch (e.g. release/X.Y.Z
) which will later be submitted as a pull request back to main
.
- ensure that you have up to date copy of
main
:git fetch --all
- create the release branch for the version (e.g.
release/1.3.1
):git branch -m release/x.y.z
- Make any final adjustments to CHANGELOG.md. Double-check that dates are correct, that link anchors point to the correct header, and that you've included a link to the Github compare link at the end.
- ensure base manifest versions use the new version and update manifest files:
./hack/build-single-manifests.sh
- update the
TAG
variable in theMakefile
to the new version release and commit the change - push the branch up to the remote:
git push --set-upstream origin release/x.y.z
For all releases
- Open a PR from your branch to
main
(patch) - Once the PR is merged, tag your release:
git fetch --all && git tag origin/main 1.3.1 && git push origin --tags
- Wait for CI to build images and push them to Docker Hub
For all releases
- verify that CI is passing for
main
first: if there are CI errors on main they must be investigated and fixed - draft a new release, using a title and body similar to previous releases. Use your existing tag.
- for new
major
version releases create a new branch (e.g.1.3.x
) from the release tag and push it - for
minor
andpatch
version releases rebase the release tag onto the release branch:git checkout 1.3.x && git rebase 1.3.1 && git push
For major/minor releases only
- Create a new branch in the documentation site repo.
- Copy
app/kubernetes-ingress-controller/OLD_VERSION
toapp/kubernetes-ingress-controller/NEW_VERSION
. - Update articles in the new version as needed.
- Update
references/version-compatibility.md
to include the new version. - Copy
app/_data/docs_nav_kic_OLDVERSION.yml
toapp/_data/docs_nav_kic_NEWVERSION.yml
. Add entries for any new articles. - Add a section to
app/_data/kong_versions.yml
for your version. - Open a PR from your branch.
If the "Build and push development images" Github action is not appropriate for your release, or is not operating properly, you can build and push Docker images manually:
- Check out your release tag.
- Run
make container
. Note that you can set theTAG
environment variable if you need to override the current tag in Makefile. - Add additional tags for your container (e.g.
docker tag kong/kubernetes-ingress-controller:1.2.0-alpine kong/kubernetes-ingress-controller:1.2.0; docker tag kong/kubernetes-ingress-controller:1.2.0-alpine kong/kubernetes-ingress-controller:1.2
) - Create a temporary token for the
kongbot
user (see 1Password) and log in using it. - Push each of your tags (e.g.
docker push kong/kubernetes-ingress-controller:1.2.0-alpine
)