Skip to content

Commit 11b0b59

Browse files
authored
Merge pull request #518 from elmiko/update-version-info
update information about versions and releases
2 parents e0e1514 + c86c66c commit 11b0b59

File tree

2 files changed

+42
-10
lines changed

2 files changed

+42
-10
lines changed

README.md

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,35 @@ You can reach the maintainers of this project at:
1717

1818
Participation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](code-of-conduct.md).
1919

20-
## Releases
21-
22-
To reduce version-skew risk, it is recommended to match apiserver-network-proxy server & client
20+
## Versioning and releases
21+
22+
As of the `0.28.0` release, the apiserver-network-proxy project is changing its versioning and release
23+
process. Going forward the project will adhere to these rules:
24+
25+
* This project follows semantic versioning (eg `x.y.z`) for releases and tags.
26+
* Tags indicate readiness for a release, and project maintainers will create corresponding releases.
27+
* Releases and tags align with the Kubernetes minor release versions (the `y` in `x.y.z`). For instance,
28+
if Kubernetes releases version `1.99.0`, the corresponding release and tag for apiserver-network-proxy will be
29+
`0.99.0`.
30+
* Branches will be created when the minor release version (the `y` in `x.y.z`) is increased, and follow the
31+
pattern of `release-x.y`. For instance, if version `0.99.0` has been released, the corresponding branch
32+
will be named `release-0.99`.
33+
* Patch level versions for releases and tags will be updated when patches are applied to the specific release
34+
branch. For example, if patches must be applied to the `release-0.99` branch and a new release is created,
35+
the version will be `0.99.1`. In this manner the patch level version number (the `z` in `x.y.z`) may not
36+
match the Kubernetes patch level.
37+
38+
For Kubernetes version `1.28.0+`, we recommend using the tag that corresponds to the same minor version
39+
number. For example, if you are working with Kubernetes version `1.99`, please utilize the latest `0.99`
40+
tag and refer to the `release-0.99` branch. It is important to note that there may be disparities in the
41+
patch level between apiserver-network-proxy and Kubernetes.
42+
43+
For Kubernetes version `<=1.27`, it is recommended to match apiserver-network-proxy server & client
2344
minor release versions. With Kubernetes, this means:
2445

25-
- Kubernetes v1.27+: `0.1.X` tags, `master` branch
26-
- Kubernetes versions v1.23 to v1.27: `0.0.X` tags, `release-0.0` branch
27-
- Kubernetes versions up to v1.23: apiserver-network-proxy versions up to `v0.0.30`.
46+
* Kubernetes versions v1.26 through v1.27: `0.1.X` tags, `release-0.1` branch.
47+
* Kubernetes versions v1.23 through v1.25: `0.0.X` tags, `release-0.0` branch.
48+
* Kubernetes versions up to v1.23: apiserver-network-proxy versions up to `v0.0.30`.
2849
Refer to the kubernetes go.mod file for the specific release version.
2950

3051
## Build

RELEASE.md

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ Please note this guide is only intended for the admins of this repository, and r
44

55
Creating a new release of network proxy involves releasing a new version of the client library (konnectivity-client) and new images for the proxy agent and server. Generally we also want to upgrade kubernetes/kubernetes with the latest version of the images and library, but this is a GCE specific change.
66

7-
1. The first step involves creating a new git tag for the release, following semver for go libraries. A tag is required for both the repository and the konnectivity-client library. For example releasing the `0.0.15` version will have two tags `v0.0.15` and `konnectivity-client/v0.0.15` on the appropriate commit.
7+
1. The first step involves creating a new git tag for the release, following semver for go libraries. A tag is required for both the repository and the konnectivity-client library. For example releasing the `0.99.0` version will have two tags `v0.99.0` and `konnectivity-client/v0.99.0` on the appropriate commit. The minor version number (the `y` in `x.y.z`) should match the minor version of the Kubernetes version that is utilized by the apiserver-network-proxy. The patch level version number (the `z` in `x.y.z`) should increase by one unless a new minor version is being created, in which case it should be `0`.
88

9-
In the master branch, choose the appropriate commit, and determine a patch version for the latest minor version (currently 0.1).
9+
In the master branch, choose the appropriate commit, and determine a patch version based on the required Kubernetes version and the current patch level.
1010

1111
Example commands for `HEAD` of `master` branch. (Assumes you have `git remote add upstream [email protected]:kubernetes-sigs/apiserver-network-proxy.git`.)
1212

@@ -40,7 +40,18 @@ Creating a new release of network proxy involves releasing a new version of the
4040
4141
Once the two tags are created, the konnectivity-client can be imported as a library in kubernetes/kubernetes and other go programs.
4242
43-
2. To publish the proxy server and proxy agent images, they must be promoted from the k8s staging repo. An example PR can be seen here: [https://github.com/kubernetes/k8s.io/pull/1602](https://github.com/kubernetes/k8s.io/pull/1602)
43+
2. If increasing the minor version (the `y` in `x.y.z`), a new release branch must be created. The name of this branch should be `release-x.y` where `x` and `y` correspond to the major and minor release numbers for apiserver-network-proxy. For example, if increasing the apiserver-network-proxy from verision `0.98.4` to `0.99.0` a new branch should be created named `release-0.99`.
44+
45+
After making the new tag for the release version, use the following command to create the new branch:
46+
47+
```
48+
# assuming a release version of 0.99.0
49+
export RELEASE=release-0.99
50+
git checkout -b "${RELEASE}"
51+
git push upstream "${RELEASE}"
52+
```
53+
54+
3. To publish the proxy server and proxy agent images, they must be promoted from the k8s staging repo. An example PR can be seen here: [https://github.com/kubernetes/k8s.io/pull/5686](https://github.com/kubernetes/k8s.io/pull/5686)
4455
4556
The SHA in the PR corresponds to the SHA of the image within the k8s staging repo. (This is under the **Name** column)
4657
@@ -50,7 +61,7 @@ Creating a new release of network proxy involves releasing a new version of the
5061
5162
<img src="https://user-images.githubusercontent.com/7691399/106816880-09040600-6644-11eb-8907-f50c53dfe475.png" width="400px" height="300px" /> <img src="https://user-images.githubusercontent.com/7691399/106815303-a4e04280-6641-11eb-82d2-4ef4fb34437a.png" width="400px" height="300px" />
5263
53-
3. Finally, update kubernetes/kubernetes with the new client library and images.
64+
4. Finally, update kubernetes/kubernetes with the new client library and images.
5465
5566
An example PR can be found here: [https://github.com/kubernetes/kubernetes/pull/94983](https://github.com/kubernetes/kubernetes/pull/94983)
5667

0 commit comments

Comments
 (0)