Skip to content

Commit d4226c4

Browse files
authored
Merge pull request #5141 from rata/master
KEP-127: Update userns KEP template to latest and and answer more sections
2 parents d2e54fa + 72fffde commit d4226c4

File tree

1 file changed

+43
-8
lines changed

1 file changed

+43
-8
lines changed

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

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@
77
- [Goals](#goals)
88
- [Non-Goals](#non-goals)
99
- [Proposal](#proposal)
10-
- [User Stories](#user-stories)
10+
- [User Stories (Optional)](#user-stories-optional)
1111
- [Story 1](#story-1)
1212
- [Story 2](#story-2)
1313
- [Story 3](#story-3)
1414
- [Story 4](#story-4)
1515
- [Story 5](#story-5)
16-
- [Notes/Constraints/Caveats](#notesconstraintscaveats)
16+
- [Notes/Constraints/Caveats (Optional)](#notesconstraintscaveats-optional)
1717
- [Risks and Mitigations](#risks-and-mitigations)
1818
- [Design Details](#design-details)
1919
- [Pod.spec changes](#podspec-changes)
@@ -64,13 +64,17 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
6464
- [X] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
6565
- [X] (R) KEP approvers have approved the KEP status as `implementable`
6666
- [X] (R) Design details are appropriately documented
67-
- [X] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input
67+
- [X] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
68+
- [X] e2e Tests for all Beta API Operations (endpoints)
69+
- [ ] (R) Ensure GA e2e tests meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
70+
- [ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
6871
- [X] (R) Graduation criteria is in place
72+
- [ ] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
6973
- [X] (R) Production readiness review completed
70-
- [X] Production readiness review approved
74+
- [X] (R) Production readiness review approved
7175
- [X] "Implementation History" section is up-to-date for milestone
72-
- [ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
73-
- [ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
76+
- [X] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
77+
- [X] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
7478

7579
[kubernetes.io]: https://kubernetes.io/
7680
[kubernetes/enhancements]: https://git.k8s.io/enhancements
@@ -156,7 +160,7 @@ This proposal aims to support running pods inside user namespaces.
156160

157161
This mitigates all the vulnerabilities listed in the motivation section.
158162

159-
### User Stories
163+
### User Stories (Optional)
160164

161165
#### Story 1
162166

@@ -190,10 +194,21 @@ As a cluster admin, I want to use different host UIDs/GIDs for pods running on
190194
the same node (whenever kernel/kube features allow it), so I can mitigate the
191195
impact a compromised pod can have on other pods and the node itself.
192196

193-
### Notes/Constraints/Caveats
197+
### Notes/Constraints/Caveats (Optional)
194198

195199
### Risks and Mitigations
196200

201+
An error in user namespaces manager can result in the kubelet failing
202+
initialization. We will mitigate this by having extensive unit tests to test the
203+
case of the feature gate disabled and enabled. We will also add e2e tests to
204+
verify the kubelet works as expected when the feature is enabled (DONE).
205+
206+
The KEP needs changes in the CRI interface, high-level container runtimes
207+
(containerd, cri-o), low-level container runtimes (runc, crun) and the Linux
208+
kernel. To mitigate possible issues with the interaction of the components
209+
involved, we will write integration tests in k8s, containerd, cri-o, runc, crun,
210+
cri-tools and xfstests for the Linux bits. (DONE)
211+
197212
## Design Details
198213

199214
### Pod.spec changes
@@ -531,6 +546,7 @@ to implement this enhancement.
531546
Based on reviewers feedback describe what additional tests need to be added prior
532547
implementing this enhancement to ensure the enhancements have also solid foundations.
533548
-->
549+
None.
534550

535551
##### Unit tests
536552

@@ -1373,6 +1389,25 @@ For each of them, fill in the following information by copying the below templat
13731389

13741390
###### What steps should be taken if SLOs are not being met to determine the problem?
13751391

1392+
This KEP doesn't introduce new SLOs and doesn't result in increasing time taken
1393+
by Kubernetes components.
1394+
1395+
As explained in "Will enabling / using this feature result in increasing time
1396+
taken by any operations covered by existing SLIs/SLOs?" if the container runtime
1397+
wants to support this in older kernels, it can have an impact on this SLO:
1398+
1399+
> Startup latency of schedulable pods, excluding time to pull images and run init containers, measured from pod creation timestamp to when all its containers are reported as started and observed via watch, measured as 99th percentile over last 5 minutes
1400+
1401+
At the time of writing, no container runtime supports user namespaces with old
1402+
kernels, so no container runtime is affected. There is no plan to support that
1403+
scenario either, at the time of writing.
1404+
1405+
However, if a container runtime supports userns with old kernels in the future,
1406+
to determine if user namespaces are affecting the SLO it should be tested if
1407+
pods without the pod.spec.hostUsers line are also affected. If they are not
1408+
affected (IOW, pods without using user namespaces), then user namespaces seem to
1409+
be the cause of the problem.
1410+
13761411
## Implementation History
13771412

13781413
- 2016: First iterations of this KEP, but code never landed upstream.

0 commit comments

Comments
 (0)