Skip to content

Latest commit

 

History

History
61 lines (46 loc) · 4.46 KB

RELEASE.md

File metadata and controls

61 lines (46 loc) · 4.46 KB

Releasing

Output

Expected artifacts

  1. A container image of the cluster-api-provider-openstack controller manager

Artifact locations

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

Process

  1. Make sure your repo is clean by git's standards.
  2. Make sure you are on the correct branch (master for the current release and release-0.x for older releases).
  3. Set an environment variable with the version, e.g.:
    • VERSION=v0.4.0
  4. Create an annotated tag
    • git tag -s -a $VERSION -m $VERSION.
  5. Push the tag to the GitHub repository:

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

    • git push upstream $VERSION
  6. Run make release to build artifacts (the image is automatically built by CI)
  7. Follow the image promotion process to promote the image from the staging repo to k8s.gcr.io/capi-openstack. The staging repository can be inspected at https://console.cloud.google.com/gcr/images/k8s-staging-capi-openstack/GLOBAL. Be sure to choose the top level capi-openstack-controller, which will provide the multi-arch manifest, rather than one for a specific architecture. The image build logs are available at Cloud Build. Add the new sha=>tag mapping to the images.yaml (use the sha of the image with the corresponding tag)
  8. Create a draft release in GitHub based on the tag created above
  9. Generate and finalize the release notes and add them to the draft release:
    • Run make release-notes to gather changes since the last revision. If you need to specify a specific tag to look for changes since, use make release-notes RELEASE_NOTES_ARGS="--from <tag>".
    • Pay close attention to the ## :question: Sort these by hand section, as it contains items that need to be manually sorted.
  10. Attach the following files to the draft release:
    • ./out/infrastructure-components.yaml
    • ./out/cluster-template.yaml
    • ./out/cluster-template-external-cloud-provider.yaml
    • ./out/cluster-template-without-lb.yaml
    • ./out/metadata.yaml
  11. Publish release. Use the pre-release option for release candidate or beta versions.

Permissions

Releasing requires a particular set of permissions.

Staging

There is a post-submit Prow job running after each commit on master which pushes a new image to the staging repo (gcr.io/k8s-staging-capi-openstack/capi-openstack-controller:latest). Following configuration is involved: