Release process#
This document describes the steps required to make a new release of k0smotron. It covers tagging in Git, creating a GitHub Release, building and publishing assets (container images, CRD and install manifests) and publishing documentation.
Preparation#
Before starting a release, ensure that:
- All planned changes have been merged into the
mainbranch. - CI is passing and the
mainbranch is green. - The
metadata.yamlfiles have been updated for the new release series if you are making a new major or minor release.
Create a Git tag#
Tag the current main branch following semantic versioning (for example v1.6.0). Then push the tag to GitHub:
git checkout main
git pull --ff-only origin main
git tag vX.Y.Z
git push origin vX.Y.Z
Draft GitHub Release#
Pushing the tag triggers the GitHub Actions workflow defined in .github/workflows/release.yml. This workflow:
- Creates a draft GitHub Release for the new tag.
- Builds and pushes multi-architecture container images to
quay.io/k0sproject/k0smotronandghcr.io/k0sproject/k0smotron. - Generates and uploads release assets:
metadata.yamlbootstrap-components.yamlcontrol-plane-components.yamlinfrastructure-components.yamlcluster-template.yamlcluster-template-hcp.yaml
Note
Draft releases allow you to review and edit the release notes before publishing.
After the workflow completes, go to the draft release on GitHub, update the release notes (highlights, change log, known issues, etc.), and click Publish release.
Publish documentation#
Once the GitHub Release is published, the documentation workflow (.github/workflows/publish-docs.yml) will automatically:
- Build and deploy the site using mike.
- Publish the newly tagged version.
- Update version aliases (
stable,main) and setstableas the default. - Update and commit the
install.yamlin thegh-pagesbranch under thestable/directory.
You can verify the documentation at https://docs.k0smotron.io/ after the workflow completes.
Post-release housekeeping#
If you are making a new major or minor release, after publishing the release, update the E2E upgrade test to reflect the new release version:
- Add new release in
k0smotronMinorVersionsToCheckUpgradesine2e/k0smotron_upgrade_test.go. - Add the new release entry under the
k0sproject-k0smotronprovider ine2e/config/docker.yaml(including matchingcontrol-plane-components.yamlandbootstrap-components.yamlURLs).