<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-build.git/scripts/iso-to-oci, branch rolling</title>
<subtitle>VyOS image build scripts (mirror of https://github.com/vyos/vyos-build.git)
</subtitle>
<id>https://git.amelek.net/vyos/vyos-build.git/atom?h=rolling</id>
<link rel='self' href='https://git.amelek.net/vyos/vyos-build.git/atom?h=rolling'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-build.git/'/>
<updated>2026-09-07T15:31:21+00:00</updated>
<entry>
<title>T9269: add OCI container image test</title>
<updated>2026-09-07T15:31:21+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-09-07T15:31:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-build.git/commit/?id=00180790db298ffb86aabc316cef5837bc7db8cb'/>
<id>urn:sha1:00180790db298ffb86aabc316cef5837bc7db8cb</id>
<content type='text'>
Add scripts/check-oci-container, a container adapted counterpart to
check-qemu-install. It imports the OCI tarball produced by scripts/iso-to-oci,
verifies the containerlab healthcheck survives the import, boots the image with
systemd as PID 1 and then drives the VyOS CLI to run basic operational and
configuration mode tests plus assertions on the rootfs modifications done by
iso-to-oci (locale, banner, /config symlink, removed podman runtime and removed
container CLI nodes).

Wire it up as "make test-oci", which picks up the newest tarball matching the
host architecture.

The boot wait polls for the vyos user in addition to vyos-router, as the unit
reports itself active before the default configuration has been committed.
</content>
</entry>
<entry>
<title>oci: T9269: show a progress spinner for long running steps</title>
<updated>2026-09-06T20:37:04+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-09-06T20:12:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-build.git/commit/?id=f4a7506710b172267e02ce6dd146066f61b5850c'/>
<id>urn:sha1:f4a7506710b172267e02ce6dd146066f61b5850c</id>
<content type='text'>
Unpacking the squashfs and compressing the rootfs keep the script silent for
minutes - it looks hung. Animate a spinner, but only when stdout is a terminal
so CI runs and piped logs keep their single "I: ..." line per step.
</content>
</entry>
<entry>
<title>oci: T9269: remove podman runtime from container image</title>
<updated>2026-09-06T20:37:04+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-09-06T19:37:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-build.git/commit/?id=ffa0733bcc7f512fb0e1ab1a0bf4836952406057'/>
<id>urn:sha1:ffa0733bcc7f512fb0e1ab1a0bf4836952406057</id>
<content type='text'>
Running containers inside the VyOS container is not supported and the
container CLI nodes are stripped from the image anyway, so podman(8) and
its helpers are dead weight - about 110 MiB of the uncompressed rootfs
(podman 43 MiB, podman-remote 32 MiB, netavark and aardvark-dns 21 MiB,
runc 8 MiB), which is roughly 32 MiB of the compressed tarball.

Remove the binaries along with everything that would otherwise dangle:
the podman and netavark systemd units - podman.service is enabled via a
"WantedBy" symlink and would fail on boot - the quadlet generators, the
tmpfiles.d snippet and the configuration shipped by containers-common.

The container operational mode templates are removed as well, they would
only greet the user with a traceback now that podman is gone.
</content>
</entry>
<entry>
<title>oci: T9269: add alive healthcheck command for image import</title>
<updated>2026-09-06T20:37:04+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-09-06T19:15:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-build.git/commit/?id=511e0333f7d6d1126c5154cad6c011de2374130d'/>
<id>urn:sha1:511e0333f7d6d1126c5154cad6c011de2374130d</id>
<content type='text'>
containerlab uses the image healthcheck to determine when a VyOS node is
ready, see https://containerlab.dev/manual/kinds/vyosnetworks_vyos/
A rootfs tarball carries no OCI image configuration, so this can only be
attached when the tarball is imported.
</content>
</entry>
<entry>
<title>oci: T9269: mask systemd services for container startup</title>
<updated>2026-09-06T20:37:04+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-09-03T20:23:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-build.git/commit/?id=61eb829715b5da462ddd680c0410a069bc5c039f'/>
<id>urn:sha1:61eb829715b5da462ddd680c0410a069bc5c039f</id>
<content type='text'>
Adjust systemd units for containerized operation - this is what the containerlab
documentation asks users to do in their Dockerfile, but as we ship a ready made
rootfs there is no build stage where "systemctl" could be run.

Masking and disabling is nothing but symlink handling below /etc/systemd, so we
can do it offline (and cross-architecture) right here.
</content>
</entry>
<entry>
<title>oci: T9269: fix /config symlink creation</title>
<updated>2026-09-01T14:45:22+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-09-01T14:45:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-build.git/commit/?id=dcb271a63c49beac90f81ea5bbc19feefc0b6f91'/>
<id>urn:sha1:dcb271a63c49beac90f81ea5bbc19feefc0b6f91</id>
<content type='text'>
/config already exists as an empty directory in the squashfs, so "ln -s
/opt/vyatta/etc/config /config" did not create the intended symlink - it
placed one at /config/config and left /config a dead directory.

Verified in a running container built from the previous OCI image:

  readlink /config       -&gt; (empty)
  ls -ld /config         -&gt; drwxr-xr-x 2 root root 4096 /config
  readlink /config/config-&gt; /opt/vyatta/etc/config

Remove the directory first, refusing to continue if it ever carries
content, so the breakage cannot silently reappear.
</content>
</entry>
<entry>
<title>oci: T9269: use list of dependent tools</title>
<updated>2026-09-01T13:37:23+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-09-01T13:35:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-build.git/commit/?id=50055b79b1c75837549de02e05c4b9877e4c4262'/>
<id>urn:sha1:50055b79b1c75837549de02e05c4b9877e4c4262</id>
<content type='text'>
Instead of duplicating the code testing if a binary is present required
for the script, use a list and loop instead.
</content>
</entry>
<entry>
<title>oci: T9269: add proper " escaping for printing image import command</title>
<updated>2026-09-01T13:37:23+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-09-01T13:31:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-build.git/commit/?id=8f372f6d6811bbe4df35b4ec81a68ea8f3813a87'/>
<id>urn:sha1:8f372f6d6811bbe4df35b4ec81a68ea8f3813a87</id>
<content type='text'>
</content>
</entry>
<entry>
<title>oci: T9269: seed the VyOS pre-login banner</title>
<updated>2026-09-01T13:37:23+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-09-01T13:30:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-build.git/commit/?id=be6933e4f787b0ecef4564a6346a1252139226b3'/>
<id>urn:sha1:be6933e4f787b0ecef4564a6346a1252139226b3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>oci: T9269: compress container image with XZ</title>
<updated>2026-09-01T13:37:23+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-09-01T13:29:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-build.git/commit/?id=fc873d7a27e0077417b0963ae2553d0c5e7a0540'/>
<id>urn:sha1:fc873d7a27e0077417b0963ae2553d0c5e7a0540</id>
<content type='text'>
Can be compresed with up to 75% ratio.
</content>
</entry>
</feed>
