|
7 | 7 | - [Goals](#goals)
|
8 | 8 | - [Non-Goals](#non-goals)
|
9 | 9 | - [Proposal](#proposal)
|
10 |
| - - [User Stories](#user-stories) |
| 10 | + - [User Stories (Optional)](#user-stories-optional) |
11 | 11 | - [Story 1](#story-1)
|
12 | 12 | - [Story 2](#story-2)
|
13 | 13 | - [Story 3](#story-3)
|
14 | 14 | - [Story 4](#story-4)
|
15 | 15 | - [Story 5](#story-5)
|
16 |
| - - [Notes/Constraints/Caveats](#notesconstraintscaveats) |
| 16 | + - [Notes/Constraints/Caveats (Optional)](#notesconstraintscaveats-optional) |
17 | 17 | - [Risks and Mitigations](#risks-and-mitigations)
|
18 | 18 | - [Design Details](#design-details)
|
19 | 19 | - [Pod.spec changes](#podspec-changes)
|
@@ -64,13 +64,17 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
|
64 | 64 | - [X] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
|
65 | 65 | - [X] (R) KEP approvers have approved the KEP status as `implementable`
|
66 | 66 | - [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 |
68 | 71 | - [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) |
69 | 73 | - [X] (R) Production readiness review completed
|
70 |
| -- [X] Production readiness review approved |
| 74 | +- [X] (R) Production readiness review approved |
71 | 75 | - [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 |
74 | 78 |
|
75 | 79 | [kubernetes.io]: https://kubernetes.io/
|
76 | 80 | [kubernetes/enhancements]: https://git.k8s.io/enhancements
|
@@ -156,7 +160,7 @@ This proposal aims to support running pods inside user namespaces.
|
156 | 160 |
|
157 | 161 | This mitigates all the vulnerabilities listed in the motivation section.
|
158 | 162 |
|
159 |
| -### User Stories |
| 163 | +### User Stories (Optional) |
160 | 164 |
|
161 | 165 | #### Story 1
|
162 | 166 |
|
@@ -190,10 +194,21 @@ As a cluster admin, I want to use different host UIDs/GIDs for pods running on
|
190 | 194 | the same node (whenever kernel/kube features allow it), so I can mitigate the
|
191 | 195 | impact a compromised pod can have on other pods and the node itself.
|
192 | 196 |
|
193 |
| -### Notes/Constraints/Caveats |
| 197 | +### Notes/Constraints/Caveats (Optional) |
194 | 198 |
|
195 | 199 | ### Risks and Mitigations
|
196 | 200 |
|
| 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 | + |
197 | 212 | ## Design Details
|
198 | 213 |
|
199 | 214 | ### Pod.spec changes
|
@@ -531,6 +546,7 @@ to implement this enhancement.
|
531 | 546 | Based on reviewers feedback describe what additional tests need to be added prior
|
532 | 547 | implementing this enhancement to ensure the enhancements have also solid foundations.
|
533 | 548 | -->
|
| 549 | +None. |
534 | 550 |
|
535 | 551 | ##### Unit tests
|
536 | 552 |
|
@@ -1373,6 +1389,25 @@ For each of them, fill in the following information by copying the below templat
|
1373 | 1389 |
|
1374 | 1390 | ###### What steps should be taken if SLOs are not being met to determine the problem?
|
1375 | 1391 |
|
| 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 | + |
1376 | 1411 | ## Implementation History
|
1377 | 1412 |
|
1378 | 1413 | - 2016: First iterations of this KEP, but code never landed upstream.
|
|
0 commit comments