For all releases Github Workflow Test Matrix Checkup
[ ] Check the testing workflow (.github/workflows/test.yaml) and ensure that all matrix versions (.github/workflows/e2e.yaml and .github/workflows/release.yaml) are up to date for various component releases. If there have been any new releases (major, minor or patch) of those components since the latest version seen in that configuration make sure the new versions get added before proceeding with the release. Remove any versions that are no longer supported by the environment provider.
[x] Kubernetes (via KIND and the latest image available when creating a new rapid channel cluster from the GKE new cluster wizard)
[x] Note: it might be possible that the latest Gateway version is not compatible with KIC and code changes are required. In such case, a decision whether to release with no compliance with the latest Gateway version should be made on a team level.
[x] Check the latest minor Kong Gateway release in Kong releases.
[ ] Make sure the image tag in config/image/enterprise/kustomization.yaml, config/image/oss/kustomization.yaml, and config/variants/enterprise/kustomization.yaml is updated accordingly.
[x] Run make manifests to regenerate manifests using the modified kustomizations and open a PR with the changes (similarly to this PR).
For all releases Create prepare-release/x.y.z Branch
[ ] Ensure that you have up to date copy of main: git checkout main; git pull or a targeted release branch e.g. release/2.7.x: git checkout release/2.7.x; git pull
[x] Create the prepare-release branch for the version (e.g. prepare-release/2.7.1): git branch -m prepare-release/2.7.1
[x] 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. If there were any RC releases before this version, fold their changes into the final release entry.
[x] Resolve all licensing issues that FOSSA has detected. Go to Issues tab in FOSSA's KIC project and resolve every issue, inspecting if it's a false positive or not. ignored.go script should be useful to look for issues that have been already resolved and reappeared due to version changes.
~- [ ] Update ignored.json following instructions in [README]~(https://github.com/Kong/team-k8s/blob/main/fossa/README.md).
~- [ ] Retrieve the latest license report from FOSSA and save it to LICENSES (go to Reports tab in FOSSA's KIC project, select 'plain text' format, tick 'direct dependencies' and download it).~
Not related to this patch version
We currently don't run FOSSA reports for branches other than main, this should be reconciled by https://github.com/Kong/team-k8s/issues/283
~- [ ] Ensure base manifest versions use the new version (config/image/enterprise/kustomization.yaml and config/image/oss/kustomization.yaml) and update manifest files: make manifests~
[ ] Push the branch up to the remote: git push --set-upstream origin prepare-release/x.y.z
[x] Once the PR is merged (the prepare-release/x.y.z branch will get automatically removed), approve and merge the automatic backport PR and initiate a release job on the release branch. Your tag must use vX.Y.Z format. Set latest to true if this will be the latest release.
[x] CI will validate the requested version, build and push an image, and run tests against the image before finally creating a tag and publishing a release. If tests fail, CI will push the image but not the tag or release. Investigate the failure, correct it as needed, and start a new release job.
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
Steps
[ ] Check out your release tag.
[ ] Run make container. Note that you can set the TAG 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)
Release Type
patch
For all releases Github Workflow Test Matrix Checkup
Bump Kong Gateway version in manifests
config/image/enterprise/kustomization.yaml
,config/image/oss/kustomization.yaml
, andconfig/variants/enterprise/kustomization.yaml
is updated accordingly.make manifests
to regenerate manifests using the modified kustomizations and open a PR with the changes (similarly to this PR).For all releases Create
prepare-release/x.y.z
Branchmain
:git checkout main; git pull
or a targeted release branch e.g.release/2.7.x
:git checkout release/2.7.x; git pull
prepare-release
branch for the version (e.g.prepare-release/2.7.1
):git branch -m prepare-release/2.7.1
main
, this should be reconciled by https://github.com/Kong/team-k8s/issues/283 ~- [ ] Ensure base manifest versions use the new version (config/image/enterprise/kustomization.yaml
andconfig/image/oss/kustomization.yaml
) and update manifest files:make manifests
~git push --set-upstream origin prepare-release/x.y.z
For all releases Create a Release Pull Request
ci/run-e2e
label on the PR preparing the release.main
. Set abackport release/X.Y.Z
label.release/2.9.x
) compared against the latest patch for this minor release (e.g.v2.9.0
) includes the expected changes that the release should include (e.g. by checking https://github.com/kong/kubernetes-ingress-controller/compare/v2.9.0..release/2.9.x).prepare-release/x.y.z
branch will get automatically removed), approve and merge the automatic backport PR and initiate a release job on the release branch. Your tag must usevX.Y.Z
format. Setlatest
to true if this will be the latest release.Release Troubleshooting
The Release Troubleshooting guide covers strategies for dealing with a release that has failed.
Manual Docker image build
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
Steps
make container
. Note that you can set theTAG
environment variable if you need to override the current tag in Makefile.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
)kongbot
user (see 1Password) and log in using it.docker push kong/kubernetes-ingress-controller:1.2.0-alpine
)