Skip to content

Commit d078c6b

Browse files
committed
KEP-2033: KubeletInUserNamespace: promote to beta
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
1 parent 613bb69 commit d078c6b

File tree

3 files changed

+49
-23
lines changed

3 files changed

+49
-23
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
kep-number: 2033
22
alpha:
33
approver: "@ehashman"
4+
beta:
5+
approver: "@ehashman"

keps/sig-node/2033-kubelet-in-userns-aka-rootless/README.md

Lines changed: 43 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -508,19 +508,19 @@ when drafting this test plan.
508508
[testing-guidelines]: https://git.k8s.io/community/contributors/devel/sig-testing/testing.md
509509
-->
510510

511-
[ ] I/we understand the owners of the involved components may require updates to
511+
[X] I/we understand the owners of the involved components may require updates to
512512
existing tests to make this code solid enough prior to committing the changes necessary
513513
to implement this enhancement.
514514

515-
Tests are present in several subproject repos and third party repos:
516-
- https://github.com/kubernetes-sigs/kind/blob/v0.17.0/.github/workflows/cgroup2.yaml#L24
517-
- https://github.com/kubernetes/minikube/blob/v1.29.0/.github/workflows/pr.yml#L293-L410
518-
- https://github.com/k3s-io/k3s/blob/v1.26.1+k3s1/.github/workflows/cgroup.yaml#L92-L99
519-
- https://github.com/rootless-containers/usernetes/blob/v20221007.0/.cirrus.yml
515+
See [e2e tests](#e2e-tests) below.
520516

521-
Tests will be added to `kubernetes/test-infra` as well when the [`k8s-infra-prow-build`](https://github.com/kubernetes/k8s.io/blob/a071c4ed0823f193ee29e2f14e191be42dc1a1f0/infra/gcp/terraform/k8s-infra-prow-build/main.tf#L78) cluster
522-
is upgraded to use cgroup v2.
523-
This will probably automatically happen when [GKE bumps up their "regular" channel to Kubernetes v1.26 or later](https://cloud.google.com/kubernetes-engine/docs/how-to/node-system-config).
517+
Additional tests are present in several subproject repos and third party repos:
518+
- https://github.com/kubernetes-sigs/kind/blob/v0.29.0/.github/workflows/vm.yaml#L24
519+
- https://github.com/kubernetes/minikube/blob/v1.36.0/.github/workflows/pr.yml#L299-L415
520+
- https://github.com/k3s-io/k3s/blob/v1.33.1%2Bk3s1/.github/workflows/e2e.yaml#L56
521+
- https://github.com/rootless-containers/usernetes/blob/gen2-v20250501.0/.github/workflows/main.yaml
522+
- Covers multi-node clusters with Flannel (VXLAN)
523+
- Covers several host distributions (Ubuntu, CentOS Stream, and Fedora)
524524

525525
##### Prerequisite testing updates
526526

@@ -550,7 +550,7 @@ This can inform certain test coverage improvements that we want to do before
550550
extending the production code to implement this enhancement.
551551
-->
552552

553-
- `<package>`: `<date>` - `<test coverage>`
553+
N/A, as unit tests do not make sense here.
554554

555555
##### Integration tests
556556

@@ -576,7 +576,7 @@ This can be done with:
576576
- a search in the Kubernetes bug triage tool (https://storage.googleapis.com/k8s-triage/index.html)
577577
-->
578578

579-
- [test name](https://github.com/kubernetes/kubernetes/blob/2334b8469e1983c525c0c6382125710093a25883/test/integration/...): [integration master](https://testgrid.k8s.io/sig-release-master-blocking#integration-master?include-filter-by-regex=MyCoolFeature), [triage search](https://storage.googleapis.com/k8s-triage/index.html?test=MyCoolFeature)
579+
N/A, as integration tests do not make sense here.
580580

581581
##### e2e tests
582582

@@ -595,7 +595,31 @@ We expect no non-infra related flakes in the last month as a GA graduation crite
595595
If e2e tests are not necessary or useful, explain why.
596596
-->
597597

598-
- [test name](https://github.com/kubernetes/kubernetes/blob/2334b8469e1983c525c0c6382125710093a25883/test/e2e/...): [SIG ...](https://testgrid.k8s.io/sig-...?include-filter-by-regex=MyCoolFeature), [triage search](https://storage.googleapis.com/k8s-triage/index.html?test=MyCoolFeature)
598+
`NodeConformance` tests are executed using [kubetest2-kindinv](https://github.com/rootless-containers/kubetest2-kindinv).
599+
600+
"kindinv" stands for "Kubernetes in (Rootless) Docker in (GCE) VM".
601+
GCE VM is used for enabling systemd that is required by Rootless Docker to set up cgroup v2.
602+
603+
```bash
604+
exec kubetest2 kindinv \
605+
--boskos-location=http://boskos.test-pods.svc.cluster.local \
606+
--gcp-zone=us-central1-b \
607+
--instance-image=ubuntu-os-cloud/ubuntu-2204-lts \
608+
--instance-type=n2-standard-4 \
609+
--kind-rootless \
610+
--user=rootless \
611+
--build \
612+
--up \
613+
--down \
614+
--test=ginkgo \
615+
-- \
616+
--focus-regex='\[NodeConformance\]' \
617+
--skip-regex='\[Environment:NotInUserNS\]|\[Slow\]' \
618+
--parallel=8
619+
```
620+
621+
- Prow manifest: https://github.com/kubernetes/test-infra/blob/4b7824ff1cfe00c36062035ab6aea3bb6c2e6ba2/config/jobs/kubernetes/sig-testing/kubernetes-kind.yaml#L615-L678
622+
- Logs: https://prow.k8s.io/job-history/gs/kubernetes-ci-logs/logs/ci-kubernetes-e2e-kind-rootless
599623

600624
### Graduation Criteria
601625

@@ -676,9 +700,7 @@ in back-to-back releases.
676700

677701
- Beta: e2e tests coverage.
678702
Requires [the cgroup v2 KEP](../20191118-cgroups-v2.md ) to reach Beta or GA.
679-
To move to beta, we need clarity if we intend to define two separate types of conformance suites:
680-
- kubernetes clusters that can run privileged workloads
681-
- kubernetes cluster that are restricted to run unprivileged workloads only
703+
The tests are covered by `NodeConformance` tests (see above).
682704

683705
- GA: Assuming no negative user feedback based on production experience, promote after >= 2 releases in beta.
684706
Requires [the cgroup v2 KEP](../20191118-cgroups-v2.md ) to reach GA.
@@ -783,7 +805,8 @@ Any change of default behavior may be surprising to users or break existing
783805
automations, so be extremely careful here.
784806
-->
785807

786-
During Alpha, we will document what workloads will work and what will not work.
808+
The limitation is same as Rootless Docker, Podman, etc.
809+
See <https://rootlesscontaine.rs/caveats/>.
787810

788811
###### Can the feature be disabled once it has been enabled (i.e. can we roll back the enablement)?
789812

@@ -819,8 +842,7 @@ You can take a look at one potential example of such test in:
819842
https://github.com/kubernetes/kubernetes/pull/97058/files#diff-7826f7adbc1996a05ab52e3f5f02429e94b68ce6bce0dc534d1be636154fded3R246-R282
820843
-->
821844

822-
CI will run `kind` (Kubernetes in Docker) tests with Rootless Docker/Podman.
823-
Tests with a real cluster will be added later as well.
845+
Yes. See [Test Plan](#test-plan).
824846

825847
### Rollout, Upgrade and Rollback Planning
826848

@@ -893,8 +915,8 @@ and operation of this feature.
893915
Recall that end users cannot usually observe component logs or access metrics.
894916
-->
895917

896-
- [ ] Events
897-
- Event Reason:
918+
- [X] Events
919+
- Event Reason: No CrashLoopBackOff
898920
- [ ] API .status
899921
- Condition name:
900922
- Other field:
@@ -1139,6 +1161,7 @@ Major milestones might include:
11391161
- 2019-11-19: @giuseppe submitted [cgroup v2 KEP](https://github.com/kubernetes/enhancements/pull/1370)
11401162
- 2019-11-19: present KEP to SIG-node (cgroup v2 version)
11411163
- 2020-07-07: the cgroup v2 support is in `implementable` status
1164+
- 2021-08-04: Kubernetes v1.22 (Alpha)
11421165

11431166
## Drawbacks
11441167

keps/sig-node/2033-kubelet-in-userns-aka-rootless/kep.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ reviewers:
1515
- "@dims"
1616
- "@sftim"
1717
approvers:
18-
- TBD
18+
- "@ehashman"
1919
see-also:
2020
# `add KEP for cgroups v2 support`
2121
- "https://github.com/kubernetes/enhancements/pull/1370"
@@ -24,16 +24,17 @@ replaces:
2424
- "https://github.com/kubernetes/enhancements/pull/1084"
2525

2626
# The target maturity stage in the current dev cycle for this KEP.
27-
stage: alpha
27+
stage: beta
2828

2929
# The most recent milestone for which work toward delivery of this KEP has been
3030
# done. This can be the current (upcoming) milestone, if it is being actively
3131
# worked on.
32-
latest-milestone: "v1.22"
32+
latest-milestone: "v1.34"
3333

3434
# The milestone at which this feature was, or is targeted to be, at each stage.
3535
milestone:
3636
alpha: "v1.22"
37+
beta: "v1.34"
3738

3839
# The following PRR answers are required at alpha release
3940
# List the feature gate name and the components for which it must be enabled

0 commit comments

Comments
 (0)