Releasing K8up
This repository contains code releases as well as Helm chart releases. They are using separate versioning scheme, each using SemVer.
|
Any Pull Request must clearly isolate code changes from Helm chart changes. Otherwise, there could be issues with the release automation and the generated changelog. |
|
Changes to the repository boilerplate, CI/CD or similar shall be considered as normal code change. |
|
The PR template reminds you how to separate and label PRs. |
Operator Release
The release process is automated all the way through.
Releasing a new version of the operator requires pushing a new Git tag, following the SemVer schema with a v prefix.
Optionally, for prereleases they may contain a ascending release candidate suffix with -rc#.
-
v0.1.2 -
v1.4.0 -
v2.0.0-rc1 -
v2.0.0-rc2 -
v2.0.0
The release notes will be automatically created and is based on merged PRs. PRs that affect Helm charts are excluded. The following labels must exist on a PR to be included in the release notes:
-
area:operator -
one of [
bug,enhancement,documentation,change,breaking,dependency]
Once the operator is released, consider creating another PR that updates the Helm chart with the newly-created release tag.
The following is the result:
-
A GitHub release with release notes based on the merged pull requests, only displaying changes between operator releases. The release contains the binary as well as the CRDs in YAML.
-
A build of the Docker image, which is pushed to GitHub Container Registry and Quay.io.
-
A new version selector in the documentation if the version is minor or major.
This process mostly relies on GoReleaser.
Helm Chart Release
Releasing a new version of a Helm chart requires pushing a new Git tag, following the SemVer schema with a chart name prefix, for example k8up-3.2.1.
It’s recommended to create a PR for each Helm chart change separately.
After merging a PR for a Helm chart it’s not required to immediately release it.
The PR should only contain changes in the charts/ directory.
Each affected chart must set the version in Chart.yaml to the same as the Git tag, following SemVer.
The chart README must be generated using make chart-docs to ensure that the README is generated using special comments in values.yaml.
-
k8up-2.2.3
The release notes will be automatically created and is based on merged PRs. PRs that affect code changes are excluded. The following labels must exist on a PR to be included in the release notes:
-
area:chart -
chart:k8up -
one of [
bug,enhancement,documentation,change,breaking,dependency]
If the Helm chart updates the image tag for the operator, it’s recommended to set a title like Update image tag to vx.y.z or similar and set the dependency label.
|
Prereleases for Helm charts are currently not supported. |
The result is a GitHub release with release notes based on the merged pull requests, only displaying changes between chart releases. The release contains the chart archive as well as the CRDs in YAML.