|
1 | 1 | # Release Procedure |
2 | 2 |
|
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. |
6 | 61 |
|
7 | 62 | ## Making a Release |
8 | 63 |
|
|
0 commit comments