diff --git a/README.md b/README.md index d365ec3..4ec44f2 100644 --- a/README.md +++ b/README.md @@ -12,23 +12,28 @@ WARNING: This image has **not** been heavily tested, though the underlying compo ### `ucore` -Suitable for running containerized workloads on either baremetal or virtual machines, this image tries to stay lightweight with not too many additions. +Suitable for running containerized workloads on either baremetal or virtual machines, this image tries to stay lightweight but functional for multiple use cases, including that of a storage server (NAS). - Starts with a [Fedora CoreOS image](https://quay.io/repository/fedora/fedora-coreos?tab=tags) - Adds the following: - [cockpit](https://cockpit-project.org) - [distrobox](https://github.com/89luca89/distrobox) + - [duperemove](https://github.com/markfasheh/duperemove) - guest VM agents (`qemu-guest-agent` and `open-vm-tools`) + - intel wifi firmware - CoreOS omits this despite including atheros wifi firmware... hardware enablement FTW + - [mergerfs](https://github.com/trapexit/mergerfs) - moby-engine(docker), docker-compose and podman-compose + - [snapraid](https://www.snapraid.it/) - [tailscale](https://tailscale.com) and [wireguard-tools](https://www.wireguard.com) - [tmux](https://github.com/tmux/tmux/wiki/Getting-Started) + - udev rules enabling full functionality on some [Realtek 2.5Gbit USB Ethernet](https://github.com/wget/realtek-r8152-linux/) devices - Optional [nvidia versions](#tag-matrix) also add: - - [nvidia driver](https://negativo17.org/nvidia-driver) - latest driver (currently version 535) built from negativo17's akmod package + - [nvidia driver](https://github.com/ublue-os/ucore-kmods) - latest driver (currently version 535) built from negativo17's akmod package - [nvidia-container-toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/sample-workload.html) - latest toolkit which supports both root and rootless podman containers and CDI - - [nvidia container selinux policy](https://github.com/NVIDIA/dgx-selinux/tree/master/src/nvidia-container-selinux) - allos using `--security-opt label=type:nvidia_container_t` for some jobs (some will still need `--security-opt label=disable` as suggested by nvidia) + - [nvidia container selinux policy](https://github.com/NVIDIA/dgx-selinux/tree/master/src/nvidia-container-selinux) - allows using `--security-opt label=type:nvidia_container_t` for some jobs (some will still need `--security-opt label=disable` as suggested by nvidia) - Optional [ZFS versions](#tag-matrix) also add: - [sanoid/syncoid dependencies](https://github.com/jimsalterjrs/sanoid) - [see below](#zfs) for details - - [ZFS](https://github.com/openzfs/zfs) + - [zfs driver](https://github.com/ublue-os/ucore-kmods) - latest driver (currently pinned to 2.1.x series) - Enables staging of automatic system updates via rpm-ostreed - Enables password based SSH auth (required for locally running cockpit web interface) - Disables Zincati auto upgrade/reboot service @@ -38,19 +43,14 @@ Note: per [cockpit instructions](https://cockpit-project.org/running.html#coreos ### `ucore-hci` -Hyper-Coverged Infrastructure(HCI) refers to storage and virtualization in one place... So this image is suitable for use as a hypervisor, storage server(NAS), as well as running containerized workloads). Accordingingly, it will be a bit larger due to extra hardware support, storage and virtualization packages. +Hyper-Coverged Infrastructure(HCI) refers to storage and virtualization in one place... So this image primarily adds the virtualization stack. - Starts with `ucore` to give you everything above, plus: - Adds the following: - [cockpit-machines](https://github.com/cockpit-project/cockpit-machines): Cockpit GUI for managing virtual machines - - [duperemove](https://github.com/markfasheh/duperemove) - - intel wifi firmware - CoreOS omits this despite including atheros wifi firmware... hardware enablement FTW - [libvirt-client](https://libvirt.org/): `virsh` command-line utility for managing virtual machines - [libvirt-daemon-kvm](https://libvirt.org/): libvirt KVM hypervisor management - - [mergerfs](https://github.com/trapexit/mergerfs) - - [snapraid](https://www.snapraid.it/) - - udev rules enabling full functionality on some [Realtek 2.5Gbit USB Ethernet](https://github.com/wget/realtek-r8152-linux/) devices - virt-install: command-line utility for installing virtual machines Note: Fedora now uses `DefaultTimeoutStop=45s` for systemd services which could cause `libvirtd` to quit before shutting down slow VMs. Consider adding `TimeoutStopSec=120s` as an override for `libvirtd.service` if needed. diff --git a/hci/Containerfile b/hci/Containerfile index 606ac7c..30648e2 100644 --- a/hci/Containerfile +++ b/hci/Containerfile @@ -12,8 +12,6 @@ ARG IMAGE_NAME="${IMAGE_NAME:-ucore}" COPY *.sh /tmp/ COPY packages.json /tmp/packages.json -COPY usr /usr - RUN mkdir -p /var/lib/alternatives \ && /tmp/install.sh \ && mv /var/lib/alternatives /staged-alternatives \ diff --git a/hci/install.sh b/hci/install.sh index cacb074..24020a8 100755 --- a/hci/install.sh +++ b/hci/install.sh @@ -10,6 +10,3 @@ curl -L https://copr.fedorainfracloud.org/coprs/ublue-os/ucore/repo/fedora-${REL # install packages.json stuffs /tmp/packages.sh - -# install packages direct from github -/tmp/github-release-install.sh trapexit/mergerfs fc.x86_64 diff --git a/hci/packages.json b/hci/packages.json index dc43a94..c67ac17 100644 --- a/hci/packages.json +++ b/hci/packages.json @@ -3,13 +3,8 @@ "include": { "all": [ "cockpit-machines", - "duperemove", - "iwlegacy-firmware", - "iwlwifi-dvm-firmware", - "iwlwifi-mvm-firmware", "libvirt-client", "libvirt-daemon-kvm", - "snapraid", "nfs-utils", "virt-install" ] diff --git a/hci/github-release-install.sh b/main/github-release-install.sh similarity index 100% rename from hci/github-release-install.sh rename to main/github-release-install.sh diff --git a/main/install.sh b/main/install.sh index bfbf76d..05bc81e 100755 --- a/main/install.sh +++ b/main/install.sh @@ -55,3 +55,6 @@ curl -L https://pkgs.tailscale.com/stable/fedora/tailscale.repo -o /etc/yum.repo # install packages.json stuffs /tmp/packages.sh + +# install packages direct from github +/tmp/github-release-install.sh trapexit/mergerfs fc.x86_64 diff --git a/main/packages.json b/main/packages.json index e0537be..fdf8957 100644 --- a/main/packages.json +++ b/main/packages.json @@ -9,14 +9,18 @@ "cockpit-system", "dbus-tools", "distrobox", + "duperemove", "firewalld", + "iwlegacy-firmware", + "iwlwifi-dvm-firmware", + "iwlwifi-mvm-firmware", "open-vm-tools", "podman", "podman-compose", "qemu-guest-agent", + "snapraid", "tailscale", "tmux", - "vim", "wget", "wireguard-tools", "xdg-dbus-proxy", diff --git a/hci/usr/etc/udev/rules.d/50-usb-realtek-net.rules b/main/usr/etc/udev/rules.d/50-usb-realtek-net.rules similarity index 100% rename from hci/usr/etc/udev/rules.d/50-usb-realtek-net.rules rename to main/usr/etc/udev/rules.d/50-usb-realtek-net.rules