Prerequisite

Release

Versioning

Please use this semantic version:

  • Pre-release: v0.1.1-alpha.1
  • Minor release: v0.1.0
  • Patch release: v0.1.1
  • Major release: v1.0.0

Update metadata.yaml

You should have update metadata.yaml to included new release version for cluster-api contract-version. You don’t have to do it for patch/minor version. Add in metadata.yaml:

apiVersion: clusterctl.cluster.x-k8s.io/v1alpha3
releaseSeries:
...
  - major: 1
    minor: 5
    contract: v1beta1

Update config test

Please also update type: InfrastructureProvider spec of config.

Create a tag

Create a new branch for release. :warning: Never use the main And create tag

For patch/major release:

git checkout release-1.x
git fetch upstream
git rebase upstream/release-1.x

Create tag with git:

export RELEASE_TAG=v1.2.3
git tag -s ${RELEASE_TAG} -m "${RELEASE_TAG}
git push upstream ${RELEASE_TAG}

This will trigger this github action release This github action will generate image, and will create the new release.

Test locally

If you want to test locally what is done by github action you can test you get changelog:

make release
make release-changelog