|
18 | 18 | ## Process
|
19 | 19 |
|
20 | 20 |
|
21 |
| -1. Make sure your repo is clean by git's standards |
22 |
| -2. If this is a new minor release, create a new release branch and push to github, otherwise switch to it, for example `release-0.2` |
23 |
| -3. Run `make release-notes` to gather changes since the last revision. If you need to specify a specific tag to look for changes |
24 |
| - since, use `make 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. |
25 |
| -4. Tag the repository and push the tag `git tag -s -m $VERSION $VERSION; git push upstream $VERSION` |
26 |
| -5. Create a draft release in github and associate it with the tag that was just created, copying the generated release notes into |
27 |
| - the draft. |
28 |
| -6. Checkout the tag you've just created and make sure git is in a clean state |
29 |
| -7. Run `make release` |
30 |
| -8. Attach the files to the drafted release: |
31 |
| - 1. `./out/infrastructure-components.yaml` |
32 |
| - 2. `./templates/cluster-template.yaml` |
33 |
| - 3. `./templates/cluster-template-without-lb.yaml` |
34 |
| - 4. `./templates/cluster-template-external-cloud-provider.yaml` |
35 |
| - 5. `./metadata.yaml` (clusterctl >0.3.1 will include hardcoded metadata for CAPO. But let's keep the `metadata.yaml` file for our v0.3.* releases to be compatible with clusterctl <=0.3.1) |
36 |
| -9. Perform the [image promotion process](https://github.com/kubernetes/k8s.io/tree/main/k8s.gcr.io#image-promoter). |
37 |
| - The staging repository is at https://console.cloud.google.com/gcr/images/k8s-staging-capi-openstack/GLOBAL. Be |
38 |
| - sure to choose the top level `capi-openstack-controller`, which will provide the multi-arch manifest, rather than one for a specific architecture. |
39 |
| - The image build logs are available in [Cloud Build](https://console.cloud.google.com/cloud-build/builds?project=k8s-staging-capi-openstack). |
40 |
| - Add the new sha=>tag mapping to the [images.yaml](https://github.com/kubernetes/k8s.io/edit/main/k8s.gcr.io/images/k8s-staging-capi-openstack/images.yaml) (use the sha of the image with the corresponding tag) |
41 |
| -10. Finalise the release notes |
42 |
| -11. Publish release. Use the pre-release option for release |
43 |
| - candidate versions of Cluster API Provider OpenStack. |
| 21 | +1. Make sure your repo is clean by git's standards. |
| 22 | +1. Make sure you are on the correct branch (`master` for the current release and `release-0.x` for older releases). |
| 23 | +1. Create an annotated tag |
| 24 | + - `git tag -s -a $VERSION -m $VERSION`. |
| 25 | +1. Push the tag to the GitHub repository: |
| 26 | + > NOTE: `upstream` should be the name of the remote pointing to `github.com/kubernetes-sigs/cluster-api-provider-openstack` |
| 27 | + - `git push upstream $VERSION` |
| 28 | +1. Run `make release` to build artifacts (the image is automatically built by CI) |
| 29 | +1. Follow the [image promotion process](https://github.com/kubernetes/k8s.io/tree/main/k8s.gcr.io#image-promoter) to promote the image from the staging repo to `k8s.gcr.io/capi-openstack`. |
| 30 | + The staging repository can be inspected at https://console.cloud.google.com/gcr/images/k8s-staging-capi-openstack/GLOBAL. Be |
| 31 | + sure to choose the top level `capi-openstack-controller`, which will provide the multi-arch manifest, rather than one for a specific architecture. |
| 32 | + The image build logs are available at [Cloud Build](https://console.cloud.google.com/cloud-build/builds?project=k8s-staging-capi-openstack). |
| 33 | + Add the new sha=>tag mapping to the [images.yaml](https://github.com/kubernetes/k8s.io/edit/main/k8s.gcr.io/images/k8s-staging-capi-openstack/images.yaml) (use the sha of the image with the corresponding tag) |
| 34 | +1. Create a draft release in GitHub based on the tag created above |
| 35 | +1. Generate and finalize the release notes and add them to the draft release: |
| 36 | + - Run `make release-notes` to gather changes since the last revision. If you need to specify a specific tag to look for changes |
| 37 | + since, use `make release-notes RELEASE_NOTES_ARGS="--from <tag>"`. |
| 38 | + - Pay close attention to the `## :question: Sort these by hand` section, as it contains items that need to be manually sorted. |
| 39 | +1. Attach the following files to the draft release: |
| 40 | + - `./out/infrastructure-components.yaml` |
| 41 | + - `./out/cluster-template.yaml` |
| 42 | + - `./out/cluster-template-external-cloud-provider.yaml` |
| 43 | + - `./out/cluster-template-without-lb.yaml` |
| 44 | + - `./out/metadata.yaml` |
| 45 | +1. Publish release. Use the pre-release option for release candidate or beta versions. |
44 | 46 |
|
45 | 47 | ### Permissions
|
46 | 48 |
|
|
0 commit comments