|
25 | 25 | > Note: In the above instructions, `v0.2.0-alpha.3` is the version/tag is being released
|
26 | 26 |
|
27 | 27 | ## GA Releases
|
28 |
| -- Create a tag and push |
| 28 | +- Review if all issues linked to the release version are either completed or moved to the "Next" release. |
| 29 | +- Create a release branch from main. |
| 30 | +- Clone the repository and create a tag (release tag) and push to origin. Ensure that the GPG keys are set. |
29 | 31 | ```shell
|
30 | 32 | git clone [email protected]:kubernetes-sigs/cluster-api-provider-ibmcloud.git
|
31 | 33 | git tag -s -m "v0.1.0" v0.1.0
|
32 | 34 | git push origin v0.1.0
|
33 | 35 | ```
|
34 |
| -- Wait for the google cloud build to be finished |
35 |
| -- [Prepare release notes](#prepare-release-notes) |
36 |
| -- Create a draft release with release notes for the tag |
37 |
| -- Perform the [image promotion process](https://github.com/kubernetes/k8s.io/tree/main/k8s.gcr.io#image-promoter): |
| 36 | +- Wait for the Google Cloudbuild to finish, which is triggered once the tag is created. |
| 37 | + - The status of the build jobs can be tracked from : https://prow.k8s.io/?job=post-cluster-api-provider-ibmcloud-push-images |
| 38 | + - The built images are available here: https://console.cloud.google.com/gcr/images/k8s-staging-capi-ibmcloud/ |
| 39 | +- Create a draft release with release notes for the created tag. |
| 40 | + - Use the `make release-notes` target to generate release notes. (Refer topic - [Prepare release notes](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/docs/book/src/developer/release.md#prepare-release-notes)) |
| 41 | + - Update the controller image version towards the bottom of the release document. |
| 42 | +- Perform the [image promotion process](https://github.com/kubernetes/k8s.io/tree/main/registry.k8s.io#image-promoter): |
38 | 43 | - Clone and pull down the latest from [kubernetes/k8s.io](https://github.com/kubernetes/k8s.io)
|
39 | 44 | - Create a new branch in your fork of `kubernetes/k8s.io`.
|
40 | 45 | - The staging repository is [here](https://console.cloud.google.com/gcr/images/k8s-staging-capi-ibmcloud/GLOBAL).
|
41 | 46 | - Once image is present in the above staging repository, find the sha256 tag for the image by following instructions
|
42 | 47 | ```shell
|
43 |
| - $ manifest-tool inspect --raw gcr.io/k8s-staging-capi-ibmcloud/cluster-api-ibmcloud-controller:v0.1.0 | jq '.[0].Digest' |
| 48 | + $ manifest-tool inspect --raw gcr.io/k8s-staging-capi-ibmcloud/cluster-api-ibmcloud-controller:v0.1.0 | jq '.digest' |
44 | 49 | "sha256:6c92a6a337ca5152eda855ac27c9e4ca1f30bba0aa4de5c3a0b937270ead4363"
|
45 | 50 | ```
|
46 | 51 | - In your `kubernetes/k8s.io` branch edit `k8s.gcr.io/images/k8s-staging-capi-ibmcloud/images.yaml` and add an entry for the version using the sha256 value got from the above command. For example: `"sha256:6c92a6a337ca5152eda855ac27c9e4ca1f30bba0aa4de5c3a0b937270ead4363": ["v0.1.0"]`
|
47 |
| - - You can use [this PR](https://github.com/kubernetes/k8s.io/pull/3185) as example |
48 |
| - - Wait for the PR to be approved and merged |
49 |
| - - Run `make release` command |
50 |
| - - Copy the content from `out` directory to release asset |
51 |
| - - Publish the drafted release |
| 52 | + - You can use [this PR]( https://github.com/kubernetes/k8s.io/pull/7780) as example. |
| 53 | + - Wait for the PR to be approved and merged. |
| 54 | + - This should trigger a build job to build artifacts through cloud-build / run `make release` on the release branch. |
| 55 | + - Upload the binaries/files that are uploaded to Google Cloud Storage / built locally and publish the drafted release. |
| 56 | + - Create an alpha tag for the `release-version+1` for allowing subsequent commits. |
52 | 57 |
|
53 | 58 | > Note: In the above instructions, `v0.1.0` is the version/tag is being released
|
54 | 59 |
|
|
0 commit comments