Skip to content

Commit db35cbd

Browse files
authored
docs: Expand release procedure doc (#3009)
Note the requirement to bump container images as well as go package versions. Signed-off-by: Stephen Finucane <[email protected]>
1 parent c20f57d commit db35cbd

File tree

1 file changed

+58
-3
lines changed

1 file changed

+58
-3
lines changed

docs/release-procedure.md

Lines changed: 58 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,63 @@
11
# Release Procedure
22

3-
The Cloud Provider OpenStack Release is done in sync with
4-
kubernetes/kubernetes. Minor versions can be released intermittently for
5-
critical bug fixes.
3+
Major versions of OpenStack Cloud Provider are done in sync with
4+
[kubernetes/kubernetes](https://github.com/kubernetes/kubernetes).
5+
Minor versions can be released intermittently for critical bug fixes.
6+
7+
## Preparing for a release
8+
9+
Note that while we use the terms *major* and *minor* here and below, these
10+
actually correspond to SemVer *minor* and *patch* versions. This is discussed
11+
in detail in [the Kubernetes documentation](https://github.com/kubernetes/sig-release/blob/master/release-engineering/versioning.md#kubernetes-release-versioning).
12+
13+
### Major releases (`X.Y.0`)
14+
15+
The following steps can be submitted as separate commits in a single PR or as
16+
separate PRs:
17+
18+
1. Bump the version of the sidecar container images used in both the manifests
19+
and Helm Charts.
20+
21+
You should pay particular attention to any major version bumps, since they
22+
may require additional changes to the manifests or charts.
23+
24+
Example: https://github.com/kubernetes/cloud-provider-openstack/pull/3008
25+
26+
2. (Optional) Bump any major, non-kubernetes dependencies
27+
28+
You may wish to bump the version of important dependencies like
29+
`github.com/gophercloud/gophercloud` before bumping the version of
30+
`k8s.io/kubernetes`.
31+
32+
2. Bump the version of `k8s.io/kubernetes` to the latest minor version.
33+
34+
```bash
35+
go get -u k8s.io/kubernetes@latest
36+
```
37+
38+
Note that this will frequently bring in a new Go version corresponding to
39+
the latest and greatest version. It will also automatically bump most of
40+
the other dependencies from `k8s.io` to the same version. However, you must
41+
manually bump the dependencies in the `replace` directive, once again using
42+
the same version as `k8s.io/kubernetes`. Once done, you can confirm that
43+
they are valid and that are none are missing by running `go list -m all`.
44+
You may also wish to ensure that none are unnecessary by temporarily
45+
deleting the `replace` directive and comparing the list of packages in the
46+
output with the list of packages in the replace directive.
47+
48+
Example: https://github.com/kubernetes/cloud-provider-openstack/pull/3010
49+
50+
3. Bump remaining dependencies.
51+
52+
Once again, pay close attention to any major version bumps of packages,
53+
ensuring API changes are accounted for.
54+
55+
### Minor releases (`X.Y.Z`, `Z` > 0)
56+
57+
The release process for a minor release is effectively the same as the release
58+
process for major releases. However, you should only bump the *patch* version of
59+
`k8s.io/kubernetes` and avoid bumping the *major* version of any other
60+
dependency or sidecar container.
661

762
## Making a Release
863

0 commit comments

Comments
 (0)