Skip to content

Commit e618e33

Browse files
author
Isaac Hollander McCreery
committed
Add clarifying language about supported version skews
1 parent f29d597 commit e618e33

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

docs/design/versioning.md

+17-10
Original file line numberDiff line numberDiff line change
@@ -95,27 +95,34 @@ X.Y.Z-beta.W, with an additional +bbbb build suffix added. Furthermore, builds
9595
that are built off of a dirty build tree, (during development, with things in
9696
the tree that are not checked it,) it will be appended with -dirty.
9797

98-
### Supported releases
98+
### Supported releases and component skew
9999

100100
We expect users to stay reasonably up-to-date with the versions of Kubernetes
101-
they use in production, but understand that it may take time to upgrade.
101+
they use in production, but understand that it may take time to upgrade,
102+
especially for production-critical components.
102103

103104
We expect users to be running approximately the latest patch release of a given
104105
minor release; we often include critical bug fixes in
105106
[patch releases](#patch-release), and so encourage users to upgrade as soon as
106-
possible. Furthermore, we expect to "support" three minor releases at a time.
107-
"Support" means we expect users to be running that version in production, though
108-
we may not port fixes back before the latest minor version. For example, when
109-
v1.3 comes out, v1.0 will no longer be supported: basically, that means that the
107+
possible.
108+
109+
Different components are expected to be compatible across different amounts of
110+
skew, all relative to the master version. Nodes may lag masters components by
111+
up to two minor versions but should be at a version no newer than the master; a
112+
client should be skewed no more than one minor version from the master, but may
113+
lead the master by up to one minor version. For example, a v1.3 master should
114+
work with v1.1, v1.2, and v1.3 nodes, and should work with v1.2, v1.3, and v1.4
115+
clients.
116+
117+
Furthermore, we expect to "support" three minor releases at a time. "Support"
118+
means we expect users to be running that version in production, though we may
119+
not port fixes back before the latest minor version. For example, when v1.3
120+
comes out, v1.0 will no longer be supported: basically, that means that the
110121
reasonable response to the question "my v1.0 cluster isn't working," is, "you
111122
should probably upgrade it, (and probably should have some time ago)". With
112123
minor releases happening approximately every three months, that means a minor
113124
release is supported for approximately nine months.
114125

115-
This does *not* mean that we expect to introduce breaking changes between v1.0
116-
and v1.3, but it does mean that we probably won't have reasonable confidence in
117-
clusters where some components are running at v1.0 and others running at v1.3.
118-
119126
This policy is in line with
120127
[GKE's supported upgrades policy](https://cloud.google.com/container-engine/docs/clusters/upgrade).
121128

0 commit comments

Comments
 (0)