Skip to content

Latest commit

 

History

History
75 lines (53 loc) · 3.27 KB

releasing.md

File metadata and controls

75 lines (53 loc) · 3.27 KB

Releasing

Prerequisites

gcloud

With gcloud, run gcloud auth login and select your account listed here. Open a PR if your account is not listed there but you believe it should be.

docker

Enable the experimental features for the docker CLI by setting the appropriate environment variable.

export DOCKER_CLI_EXPERIMENTAL=enabled

Output

Expected artifacts

  1. A container image of the shared cluster-api controller manager
  2. A git tag for providers to use

Artifact locations

  1. The container image is found in the registry us.gcr.io/k8s-artifacts-prod/cluster-api/ with an image name of cluster-api-controller and a tag that matches the release version. For example, in the v0.1.5 release, the container image location is us.gcr.io/k8s-artifacts-prod/cluster-api/cluster-api-controller:v0.1.5

  2. Prior to the v0.1.5 release, the container image is found in the registry gcr.io/k8s-cluster-api with an image name of cluster-api-controller and a tag that matches the release version. For example, in the v0.1.4 release, the container image location is gcr.io/k8s-cluster-api/cluster-api-controller:v0.1.4

  3. Prior to the v0.1.4 release, the container image is found in the registry gcr.io/k8s-cluster-api with an image name of cluster-api-controller and a tag that matches the release version. For example, in the 0.1.3 release, the container image location is gcr.io/k8s-cluster-api/cluster-api-controller:0.1.3

Process

For version v0.x.y:

  1. Create an annotated tag git tag -a v0.x.y -m v0.x.y
    1. To use your GPG signature when pushing the tag, use git tag -s [...] instead
  2. Push the tag to the GitHub repository git push origin v0.x.y
    1. NB: origin should be the name of the remote pointing to github.com/kubernetes-sigs/cluster-api
  3. Run make release to build artifacts (the image is automatically built by CI)
  4. Follow the Image Promotion process to promote the image from the staging repo to us.gcr.io/k8s-artifacts-prod/cluster-api
  5. Create a release in GitHub based on the tag created above
  6. Release notes can be created by running make release-notes, which will generate an output that can be copied to the drafted release in GitHub. Pay close attention to the ## :question: Sort these by hand section, as it contains items that need to be manually sorted.

Permissions

Releasing requires a particular set of permissions.

  • Push access to the staging gcr bucket
  • Tag push access to the GitHub repository
  • GitHub Release creation access