Skip to content

Latest commit

 

History

History
79 lines (57 loc) · 3.31 KB

releasing.md

File metadata and controls

79 lines (57 loc) · 3.31 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 k8s.gcr.io/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 k8s.gcr.io/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

    NOTE: To use your GPG signature when pushing the tag, use git tag -s [...] instead)

    • git tag -a v0.x.y -m v0.x.y
    • git tag test/v0.x.y (:warning: MUST NOT be an annotated tag)
  2. Push the tag to the GitHub repository

    NOTE: origin should be the name of the remote pointing to github.com/kubernetes-sigs/cluster-api

    • git push origin v0.x.y
    • git push origin test/v0.x.y
  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 k8s.gcr.io/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