|
1 | 1 | # Release Process
|
| 2 | + |
| 3 | +## Alpha/Beta releases |
| 4 | +- Create a tag and push |
| 5 | + ```shell |
| 6 | + git clone [email protected]:kubernetes-sigs/cluster-api-provider-ibmcloud.git |
| 7 | + git tag -s -m "v0.2.0-alpha.3" v0.2.0-alpha.3 |
| 8 | + git push origin v0.2.0-alpha.3 |
| 9 | + ``` |
| 10 | +- Wait for the google cloud build to be finished |
| 11 | +- Create a draft release with release notes for the tag |
| 12 | +- Tick the prerelease checkbox |
| 13 | +- Download the artifacts once cloud build is finished |
| 14 | + ```shell |
| 15 | + gsutil -m cp \ |
| 16 | + "gs://artifacts.k8s-staging-capi-ibmcloud.appspot.com/components/v0.2.0-alpha.3/cluster-template-powervs.yaml" \ |
| 17 | + "gs://artifacts.k8s-staging-capi-ibmcloud.appspot.com/components/v0.2.0-alpha.3/cluster-template.yaml" \ |
| 18 | + "gs://artifacts.k8s-staging-capi-ibmcloud.appspot.com/components/v0.2.0-alpha.3/infrastructure-components.yaml" \ |
| 19 | + "gs://artifacts.k8s-staging-capi-ibmcloud.appspot.com/components/v0.2.0-alpha.3/metadata.yaml" \ |
| 20 | + . |
| 21 | + ``` |
| 22 | +- Upload the downloaded artifacts into the release asset |
| 23 | +- Publish the drafted release |
| 24 | +> Note: In the above instructions, `v0.2.0-alpha.3` is the version/tag is being released |
| 25 | + |
| 26 | +## GA Releases |
| 27 | +- Create a tag and push |
| 28 | + ```shell |
| 29 | + git clone [email protected]:kubernetes-sigs/cluster-api-provider-ibmcloud.git |
| 30 | + git tag -s -m "v0.1.0" v0.1.0 |
| 31 | + git push origin v0.1.0 |
| 32 | + ``` |
| 33 | +- Wait for the google cloud build to be finished |
| 34 | +- Create a draft release with release notes for the tag |
| 35 | +- Perform the [image promotion process](https://github.com/kubernetes/k8s.io/tree/main/k8s.gcr.io#image-promoter): |
| 36 | + - Clone and pull down the latest from [kubernetes/k8s.io](https://github.com/kubernetes/k8s.io) |
| 37 | + - Create a new branch in your fork of `kubernetes/k8s.io`. |
| 38 | + - The staging repository is [here](https://console.cloud.google.com/gcr/images/k8s-staging-capi-ibmcloud/GLOBAL). |
| 39 | + - Once image is present in the above staging repository, find the sha256 tag for the image by following instructions |
| 40 | + ```shell |
| 41 | + $ manifest-tool inspect --raw gcr.io/k8s-staging-capi-ibmcloud/cluster-api-ibmcloud-controller:v0.1.0 | jq '.[0].Digest' |
| 42 | + "sha256:6c92a6a337ca5152eda855ac27c9e4ca1f30bba0aa4de5c3a0b937270ead4363" |
| 43 | + ``` |
| 44 | + - 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"]` |
| 45 | + - You can use [this PR](https://github.com/kubernetes/k8s.io/pull/3185) as example |
| 46 | + - Wait for the PR to be approved and merged |
| 47 | + - Run `make release` command |
| 48 | + - Copy the content from `out` directory to release asset |
| 49 | + - Publish the drafted release |
| 50 | + |
| 51 | +> Note: In the above instructions, `v0.1.0` is the version/tag is being released |
0 commit comments