@@ -508,19 +508,19 @@ when drafting this test plan.
508
508
[testing-guidelines] : https://git.k8s.io/community/contributors/devel/sig-testing/testing.md
509
509
-->
510
510
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
512
512
existing tests to make this code solid enough prior to committing the changes necessary
513
513
to implement this enhancement.
514
514
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.
520
516
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)
524
524
525
525
# #### Prerequisite testing updates
526
526
@@ -550,7 +550,7 @@ This can inform certain test coverage improvements that we want to do before
550
550
extending the production code to implement this enhancement.
551
551
-->
552
552
553
- - `<package>` : ` <date> ` - `<test coverage>`
553
+ N/A, as unit tests do not make sense here.
554
554
555
555
# #### Integration tests
556
556
@@ -576,7 +576,7 @@ This can be done with:
576
576
- a search in the Kubernetes bug triage tool (https://storage.googleapis.com/k8s-triage/index.html)
577
577
-->
578
578
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.
580
580
581
581
# #### e2e tests
582
582
@@ -595,7 +595,31 @@ We expect no non-infra related flakes in the last month as a GA graduation crite
595
595
If e2e tests are not necessary or useful, explain why.
596
596
-->
597
597
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
599
623
600
624
# ## Graduation Criteria
601
625
@@ -676,9 +700,7 @@ in back-to-back releases.
676
700
677
701
- Beta : e2e tests coverage.
678
702
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).
682
704
683
705
- GA : Assuming no negative user feedback based on production experience, promote after >= 2 releases in beta.
684
706
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
783
805
automations, so be extremely careful here.
784
806
-->
785
807
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/>.
787
810
788
811
# ##### Can the feature be disabled once it has been enabled (i.e. can we roll back the enablement)?
789
812
@@ -819,8 +842,7 @@ You can take a look at one potential example of such test in:
819
842
https://github.com/kubernetes/kubernetes/pull/97058/files#diff-7826f7adbc1996a05ab52e3f5f02429e94b68ce6bce0dc534d1be636154fded3R246-R282
820
843
-->
821
844
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).
824
846
825
847
# ## Rollout, Upgrade and Rollback Planning
826
848
@@ -893,8 +915,8 @@ and operation of this feature.
893
915
Recall that end users cannot usually observe component logs or access metrics.
894
916
-->
895
917
896
- - [ ] Events
897
- - Event Reason :
918
+ - [X ] Events
919
+ - Event Reason : No CrashLoopBackOff
898
920
- [ ] API .status
899
921
- Condition name :
900
922
- Other field :
@@ -1139,6 +1161,7 @@ Major milestones might include:
1139
1161
- 2019-11-19 : @giuseppe submitted [cgroup v2 KEP](https://github.com/kubernetes/enhancements/pull/1370)
1140
1162
- 2019-11-19 : present KEP to SIG-node (cgroup v2 version)
1141
1163
- 2020-07-07 : the cgroup v2 support is in `implementable` status
1164
+ - 2021-08-04 : Kubernetes v1.22 (Alpha)
1142
1165
1143
1166
# # Drawbacks
1144
1167
0 commit comments