@@ -219,6 +219,7 @@ jobs:
219219 fail-fast : false
220220 matrix :
221221 os : [windows-2022, windows-2019]
222+ cgroup_driver : [cgroupfs]
222223
223224 defaults :
224225 run :
@@ -345,12 +346,14 @@ jobs:
345346 - name : CRI Integration Test
346347 env :
347348 TEST_IMAGE_LIST : ${{github.workspace}}/repolist.toml
349+ CGROUP_DRIVER : ${{ matrix.cgroup_driver }}
348350 run : |
349351 make cri-integration
350352
351353 - name : cri-tools critest
352354 env :
353355 CRI_TEST_IMAGES : ${{github.workspace}}/cri-test-images.yaml
356+ CGROUP_DRIVER : ${{ matrix.cgroup_driver }}
354357 shell : powershell
355358 run : |
356359 Start-Process -FilePath containerd.exe -NoNewWindow -RedirectStandardError true -PassThru
@@ -367,7 +370,7 @@ jobs:
367370 - uses : actions/upload-artifact@v4
368371 if : always()
369372 with :
370- name : TestResults ${{ matrix.os }}
373+ name : TestResults ${{ matrix.os }} ${{ matrix.cgroup_driver }}
371374 path : |
372375 ${{github.workspace}}/*-junit.xml
373376 ${{github.workspace}}/*-gotest.json
@@ -388,6 +391,7 @@ jobs:
388391 os : [ubuntu-22.04, ubuntu-24.04, actuated-arm64-4cpu-16gb]
389392 exclude :
390393 - os : ${{ github.repository != 'containerd/containerd' && 'actuated-arm64-4cpu-16gb' }}
394+ cgroup_driver : [cgroupfs, systemd]
391395
392396 env :
393397 GOTEST : gotestsum --
@@ -476,7 +480,15 @@ jobs:
476480 - name : CRI Integration Test
477481 env :
478482 TEST_RUNTIME : ${{ matrix.runtime }}
483+ CGROUP_DRIVER : ${{ matrix.cgroup_driver }}
484+ RUNC_FLAVOR : ${{ matrix.runc }}
479485 run : |
486+ cat /sys/fs/cgroup/cgroup.controllers
487+ systemctl status
488+ [ "${RUNC_FLAVOR}" == "crun" ] && {
489+ export XDG_RUNTIME_DIR=/run/user/$(id -u)
490+ }
491+ runc --version
480492 CONTAINERD_RUNTIME=$TEST_RUNTIME make cri-integration
481493
482494 - name : Fix up for actuated
@@ -488,6 +500,7 @@ jobs:
488500 - name : cri-tools critest
489501 env :
490502 TEST_RUNTIME : ${{ matrix.runtime }}
503+ CGROUP_DRIVER : ${{ matrix.cgroup_driver }}
491504 run : |
492505 env
493506 sudo -E PATH=$PATH ./script/critest.sh "${{github.workspace}}/report"
@@ -510,7 +523,7 @@ jobs:
510523 - uses : actions/upload-artifact@v4
511524 if : always()
512525 with :
513- name : TestResults ${{ matrix.runtime }} ${{matrix.runc}} ${{ matrix.os }}
526+ name : TestResults ${{ matrix.runtime }} ${{matrix.runc}} ${{ matrix.os }} ${{ matrix.cgroup_driver }}
514527 path : |
515528 *-junit.xml
516529 *-gotest.json
@@ -534,9 +547,10 @@ jobs:
534547 # https://github.com/containerd/containerd/pull/10297
535548 - almalinux/8
536549550+ cgroup_driver : [cgroupfs, systemd]
537551 env :
538552 BOX : ${{ matrix.box }}
539-
553+ CGROUP_DRIVER : ${{ matrix.cgroup_driver }}
540554 steps :
541555 - name : Show the host info
542556 run : |
@@ -586,9 +600,9 @@ jobs:
586600 - name : test-integration
587601 run : sudo BOX=$BOX vagrant up --provision-with=selinux,install-runc,install-gotestsum,test-integration
588602 - name : test-cri-integration
589- run : sudo BOX=$BOX vagrant up --provision-with=selinux,install-runc,install-gotestsum,test-cri-integration
603+ run : sudo BOX=$BOX CGROUP_DRIVER=$CGROUP_DRIVER vagrant up --provision-with=selinux,install-runc,install-gotestsum,test-cri-integration
590604 - name : test-cri
591- run : sudo BOX=$BOX vagrant up --provision-with=selinux,install-runc,install-gotestsum,test-cri
605+ run : sudo BOX=$BOX CGROUP_DRIVER=$CGROUP_DRIVER vagrant up --provision-with=selinux,install-runc,install-gotestsum,test-cri
592606
593607 tests-cri-in-userns :
594608 name : " CRI-in-UserNS"
@@ -597,6 +611,11 @@ jobs:
597611 timeout-minutes : 40
598612 needs : [project, linters, protos, man]
599613
614+ strategy :
615+ fail-fast : false
616+ matrix :
617+ cgroup_driver : [cgroupfs, systemd]
618+
600619 steps :
601620 - uses : actions/checkout@v4
602621 - name : Set up cgroup v2 delegation
@@ -608,11 +627,35 @@ jobs:
608627 EOF
609628 sudo systemctl daemon-reload
610629 - name : Build cri-in-userns image
611- run : podman build --target cri-in-userns -t cri-in-userns -f ./contrib/Dockerfile.test .
630+ env :
631+ CGROUP_DRIVER : ${{ matrix.cgroup_driver }}
632+ run : |
633+ if [ "$CGROUP_DRIVER" = "systemd" ];then
634+ podman build --target cri-in-userns-systemd -t cri-in-userns-systemd -f ./contrib/Dockerfile.test .
635+ else
636+ podman build --target cri-in-userns -t cri-in-userns -f ./contrib/Dockerfile.test .
637+ fi
638+
612639 - name : Run cri-in-userns image
640+ env :
641+ CGROUP_DRIVER : ${{ matrix.cgroup_driver }}
613642 # Rootless Podman is used for testing CRI-in-UserNS
614643 # (We could use rootless Docker or rootless nerdctl, but we are using Podman here because it is preinstalled)
615- run : podman run --rm --privileged cri-in-userns
644+ run : |
645+ if [ "$CGROUP_DRIVER" = "systemd" ];then
646+ set +e
647+ touch ./critest_exit_code.txt
648+ podman run --rm --privileged --group-add keep-groups -v ./critest_exit_code.txt:/tmp/critest_exit_code.txt cri-in-userns-systemd
649+ exit_code=`cat ./critest_exit_code.txt`
650+ echo "exit_code:"$exit_code
651+ if [ "$exit_code" -gt 0 ]; then
652+ exit 1
653+ else
654+ exit 0
655+ fi
656+ else
657+ podman run --rm --privileged cri-in-userns
658+ fi
616659
617660 tests-mac-os :
618661 name : MacOS unit tests
0 commit comments