11---
2- # We use Cirrus for CentOS (native) and Fedora (in Vagrant), because neither
3- # CentOS nor Fedora is available on GHA natively, so the only option is VM.
2+ # We use Cirrus for RHEL clones (native) and Fedora (in Vagrant), because
3+ # neither is available on GHA natively, so the only option is VM.
44# In GHA, nested virtualization is only supported on macOS instances, which
55# are slow and flaky.
66
@@ -82,31 +82,26 @@ task:
8282 RPMS : gcc git iptables jq glibc-static libseccomp-devel make criu fuse-sshfs container-selinux
8383 # yamllint disable rule:key-duplicates
8484 matrix :
85- DISTRO : centos-7
86- DISTRO : centos-stream -9
85+ DISTRO : almalinux-8
86+ DISTRO : almalinux -9
8787
8888 name : ci / $DISTRO
8989
9090 compute_engine_instance :
91- image_project : centos -cloud
91+ image_project : almalinux -cloud
9292 image : family/$DISTRO
9393 platform : linux
9494 cpu : 4
9595 memory : 8G
9696
9797 install_dependencies_script : |
9898 case $DISTRO in
99- centos-7)
100- (cd /etc/yum.repos.d && curl -O https://copr.fedorainfracloud.org/coprs/adrian/criu-el7/repo/epel-7/adrian-criu-el7-epel-7.repo)
101- # EPEL is needed for jq and fuse-sshfs.
102- rpm -q epel-release || rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
103- # sysctl
104- echo "user.max_user_namespaces=15076" > /etc/sysctl.d/userns.conf
105- sysctl --system
99+ *-8)
100+ yum config-manager --set-enabled powertools # for glibc-static
106101 ;;
107- centos-stream -9)
102+ * -9)
108103 dnf config-manager --set-enabled crb # for glibc-static
109- dnf -y install epel-release epel-next-release # for fuse-sshfs
104+ dnf -y install epel-release # for fuse-sshfs
110105 # Delegate all cgroup v2 controllers to rootless user via --systemd-cgroup.
111106 # The default (since systemd v252) is "pids memory cpu".
112107 mkdir -p /etc/systemd/system/[email protected] @@ -121,11 +116,7 @@ task:
121116 done
122117 [ $? -eq 0 ] # fail if yum failed
123118
124- # Double check that all rpms were installed (yum from CentOS 7
125- # does not exit with an error if some packages were not found).
126- # Use --whatprovides since some packages are renamed.
127- rpm -q --whatprovides $RPMS
128- # install Go
119+ # Install Go.
129120 PREFIX="https://go.dev/dl/"
130121 # Find out the latest minor release URL.
131122 eval $(curl -fsSL "${PREFIX}?mode=json" | jq -r --arg Ver "$GO_VERSION" '.[] | select(.version | startswith("go\($Ver)")) | .files[] | select(.os == "linux" and .arch == "amd64" and .kind == "archive") | "filename=\"" + .filename + "\""')
@@ -179,22 +170,11 @@ task:
179170 ssh -tt localhost "make -C /home/runc localintegration"
180171 integration_systemd_rootless_script : |
181172 case $DISTRO in
182- centos-7)
183- echo "SKIP: integration_systemd_rootless_script requires cgroup v2"
184- ;;
185- *)
186- ssh -tt localhost "make -C /home/runc localrootlessintegration RUNC_USE_SYSTEMD=yes"
187- esac
188- integration_fs_rootless_script : |
189- case $DISTRO in
190- centos-7)
191- # Most probably EPERM on cgroup.procs is caused by some missing kernel
192- # patch. The other issue is SELinux, but even with SELinux fixes in
193- # https://github.com/opencontainers/runc/pull/4068 it still doesn't work.
194- # Does not make sense in trying to fix this since it's an older distro.
195- echo "SKIP: integration_fs_rootless_script is skipped because of EPERM on writing cgroup.procs"
173+ *-8)
174+ echo "SKIP: integration_systemd_rootless_script requires cgroup v2"
196175 ;;
197- *)
198- ssh -tt localhost "make -C /home/runc localrootlessintegration"
199- ;;
176+ *)
177+ ssh -tt localhost "make -C /home/runc localrootlessintegration RUNC_USE_SYSTEMD=yes"
200178 esac
179+ integration_fs_rootless_script : |
180+ ssh -tt localhost "make -C /home/runc localrootlessintegration"
0 commit comments