Skip to content

Commit 7eb48d6

Browse files
committed
KEP-3117: Add version skew strategy
Signed-off-by: Rodrigo Campos <[email protected]>
1 parent 3551e97 commit 7eb48d6

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

keps/sig-node/3317-user-namespaces/README.md

+37
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,43 @@ Note this section is a WIP yet.
544544

545545
### Version Skew Strategy
546546

547+
<!--
548+
If applicable, how will the component handle version skew with other
549+
components? What are the guarantees? Make sure this is in the test plan.
550+
551+
Consider the following in developing a version skew strategy for this
552+
enhancement:
553+
- Does this enhancement involve coordinating behavior in the control plane and
554+
in the kubelet? How does an n-2 kubelet without this feature available behave
555+
when this feature is used?
556+
- Will any other components on the node change? For example, changes to CSI,
557+
CRI or CNI may require updating that component before the kubelet.
558+
-->
559+
560+
Some definitions first:
561+
- New kubelet: kubelet with CRI proto files that includes the changes proposed in
562+
this KEP.
563+
564+
- Old kubelet: idem, but CRI proto files doesn't include this changes.
565+
566+
- New runtime: container runtime with CRI proto files that includes the changes
567+
proposed in this KEP.
568+
569+
- Old runtime: idem, but CRI proto files doesn't include this changes.
570+
571+
New runtime and old kubelet: all works just fine. Kubelet doesn't request userns
572+
(doesn't have that feature) and therefore the runtime doesn't create them. The
573+
runtime can detect this situation as the `user` field in the `NamespaceOption`
574+
will be seen as nil, [thanks to protobuf][proto3-defaults]. We already tested
575+
this with real code.
576+
577+
Old runtime and new kubelet: all will work fine. As the `user` field of the
578+
`NamespaceOption` message is not part of the runtime protofiles, that part is
579+
ignored by the runtime and pods are created using the host userns.
580+
581+
582+
[proto3-defaults]: https://developers.google.com/protocol-buffers/docs/proto3#default
583+
547584
## Production Readiness Review Questionnaire
548585

549586
<!--

0 commit comments

Comments
 (0)