diff --git a/.github/workflows/container-publish.yml b/.github/workflows/container-publish.yml index 768f3bf..cfa6eb9 100644 --- a/.github/workflows/container-publish.yml +++ b/.github/workflows/container-publish.yml @@ -47,6 +47,14 @@ jobs: version: "9.6" context: rockylinux-9 file: rockylinux-9/Containerfile-9.6 + - os: rockylinux + version: "10" + context: rockylinux-10 + file: rockylinux-10/Containerfile + - os: rockylinux + version: "10.0" + context: rockylinux-10 + file: rockylinux-10/Containerfile-10.0 - os: almalinux version: "8" context: almalinux-8 @@ -71,6 +79,14 @@ jobs: version: "9.6" context: almalinux-9 file: almalinux-9/Containerfile-9.6 + - os: almalinux + version: "10" + context: almalinux-10 + file: almalinux-10/Containerfile + - os: almalinux + version: "10.0" + context: almalinux-10 + file: almalinux-10/Containerfile-10.0 - os: leap version: "15" context: leap @@ -104,8 +120,10 @@ jobs: run: | make -C rockylinux-8 make -C rockylinux-9 + make -C rockylinux-10 make -C almalinux-8 make -C almalinux-9 + make -C almalinux-10 # Install the cosign tool # https://github.com/sigstore/cosign-installer diff --git a/almalinux-10/.gitignore b/almalinux-10/.gitignore new file mode 100644 index 0000000..d3c1c62 --- /dev/null +++ b/almalinux-10/.gitignore @@ -0,0 +1 @@ +Containerfile-10.* diff --git a/almalinux-10/Containerfile b/almalinux-10/Containerfile new file mode 100644 index 0000000..c7fa8e7 --- /dev/null +++ b/almalinux-10/Containerfile @@ -0,0 +1,44 @@ +FROM docker.io/library/almalinux:10 + +RUN dnf update -y \ + && dnf install -y --allowerasing \ + coreutils \ + cpio \ + e2fsprogs \ + ethtool \ + findutils \ + initscripts \ + ipmitool \ + iproute \ + kernel-core \ + kernel-modules \ + net-tools \ + NetworkManager \ + nfs-utils \ + openssh-clients \ + openssh-server \ + pciutils \ + psmisc \ + rsync \ + rsyslog \ + strace \ + wget \ + which \ + words \ + && dnf remove -y selinux-policy \ + && dnf clean all + +RUN chmod u+w / # https://github.com/openhpc/ohpc/issues/2061 +# remove unused dynamic system user +RUN userdel systemd-oom && \ + userdel systemd-coredump + +COPY excludes /etc/warewulf/ +COPY container_exit.sh /etc/warewulf/ +RUN /etc/warewulf/container_exit.sh + +CMD [ "/bin/echo", "-e", \ + "This image is intended to be used with the Warewulf cluster management and", \ + "\nprovisioning system.", \ + "\n", \ + "\nFor more information about Warewulf, visit https://warewulf.org" ] diff --git a/almalinux-10/Containerfile-fixed b/almalinux-10/Containerfile-fixed new file mode 100644 index 0000000..2f77a13 --- /dev/null +++ b/almalinux-10/Containerfile-fixed @@ -0,0 +1,50 @@ +FROM docker.io/library/almalinux:${release} + +RUN sed -i /etc/yum.repos.d/almalinux*.repo \ + -e 's/^# baseurl=/baseurl=/' \ + -e 's/^mirrorlist=/# mirrorlist=/' \ + -e 's/\$releasever/${release}/' \ + && dnf clean all + +RUN dnf update -y \ + && dnf install -y --allowerasing \ + coreutils \ + cpio \ + e2fsprogs \ + ethtool \ + findutils \ + initscripts \ + ipmitool \ + iproute \ + kernel-core \ + kernel-modules \ + net-tools \ + NetworkManager \ + nfs-utils \ + openssh-clients \ + openssh-server \ + pciutils \ + psmisc \ + rsync \ + rsyslog \ + strace \ + wget \ + which \ + words \ + && dnf remove -y selinux-policy \ + && dnf clean all + +RUN chmod u+w / # https://github.com/openhpc/ohpc/issues/2061 +# remove unused dynamic system user +RUN userdel systemd-oom && \ + userdel systemd-coredump + +COPY excludes /etc/warewulf/ +COPY container_exit.sh /etc/warewulf/ +RUN /etc/warewulf/container_exit.sh + +CMD [ "/bin/echo", "-e", \ + "This image is intended to be used with the Warewulf cluster management and", \ + "\nprovisioning system.", \ + "\n", \ + "\nFor more information about Warewulf, visit https://warewulf.org" ] diff --git a/almalinux-10/Containerfile-vault b/almalinux-10/Containerfile-vault new file mode 100644 index 0000000..c30217b --- /dev/null +++ b/almalinux-10/Containerfile-vault @@ -0,0 +1,51 @@ +FROM docker.io/library/almalinux:${release} + +RUN sed -i /etc/yum.repos.d/almalinux*.repo \ + -e 's/^# baseurl=/baseurl=/' \ + -e 's/^mirrorlist=/# mirrorlist=/' \ + -e 's/\$releasever/${release}/' \ + -e 's|/almalinux/|/vault/|' \ + && dnf clean all + +RUN dnf update -y \ + && dnf install -y --allowerasing \ + coreutils \ + cpio \ + e2fsprogs \ + ethtool \ + findutils \ + initscripts \ + ipmitool \ + iproute \ + kernel-core \ + kernel-modules \ + net-tools \ + NetworkManager \ + nfs-utils \ + openssh-clients \ + openssh-server \ + pciutils \ + psmisc \ + rsync \ + rsyslog \ + strace \ + wget \ + which \ + words \ + && dnf remove -y selinux-policy \ + && dnf clean all + +RUN chmod u+w / # https://github.com/openhpc/ohpc/issues/2061 +# remove unused dynamic system user +RUN userdel systemd-oom && \ + userdel systemd-coredump + +COPY excludes /etc/warewulf/ +COPY container_exit.sh /etc/warewulf/ +RUN /etc/warewulf/container_exit.sh + +CMD [ "/bin/echo", "-e", \ + "This image is intended to be used with the Warewulf cluster management and", \ + "\nprovisioning system.", \ + "\n", \ + "\nFor more information about Warewulf, visit https://warewulf.org" ] diff --git a/almalinux-10/Makefile b/almalinux-10/Makefile new file mode 100644 index 0000000..9e82caa --- /dev/null +++ b/almalinux-10/Makefile @@ -0,0 +1,12 @@ +.PHONY: all +all: Containerfile-10.0 + +.PHONY: clean +clean: + rm -f Containerfile-10.* + +Containerfile-10.%: Containerfile-vault + env release=10.$* envsubst '$$release' $@ + +Containerfile-10.0: Containerfile-fixed + env release=10.0 envsubst '$$release' $@ diff --git a/almalinux-10/README.md b/almalinux-10/README.md new file mode 100644 index 0000000..a96deea --- /dev/null +++ b/almalinux-10/README.md @@ -0,0 +1,21 @@ +# AlmaLinux 10 + +A Warewulf container definition based on AlmaLinux 10. + +``` +wwctl container import docker://ghcr.io/warewulf/warewulf-almalinux:10 almalinux-10 +``` + +Also available are definitions for individual point releases (e.g., AlmaLinux +10.0). To generate these Containerfiles, run `make`. + +The AlmaLinux community provides updates for the current point release of +AlmaLinux 10. If you need to remain on a specific point release you may want +to engage with a commercial support provider for long-term support. + +**Note:** These container images are configured to minimize size. If you desire for +man-pages and other documentation to be available to users, e.g. on login-nodes, +the `/etc/yum.conf` and `/etc/dnf/dnf.conf` flag `tsflags=nodocs` needs +to be removed before installing additional packages. + +https://almalinux.org/support diff --git a/almalinux-10/container_exit.sh b/almalinux-10/container_exit.sh new file mode 100755 index 0000000..724d0ae --- /dev/null +++ b/almalinux-10/container_exit.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +echo " +The AlmaLinux community provides updates for the latest point release of +AlmaLinux 10. If you need to remain on a specific point release (e.g., +AlmaLinux 10.0) you may want to engage with a commercial support provider for +long-term support. + +https://almalinux.org/support +" + +export LANG=C LC_CTYPE=C + +set -x +dnf clean all +rm -f /etc/machine-id /var/lib/dbus/machine-id diff --git a/almalinux-10/excludes b/almalinux-10/excludes new file mode 100644 index 0000000..5be2a7e --- /dev/null +++ b/almalinux-10/excludes @@ -0,0 +1 @@ +/boot/ diff --git a/almalinux-9/README.md b/almalinux-9/README.md index 90895e4..6117524 100644 --- a/almalinux-9/README.md +++ b/almalinux-9/README.md @@ -1,4 +1,4 @@ -# Alma Linux 9 +# AlmaLinux 9 A Warewulf container definition based on AlmaLinux 9. @@ -13,4 +13,9 @@ The AlmaLinux community provides updates for the current point release of AlmaLinux 9. If you need to remain on a specific point release you may want to engage with a commercial support provider for long-term support. +**Note:** These container images are configured to minimize size. If you desire for +man-pages and other documentation to be available to users, e.g. on login-nodes, +the `/etc/yum.conf` and `/etc/dnf/dnf.conf` flag `tsflags=nodocs` needs +to be removed before installing additional packages. + https://almalinux.org/support diff --git a/rockylinux-10/.gitignore b/rockylinux-10/.gitignore new file mode 100644 index 0000000..d3c1c62 --- /dev/null +++ b/rockylinux-10/.gitignore @@ -0,0 +1 @@ +Containerfile-10.* diff --git a/rockylinux-10/Containerfile b/rockylinux-10/Containerfile new file mode 100644 index 0000000..2c27238 --- /dev/null +++ b/rockylinux-10/Containerfile @@ -0,0 +1,44 @@ +FROM docker.io/rockylinux/rockylinux:10 + +RUN dnf update -y \ + && dnf install -y --allowerasing \ + coreutils \ + cpio \ + e2fsprogs \ + ethtool \ + findutils \ + initscripts \ + ipmitool \ + iproute \ + kernel-core \ + kernel-modules \ + net-tools \ + NetworkManager \ + nfs-utils \ + openssh-clients \ + openssh-server \ + pciutils \ + psmisc \ + rsync \ + rsyslog \ + strace \ + wget \ + which \ + words \ + && dnf remove -y selinux-policy \ + && dnf clean all + +RUN chmod u+w / # https://github.com/openhpc/ohpc/issues/2061 +# remove unused dynamic system user +RUN userdel systemd-oom && \ + userdel systemd-coredump + +COPY excludes /etc/warewulf/ +COPY container_exit.sh /etc/warewulf/ +RUN /etc/warewulf/container_exit.sh + +CMD [ "/bin/echo", "-e", \ + "This image is intended to be used with the Warewulf cluster management and", \ + "\nprovisioning system.", \ + "\n", \ + "\nFor more information about Warewulf, visit https://warewulf.org" ] diff --git a/rockylinux-10/Containerfile-fixed b/rockylinux-10/Containerfile-fixed new file mode 100644 index 0000000..4868fb3 --- /dev/null +++ b/rockylinux-10/Containerfile-fixed @@ -0,0 +1,50 @@ +FROM docker.io/rockylinux/rockylinux:${release} + +RUN sed -i /etc/yum.repos.d/rocky*.repo \ + -e 's/^#baseurl=/baseurl=/' \ + -e 's/^mirrorlist=/#mirrorlist=/' \ + -e 's/\$releasever/${release}/' \ + && dnf clean all + +RUN dnf update -y \ + && dnf install -y --allowerasing \ + coreutils \ + cpio \ + e2fsprogs \ + ethtool \ + findutils \ + initscripts \ + ipmitool \ + iproute \ + kernel-core \ + kernel-modules \ + net-tools \ + NetworkManager \ + nfs-utils \ + openssh-clients \ + openssh-server \ + pciutils \ + psmisc \ + rsync \ + rsyslog \ + strace \ + wget \ + which \ + words \ + && dnf remove -y selinux-policy \ + && dnf clean all + +RUN chmod u+w / # https://github.com/openhpc/ohpc/issues/2061 +# remove unused dynamic system user +RUN userdel systemd-oom && \ + userdel systemd-coredump + +COPY excludes /etc/warewulf/ +COPY container_exit.sh /etc/warewulf/ +RUN /etc/warewulf/container_exit.sh + +CMD [ "/bin/echo", "-e", \ + "This image is intended to be used with the Warewulf cluster management and", \ + "\nprovisioning system.", \ + "\n", \ + "\nFor more information about Warewulf, visit https://warewulf.org" ] diff --git a/rockylinux-10/Containerfile-vault b/rockylinux-10/Containerfile-vault new file mode 100644 index 0000000..543312a --- /dev/null +++ b/rockylinux-10/Containerfile-vault @@ -0,0 +1,51 @@ +FROM docker.io/rockylinux/rockylinux:${release} + +RUN sed -i /etc/yum.repos.d/rocky*.repo \ + -e 's/^#baseurl=/baseurl=/' \ + -e 's/^mirrorlist=/#mirrorlist=/' \ + -e 's/\$releasever/${release}/' \ + && echo 'vault/rocky' >/etc/dnf/vars/contentdir \ + && dnf clean all + +RUN dnf update -y \ + && dnf install -y --allowerasing \ + coreutils \ + cpio \ + e2fsprogs \ + ethtool \ + findutils \ + initscripts \ + ipmitool \ + iproute \ + kernel-core \ + kernel-modules \ + net-tools \ + NetworkManager \ + nfs-utils \ + openssh-clients \ + openssh-server \ + pciutils \ + psmisc \ + rsync \ + rsyslog \ + strace \ + wget \ + which \ + words \ + && dnf remove -y selinux-policy \ + && dnf clean all + +RUN chmod u+w / # https://github.com/openhpc/ohpc/issues/2061 +# remove unused dynamic system user +RUN userdel systemd-oom && \ + userdel systemd-coredump + +COPY excludes /etc/warewulf/ +COPY container_exit.sh /etc/warewulf/ +RUN /etc/warewulf/container_exit.sh + +CMD [ "/bin/echo", "-e", \ + "This image is intended to be used with the Warewulf cluster management and", \ + "\nprovisioning system.", \ + "\n", \ + "\nFor more information about Warewulf, visit https://warewulf.org" ] diff --git a/rockylinux-10/Makefile b/rockylinux-10/Makefile new file mode 100644 index 0000000..9e82caa --- /dev/null +++ b/rockylinux-10/Makefile @@ -0,0 +1,12 @@ +.PHONY: all +all: Containerfile-10.0 + +.PHONY: clean +clean: + rm -f Containerfile-10.* + +Containerfile-10.%: Containerfile-vault + env release=10.$* envsubst '$$release' $@ + +Containerfile-10.0: Containerfile-fixed + env release=10.0 envsubst '$$release' $@ diff --git a/rockylinux-10/README.md b/rockylinux-10/README.md new file mode 100644 index 0000000..eec859a --- /dev/null +++ b/rockylinux-10/README.md @@ -0,0 +1,21 @@ +# Rocky Linux 10 + +A Warewulf container definition based on Rocky Linux 10. + +``` +wwctl container import docker://ghcr.io/warewulf/warewulf-rockylinux:10 rockylinux-10 +``` + +Also available are definitions for individual point releases (e.g., Rocky Linux +10.0). To generate these Containerfiles, run `make`. + +The Rocky Linux community provides updates for the current point release of +Rocky Linux 10. If you need to remain on a specific point release you may want +to engage with a commercial support provider for long-term support. + +**Note:** These container images are configured to minimize size. If you desire for +man-pages and other documentation to be available to users, e.g. on login-nodes, +the `/etc/yum.conf` and `/etc/dnf/dnf.conf` flag `tsflags=nodocs` needs +to be removed before installing additional packages. + +https://rockylinux.org/support diff --git a/rockylinux-10/container_exit.sh b/rockylinux-10/container_exit.sh new file mode 100755 index 0000000..97d8c2c --- /dev/null +++ b/rockylinux-10/container_exit.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +echo " +The Rocky Linux community provides updates for the latest point release of +Rocky Linux 10. If you need to remain on a specific point release (e.g., Rocky +Linux 10.0) you may want to engage with a commercial support provider for +long-term support. + +https://rockylinux.org/support +" + +export LANG=C LC_CTYPE=C + +set -x +dnf clean all +rm -f /etc/machine-id /var/lib/dbus/machine-id diff --git a/rockylinux-10/excludes b/rockylinux-10/excludes new file mode 100644 index 0000000..5be2a7e --- /dev/null +++ b/rockylinux-10/excludes @@ -0,0 +1 @@ +/boot/