diff --git a/ic-os/guestos/context/Dockerfile.base b/ic-os/guestos/context/Dockerfile.base index b2621f1f1430..16df7e371326 100644 --- a/ic-os/guestos/context/Dockerfile.base +++ b/ic-os/guestos/context/Dockerfile.base @@ -18,7 +18,7 @@ # First build stage: # - Download 3rd party tools # -FROM ubuntu:24.04 as download +FROM ubuntu:26.04 as download USER root:root @@ -37,11 +37,11 @@ RUN cd /tmp/ && \ # # Second build stage: -# - Download and cache minimal Ubuntu Server 24.04 LTS Docker image +# - Download and cache minimal Ubuntu Server 26.04 LTS Docker image # - Install and cache upstream packages from built-in Ubuntu repositories # - Copy downloaded archives from first build stage into the target image # -FROM ubuntu:24.04 +FROM ubuntu:26.04 USER root:root @@ -56,16 +56,14 @@ ARG PACKAGE_FILES=packages.common # The kernel is installed here to keep the extra modules in sync. # Unfortunately, there is no metapackage to track the extra modules that does # not also include firmware. -ARG _KERNEL_PACKAGE=linux-image-virtual-hwe-24.04 +ARG _KERNEL_PACKAGE=linux-image-virtual-hwe-26.04 RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone COPY packages.* /tmp/ RUN apt-get -y update && \ apt-get -y upgrade && \ apt-get -y --no-install-recommends install $(for P in ${PACKAGE_FILES}; do cat /tmp/$P | sed -e "s/#.*//" ; done) \ - # TODO(NODE-1852): Temporarily pin the kernel here. - # ${_KERNEL_PACKAGE} \ - # linux-modules-extra-$(apt-cache depends ${_KERNEL_PACKAGE} | sed -n -e 's/ Depends: linux-image-\(.*\)-generic/\1/p')-generic && \ - linux-image-6.14.0-37-generic linux-modules-extra-6.14.0-37-generic && \ + ${_KERNEL_PACKAGE} \ + linux-modules-$(apt-cache depends ${_KERNEL_PACKAGE} | sed -n -e 's/ Depends: linux-image-\(.*\)-generic/\1/p')-generic && \ rm /tmp/packages.* # Install node_exporter diff --git a/ic-os/guestos/context/packages.dev b/ic-os/guestos/context/packages.dev index 8b5245076251..8f88a141a464 100644 --- a/ic-os/guestos/context/packages.dev +++ b/ic-os/guestos/context/packages.dev @@ -22,7 +22,7 @@ strace setools # flamegraphs (scalability suite) -linux-tools-virtual-hwe-24.04 +linux-tools-virtual-hwe-26.04 # performance testing additions fio diff --git a/ic-os/hostos/context/Dockerfile.base b/ic-os/hostos/context/Dockerfile.base index 169824116be5..64f48bd71e42 100644 --- a/ic-os/hostos/context/Dockerfile.base +++ b/ic-os/hostos/context/Dockerfile.base @@ -20,7 +20,7 @@ # First build stage: # - Download 3rd party tools # -FROM ubuntu:24.04 AS download +FROM ubuntu:26.04 AS download USER root:root @@ -37,36 +37,18 @@ RUN cd /tmp/ && \ echo "c46e5b6f53948477ff3a19d97c58307394a29fe64a01905646f026ddc32cb65b node_exporter-1.10.2.linux-amd64.tar.gz" > node_exporter.sha256 && \ sha256sum -c node_exporter.sha256 -# Download pre-built QEMU 10.2 (Ubuntu 24.04 comes with only version 8) -# Note: file name is confusing but it's actually QEMU 10.2 -RUN cd /tmp/ && \ - curl -L -O https://github.com/dfinity/sev-snp-deps/releases/download/qemu-02944cc/qemu_10-1_amd64.deb && \ - echo "d9a6c76e2a58db9a504e24dc652b05c24b85a0c343842a94327d0707308ecef6 qemu_10-1_amd64.deb" > qemu.sha256 && \ - sha256sum -c qemu.sha256 - # # Second build stage: -# - Download and cache minimal Ubuntu Server 24.04 LTS Docker image. +# - Download and cache minimal Ubuntu Server 26.04 LTS Docker image. # - Install and cache upstream packages from built-in Ubuntu repositories. # - Install compiled packages from the second stage. # -FROM ubuntu:24.04 +FROM ubuntu:26.04 USER root:root -ARG CPU_SUPPORT ENV SOURCE_DATE_EPOCH=0 ENV TZ=UTC -ENV DEBIAN_FRONTEND=noninteractive - -COPY --from=download /tmp/qemu_10-1_amd64.deb /tmp/ -RUN dpkg -i /tmp/qemu_10-1_amd64.deb && rm /tmp/qemu_10-1_amd64.deb - -# Add future release, as opt-in targets -RUN echo "deb http://archive.ubuntu.com/ubuntu plucky main universe restricted multiverse" >> /etc/apt/sources.list.d/future.list && \ - echo "Package: *" >> /etc/apt/preferences && \ - echo "Pin: release n=plucky" >> /etc/apt/preferences && \ - echo "Pin-Priority: -10" >> /etc/apt/preferences # For the prod image, just use packages.common to define the packages installed # on target. @@ -75,10 +57,8 @@ RUN echo "deb http://archive.ubuntu.com/ubuntu plucky main universe restricted m ARG PACKAGE_FILES=packages.common RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone COPY packages.* /tmp/ -# NODE-1718: libvirt-daemon-config-network must be installed early to avoid a broken dependency ordering RUN apt-get -y update && \ apt-get -y upgrade && \ - apt-get -y --no-install-recommends install libvirt-daemon-config-network && \ apt-get -y --no-install-recommends install $(for P in ${PACKAGE_FILES}; do cat /tmp/$P | sed -e "s/#.*//" ; done) && \ rm /tmp/packages.* diff --git a/ic-os/hostos/context/packages.common b/ic-os/hostos/context/packages.common index 614f43a3c9e7..30fe1cfae2c1 100644 --- a/ic-os/hostos/context/packages.common +++ b/ic-os/hostos/context/packages.common @@ -5,7 +5,7 @@ # image only. # Need kernel to boot anything -linux-image-generic-hwe-24.04 +linux-image-generic-hwe-26.04 initramfs-tools # Need systemd for boot process @@ -36,8 +36,7 @@ lvm2 netcat-openbsd nftables traceroute -# NODE-1718: Parted has a conflict with the new libvirt, install it below -# parted +parted python-is-python3 rsync sudo @@ -60,32 +59,14 @@ checkpolicy dosfstools ethtool ipmitool -lsof +libvirt-daemon-system +libvirt-dev locales +lsof moreutils mtools nvme-cli +ovmf pciutils +qemu-system-x86 strace - -# Install select components from future releases -# Install >=2025 OVMF -ovmf/plucky # Top level - -# NODE-1718: Parted has a conflict with the new libvirt, it should be installed above once -# this is resolved -parted/plucky - -# Install >=10.5.0 libvirt -libvirt-daemon-system/plucky # Top level -libvirt-dev/plucky # Top level -libvirt-daemon-config-network/plucky # Dependency -libvirt-daemon-config-nwfilter/plucky # Dependency -libvirt-daemon-driver-network/plucky # Dependency -libvirt-daemon-driver-nodedev/plucky # Dependency -libvirt-daemon-driver-nwfilter/plucky # Dependency -libvirt-daemon-driver-qemu/plucky # Dependency -libvirt-daemon-driver-secret/plucky # Dependency -libvirt-daemon-driver-storage/plucky # Dependency -libvirt-daemon-log/plucky # Dependency -libvirt-daemon/plucky # Dependency diff --git a/ic-os/setupos/context/Dockerfile.base b/ic-os/setupos/context/Dockerfile.base index b52db0c45222..61b077a6690d 100644 --- a/ic-os/setupos/context/Dockerfile.base +++ b/ic-os/setupos/context/Dockerfile.base @@ -7,7 +7,7 @@ # - `docker push/pull dfinity/setupos-base-dev:` # # First build stage: -# - Download and cache minimal Ubuntu Server 24.04 LTS Docker image +# - Download and cache minimal Ubuntu Server 26.04 LTS Docker image # - Install and cache upstream packages from built-in Ubuntu repositories # # NOTE! If you edit this file, you will need to perform the following @@ -16,7 +16,7 @@ # 1. Get your MR approved and merged into master # 2. On the next hourly master pipeline, click the "deploy-setup-os-baseimg" job # 3. Note the sha256 and update the sha256 reference in the neighboring Dockerfiles. -FROM ubuntu:24.04 +FROM ubuntu:26.04 USER root:root diff --git a/ic-os/setupos/context/packages.common b/ic-os/setupos/context/packages.common index b09953aba6cf..efdb313c1a0f 100644 --- a/ic-os/setupos/context/packages.common +++ b/ic-os/setupos/context/packages.common @@ -3,7 +3,7 @@ # operation for the "prod" image. # Need kernel to boot anything -linux-image-generic-hwe-24.04 +linux-image-generic-hwe-26.04 initramfs-tools # Need systemd for boot process