You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/book/src/developers/releasing.md
+48-30Lines changed: 48 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,17 +7,23 @@
7
7
- Open a PR in https://github.com/kubernetes/test-infra to change this [line](https://github.com/kubernetes/test-infra/blob/25db54eb9d52e08c16b3601726d8f154f8741025/config/prow/plugins.yaml#L344)
8
8
- Example PR: https://github.com/kubernetes/test-infra/pull/16827
9
9
10
-
## Prepare branch
10
+
## Prepare main branch for development
11
11
12
-
TODO
12
+
1. Update the file `metadata.yaml` by adding the next release.
13
13
14
-
## Prepare branch, tag and release notes
14
+
1. Submit a PR for the `metadata.yaml` update.
15
15
16
-
1. Update the file `metadata.yaml` if is a major or minor release
16
+
## Create the tag and release notes
17
17
18
-
2. Submit a PR for the `metadata.yaml` update if needed, wait for it to be merged before continuing, and pull any changes prior to continuing.
19
-
20
-
3. Create and push the release tags to the GitHub repository:
18
+
1. Ensure that CI is stable: [Prow CAPG dashboard](https://prow.k8s.io/?repo=kubernetes-sigs%2Fcluster-api-provider-gcp)
19
+
20
+
1. Fetch the latest changes and tags, and double check that your branch is at the desired commit:
21
+
```bash
22
+
git fetch upstream main
23
+
git fetch upstream --tags
24
+
```
25
+
26
+
1. Create and push the release tags to the GitHub repository:
21
27
22
28
```bash
23
29
# Export the tag of the release to be cut, e.g.:
@@ -30,32 +36,38 @@ TODO
30
36
git push upstream ${RELEASE_TAG}
31
37
```
32
38
33
-
Notes:
39
+
<aside class="note">
40
+
41
+
<h1>Notes</h1>
34
42
35
-
*`-s` creates a signed tag, you must have a GPG key [added to your GitHub account](https://docs.github.com/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key)
43
+
*The flag `-s` creates a signed tag. You must have a GPG key [added to your GitHub account](https://docs.github.com/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key).
36
44
* This will automatically trigger a [ProwJob](https://prow.k8s.io/?repo=kubernetes-sigs%2Fcluster-api-provider-gcp&job=post-cluster-api-provider-gcp-push-images) to publish images to the staging image repository.
5.`make release` from repo, this will create the release artifacts in the `out/` folder
50
+
```bash
51
+
gcloud auth login <your-community-email-address>
52
+
```
43
53
54
+
1. `make release` from repo, this will create the release artifacts in the `out/` folder. It is recommended to verify that the artifact file `infrastructure-components.yaml` points to the new image.
44
55
45
-
6. Install the `release-notes` tool according to [instructions](https://github.com/kubernetes/release/blob/master/cmd/release-notes/README.md)
1. Manually format and categorize the release notes
59
71
60
72
## Prepare release in GitHub
61
73
@@ -74,9 +86,9 @@ To promote images from the staging repository to the production registry (`regis
74
86
1. Wait until images for the tag have been built and pushed to the [staging repository](https://console.cloud.google.com/gcr/images/k8s-staging-cluster-api-gcp/global/cluster-api-gcp-controller) by
75
87
the [push images job](https://prow.k8s.io/?repo=kubernetes-sigs%2Fcluster-api-provider-gcp&job=post-cluster-api-provider-gcp-push-images).
76
88
77
-
2. If you don't have a GitHub token, create one by going to your GitHub settings in [Personal access tokens](https://github.com/settings/tokens). Make sure you give the token the `repo` scope.
89
+
1. If you don't have a GitHub token, create one by going to your GitHub settings in [Personal access tokens](https://github.com/settings/tokens). Make sure you give the token the `repo` scope.
78
90
79
-
3. Create a PR to promote the images to the production registry:
91
+
1. Create a PR to promote the images to the production registry:
80
92
81
93
```bash
82
94
# Export the tag of the release to be cut, e.g.:
@@ -93,14 +105,20 @@ To promote images from the staging repository to the production registry (`regis
93
105
- `kpromo` uses `[email protected]:...` as remote to push the branch for the PR. If you don't have `ssh`set up you can configure
94
106
git to use `https` instead via `git config --global url."https://github.com/".insteadOf [email protected]:`.
95
107
- This will automatically create a PR in [k8s.io](https://github.com/kubernetes/k8s.io) and assign the CAPV maintainers.
96
-
4. Merge the PR (/lgtm + /hold cancel) and verify the images are available in the production registry:
108
+
1. Merge the PR (/lgtm + /hold cancel) and verify the images are available in the production registry:
97
109
- Wait for the [promotion prow job](https://prow.k8s.io/?repo=kubernetes%2Fk8s.io&job=post-k8sio-image-promo) to complete successfully. Then verify that the production images are accessible:
0 commit comments