• VM_0.2.9 0edf3fa7c9

    hclaude released this 2026-10-20 07:43:17 +00:00 | 2 commits to master since this release

    VM images 0.2.9 (+ Ubuntu 24.04 Noble)

    Package page: https://git.cloudoffice.co.za/ECS-Public-Infra/-/packages/generic/qemu-images/0.2.9

    Artifacts (Forgejo generic registry; click to download, token needed if private):

    SHA256SUMS

    9a70282700a72ea511116166caac771384cbd981528a1f17431bd4ce08794f38  debian-13-trixie-ECS01_13-0.2.9_amd64.qcow2
    c478d54ffa23e4552fe73b3c3aeeda5e1589fc235a1a7b1ee14d1d4982740565  devuan-6-excalibur-ECS01_6-0.2.9_amd64.qcow2
    8faca726d6ae04d2a4b0db9b8e4126a03b6beb9a065f8f7422cc6f52dcccaca7  ubuntu-24.04-noble-ECS01_24.04-0.2.9_amd64.qcow2
    f0a7c87c4294f3ce2e956415d765b2073d924874c71998dc5f067272e4cfd307  ubuntu-26.04-resolute-ECS01_26.04-0.2.9_amd64.qcow2
    3f02165e98ad8e18ae9e73f4d28b670f2269c25f8f9815becc7fbf38bfdd2362  debian-13-trixie-ECS01_13-0.2.9_amd64.manifest.txt
    06f89ae0ed01a2034405c80072527e5ee07455840ac5b86a6696b99fb59bd31f  devuan-6-excalibur-ECS01_6-0.2.9_amd64.manifest.txt
    9ace1abff2f2126a5d891a06e74aa3ac6218b3ce5d4f70454b2c6abc522f5c0e  ubuntu-24.04-noble-ECS01_24.04-0.2.9_amd64.manifest.txt
    1b5819459dda90ce77283cc14535ceb9f0695d8165dc476982133797caa39a51  ubuntu-26.04-resolute-ECS01_26.04-0.2.9_amd64.manifest.txt
    421305da74d1e96a26d9d2753c0862615641afe89f15850b25cbaf959346b047  debian-13-trixie-ECS01_13-0.2.9_amd64.install.sh
    6f212c07868327864ae5cd5004eea00288b29e7f1d014d013c017b33d2332f3f  devuan-6-excalibur-ECS01_6-0.2.9_amd64.install.sh
    42637e82809c1d5177d390e837100fd81aaabb43163118176540c778dac8859b  ubuntu-24.04-noble-ECS01_24.04-0.2.9_amd64.install.sh
    b27b0ec30e986b6e46f5d8d36516dbcfd65f53478dde6ba979b6fcd5ff0db749  ubuntu-26.04-resolute-ECS01_26.04-0.2.9_amd64.install.sh
    

    Pull

    Pinned to this version (latest/ always serves the newest):

    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/qemu-images/0.2.9/debian-13-trixie-ECS01_13-0.2.9_amd64.qcow2
    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/qemu-images/0.2.9/devuan-6-excalibur-ECS01_6-0.2.9_amd64.qcow2
    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/qemu-images/0.2.9/ubuntu-24.04-noble-ECS01_24.04-0.2.9_amd64.qcow2
    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/qemu-images/0.2.9/ubuntu-26.04-resolute-ECS01_26.04-0.2.9_amd64.qcow2
    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/qemu-images/0.2.9/SHA256SUMS
    sha256sum -c --ignore-missing SHA256SUMS
    

    Without the helper: curl -H "Authorization: token $TOKEN" -LO <url>

    Downloads
  • v1.6.7 0edf3fa7c9

    hclaude released this 2026-10-20 07:42:53 +00:00 | 2 commits to master since this release

    LXC templates 1.6.7 (+ Ubuntu 24.04 Noble)

    Package page: https://git.cloudoffice.co.za/ECS-Public-Infra/-/packages/generic/lxc-templates/1.6.7

    Artifacts (Forgejo generic registry; click to download, token needed if private):

    Changes

    1.6.7 (+ qemu 0.2.9) UBUNTU-24.04: Ubuntu 24.04 LTS Noble is back as
    a SECOND Ubuntu target next to 26.04 Resolute (nothing is
    replaced). Target ubuntu-2404-ecs01 (aliases ubuntu24 /
    ubuntu2404); build_ubuntu_ecs01 is now shared, the two
    build_ubuntu24*/26* wrappers only select version/suite/rootfs.
    Artifacts ubuntu-24.04-noble-ECS01_24.04-_amd64. Noble
    stays on ifupdown + dhcpcd-base like Resolute (no ifupdown2 in
    noble). all now builds five LXC templates / four VM images.
    SHUTDOWN-1 (VM): the Devuan VM image lacked the LXC 1.5.2
    /sbin/{shutdown,reboot,halt,poweroff} diversion, so reboot
    failed with "could not determine runlevel ... /run/initctl: No
    such file or directory" under openrc-init. Now diverted to
    openrc-shutdown wrappers (reported on a Devuan VM, 2026-10-20).
    Refs: #46

    SHA256SUMS

    be0c75cefda3b0c27c949c1ff0fdecfa6b3eb81262742fb3f2b55e83659dd148  debian-13-trixie-ECS01_13-1.6.7_amd64.tar.zst
    1c2ecc83eb044e4f7026963d8cfc61e90231a25a54956c5d1b730be1865554a8  devuan-6-excalibur-ECS01_6-1.6.7_amd64.tar.zst
    e0e8ee5c0b28bdd8d318e8ef50615615b77612ae6131be1908a6c0f7db5ed9f0  devuan-6-excalibur_6-1.6.7_amd64.tar.zst
    ee41ec1df25bfd306830803b1cbda2428ef1987b291b74675e330ebe8610cc7a  ubuntu-24.04-noble-ECS01_24.04-1.6.7_amd64.tar.zst
    2176e7c2bc1b0a2b477a18148f0af456c8ef6fc4fcb0d81c53617b489a8c6eef  ubuntu-26.04-resolute-ECS01_26.04-1.6.7_amd64.tar.zst
    ea145530a5bae4e223c553d9c1dd7b42d2405a7d2ac1826e2278b1eed7182339  debian-13-trixie-ECS01_13-1.6.7_amd64.manifest.txt
    2bb13b139036eee339f767082e72a58636091040d169b3a75ee386bce7acad11  devuan-6-excalibur-ECS01_6-1.6.7_amd64.manifest.txt
    b371e129a0af7a8ff11db10444eaa250c3cfcc7d7857ebea7591c439f59ddfb0  devuan-6-excalibur_6-1.6.7_amd64.manifest.txt
    92c6702499b5983b6cce5d8a5938c0d721db094dabe2c894228e609b7e3d34ff  ubuntu-24.04-noble-ECS01_24.04-1.6.7_amd64.manifest.txt
    51044e55adfe3997334ee5367cad09b067a709268bdc637944639f3691c09aaa  ubuntu-26.04-resolute-ECS01_26.04-1.6.7_amd64.manifest.txt
    

    Pull

    Pinned to this version (latest/ always serves the newest):

    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/lxc-templates/1.6.7/debian-13-trixie-ECS01_13-1.6.7_amd64.tar.zst
    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/lxc-templates/1.6.7/devuan-6-excalibur-ECS01_6-1.6.7_amd64.tar.zst
    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/lxc-templates/1.6.7/devuan-6-excalibur_6-1.6.7_amd64.tar.zst
    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/lxc-templates/1.6.7/ubuntu-24.04-noble-ECS01_24.04-1.6.7_amd64.tar.zst
    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/lxc-templates/1.6.7/ubuntu-26.04-resolute-ECS01_26.04-1.6.7_amd64.tar.zst
    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/lxc-templates/1.6.7/SHA256SUMS
    sha256sum -c --ignore-missing SHA256SUMS
    

    Without the helper: curl -H "Authorization: token $TOKEN" -LO <url>

    Downloads
  • VM_0.2.8 fdf7360f70

    hclaude released this 2026-10-20 01:08:32 +00:00 | 4 commits to master since this release

    VM images 0.2.8 (ifupdown2 dhcp-wait boot hang fix)

    Artifacts (Forgejo generic registry):

    • debian-13-trixie-ECS01_13-0.2.8_amd64.qcow2 (574 MB)
    • devuan-6-excalibur-ECS01_6-0.2.8_amd64.qcow2 (563 MB)
    • ubuntu-26.04-resolute-ECS01_26.04-0.2.8_amd64.qcow2 (1161 MB)

    Changes

    0.2.8 (qemu VM images — the 1.6.6 twin: DHCP-1 ifupdown2 policy
    (dhcp-wait=no) on the Devuan + Debian images, SLAAC-2 hook;
    Ubuntu image unchanged apart from the version. See 1.6.6 above.
    Refs: #46

    SHA256SUMS

    6e8692d50788f193015b1369d81f32de62f9a674d1a067b9490717b1d4ddd3fc  debian-13-trixie-ECS01_13-0.2.8_amd64.qcow2
    6b2920cea029e8c964848f27604d6c75177f9a43fd5e6e83b61e817d4ec4bbba  devuan-6-excalibur-ECS01_6-0.2.8_amd64.qcow2
    b72ce55346f9a6057e1116d3256473f870a8da5b46df9ddf1f0948adc0a98627  ubuntu-26.04-resolute-ECS01_26.04-0.2.8_amd64.qcow2
    3f02165e98ad8e18ae9e73f4d28b670f2269c25f8f9815becc7fbf38bfdd2362  debian-13-trixie-ECS01_13-0.2.8_amd64.manifest.txt
    06f89ae0ed01a2034405c80072527e5ee07455840ac5b86a6696b99fb59bd31f  devuan-6-excalibur-ECS01_6-0.2.8_amd64.manifest.txt
    1b5819459dda90ce77283cc14535ceb9f0695d8165dc476982133797caa39a51  ubuntu-26.04-resolute-ECS01_26.04-0.2.8_amd64.manifest.txt
    e468891697dfff18d46b8b80edc836e2ff650ea9811f2d69a1b39ef91fd75db2  debian-13-trixie-ECS01_13-0.2.8_amd64.install.sh
    1121ce4360e65e8b4c9ac5f22052acee0791e101e131af1f76dfd133443f13c2  devuan-6-excalibur-ECS01_6-0.2.8_amd64.install.sh
    409468629cf2e83b3d18e3b3dbf427ec5b79b41a10051b7ba8add63b90ea98d5  ubuntu-26.04-resolute-ECS01_26.04-0.2.8_amd64.install.sh
    

    Pull

    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/qemu-images/0.2.8/<file>     # or .../latest/<file>
    
    Downloads
  • v1.6.6 fdf7360f70

    hclaude released this 2026-10-20 01:00:05 +00:00 | 4 commits to master since this release

    LXC templates 1.6.6 (ifupdown2 dhcp-wait boot hang fix)

    Artifacts (Forgejo generic registry):

    • debian-13-trixie-ECS01_13-1.6.6_amd64.tar.zst (171 MB)
    • devuan-6-excalibur-ECS01_6-1.6.6_amd64.tar.zst (166 MB)
    • devuan-6-excalibur_6-1.6.6_amd64.tar.zst (91 MB)
    • ubuntu-26.04-resolute-ECS01_26.04-1.6.6_amd64.tar.zst (140 MB)

    Changes

    1.6.6 (+ qemu 0.2.8: boot hang on every ifupdown2 image since the
    ifupdown2 switch (1.6.5 / 0.2.6), found on a real PVE container
    (CT "pega", ip=dhcp,ip6=auto): console came up, ssh never did.
    DHCP-1: PVE writes "iface eth0 inet dhcp" + "iface eth0 inet6
    auto". ifupdown2 3.0.0 rejects method "auto" (error line, then
    carries on), squashes all stanzas of an interface into ONE
    object whose addr_method is the FIRST stanza's but whose
    families are inet+inet6, and therefore starts BOTH dhclient and
    dhclient -6. Its dhcp addon waits for each client to daemonize
    (policy dhcp-wait=yes, no -nw); ISC dhclient -6 never
    daemonizes without a DHCPv6 server, so ifup -a never returns,
    the networking service never finishes and nothing after it
    starts (cron, ecs-firstboot, nullmailer, ssh). Same on Debian
    13 (ifupdown2's networking.service is Type=oneshot with no
    start timeout) and on the Devuan/Debian VM images. 1.6.4
    (ifupdown, no dhclient) failed fast instead. Fix: ship
    src/ecs-ifupdown2-policy.json as
    /etc/network/ifupdown2/policy.d/ecs.json (dhcp-wait: no ->
    dhclient -nw) on every ifupdown2 image (both builders, Devuan +
    Debian; Ubuntu has no ifupdown2). Verified in a namespace boot
    rig: pega's exact interfaces boot to a listening sshd in ~45 s.
    Residual: a background dhclient -6 -nw keeps soliciting on
    inet dhcp + inet6 auto (no DHCPv6 on ECS segments; SLAAC via the
    sysctl policy is unaffected).
    SLAAC-2: the ecs-slaac if-up.d hook assumed ifupdown's per-
    family calls (ADDRFAM=inet6, METHOD=static, IF_ADDRESS = the v6
    address). ifupdown2 calls hooks once per interface with
    ADDRFAM="inet,inet6", METHOD = first stanza's and IF_* = the
    IPv4 stanza's, so the "static preferred" branch (accept_ra 2,
    static address as default-route source) never ran on 1.6.5.
    The hook now also finds a static v6 address on the live
    interface (global + permanent, i.e. not SLAAC/dynamic) and the
    non-RA default route, waits for DAD (<= 3 s) before pinning the
    source, and serves both ifupdown and ifupdown2.
    DHCP-2 (known, NOT fixed — ifupdown2 squash semantics): with
    "inet dhcp" as the first stanza, a following "inet6 static"
    stanza is NOT applied (only its default route is): ifupdown2
    keeps one addr_method per interface, so PVE ip=dhcp + ip6=
    yields no static v6 on 1.6.5+. Use a static ip= (or ip6=auto)
    on ifupdown2 images when a static v6 is wanted.
    TEST-1: test-devuan-template.sh section D demanded isc-dhcp-
    client be absent — a FAIL on every 1.6.5 ifupdown2 image; now
    only enforced where ifupdown + dhcpcd are used. Section C
    checks the DHCP-1 policy file; the dhcpcd ipv4only check is
    skipped where dhcpcd is not installed; the per-interface sysfs
    loop skips plain files (bonding_masters on hosts with bonds).
    Refs: #46

    SHA256SUMS

    a3195bc40948e947819237f9b594794984e190b047764c95c155773d7a8760eb  debian-13-trixie-ECS01_13-1.6.6_amd64.tar.zst
    db6c685a85b15959cda2f4719dbebc8a607e195d5acffda256f13bd675465695  devuan-6-excalibur-ECS01_6-1.6.6_amd64.tar.zst
    f1b4fe30bd875bf2181645ea06c215d73deef49ac4f7df9d21efbcdd3558f5a3  devuan-6-excalibur_6-1.6.6_amd64.tar.zst
    87aa971371c0076431ee6ec7f38bad65da39cf35696b524db300ab517d379cc9  ubuntu-26.04-resolute-ECS01_26.04-1.6.6_amd64.tar.zst
    ea145530a5bae4e223c553d9c1dd7b42d2405a7d2ac1826e2278b1eed7182339  debian-13-trixie-ECS01_13-1.6.6_amd64.manifest.txt
    2bb13b139036eee339f767082e72a58636091040d169b3a75ee386bce7acad11  devuan-6-excalibur-ECS01_6-1.6.6_amd64.manifest.txt
    b371e129a0af7a8ff11db10444eaa250c3cfcc7d7857ebea7591c439f59ddfb0  devuan-6-excalibur_6-1.6.6_amd64.manifest.txt
    51044e55adfe3997334ee5367cad09b067a709268bdc637944639f3691c09aaa  ubuntu-26.04-resolute-ECS01_26.04-1.6.6_amd64.manifest.txt
    

    Pull

    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/lxc-templates/1.6.6/<file>     # or .../latest/<file>
    
    Downloads
  • VM_0.2.7 a8faac85cc

    hclaude released this 2026-10-18 15:00:45 +00:00 | 5 commits to master since this release

    VM images 0.2.7 (ECS cloud-init cfg, plik)

    Artifacts (Forgejo generic registry):

    • devuan-6-excalibur-ECS01_6-0.2.7_amd64.qcow2 (563 MB)
    • debian-13-trixie-ECS01_13-0.2.7_amd64.qcow2 (574 MB)
    • ubuntu-26.04-resolute-ECS01_26.04-0.2.7_amd64.qcow2 (1161 MB)

    SHA256SUMS

    c415388e9b3098cefdd554801e4b685bdb6d42db7966bcc2b4fe56a7d113b61f  devuan-6-excalibur-ECS01_6-0.2.7_amd64.qcow2
    102ebe22c11f2aaea610dd08fa78ce1c40d5b03be46e4aeb20a3f3d68a09e2f4  debian-13-trixie-ECS01_13-0.2.7_amd64.qcow2
    33336bb0b6f439b75b7a1aa040b80eeaeedafb837957a46b6100e6db9795ed9d  ubuntu-26.04-resolute-ECS01_26.04-0.2.7_amd64.qcow2
    

    Pull

    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/qemu-images/0.2.7/<file>     # or .../latest/<file>
    
    Downloads
  • VM_0.2.6 36e57655ad

    hclaude released this 2026-10-17 23:40:35 +00:00 | 6 commits to master since this release

    VM images 0.2.6 (ifupdown2, Ubuntu 26.04)

    Artifacts (Forgejo generic registry):

    • devuan-6-excalibur-ECS01_6-0.2.6_amd64.qcow2 (558 MB)
    • debian-13-trixie-ECS01_13-0.2.6_amd64.qcow2 (568 MB)
    • ubuntu-26.04-resolute-ECS01_26.04-0.2.6_amd64.qcow2 (1157 MB)

    SHA256SUMS

    d1eccf1ae555e0b731ca3dcb74198658a48798d59e89c4be677d78674fa11c82  devuan-6-excalibur-ECS01_6-0.2.6_amd64.qcow2
    6e1ee32e993470bae0beef12c410a5410b5778c218e2519d97e77b73695e42b3  debian-13-trixie-ECS01_13-0.2.6_amd64.qcow2
    5c8fcef6bf4b962014d78ed04f4d4d25286d22f31cea94ba9dc1e69bfcc48529  ubuntu-26.04-resolute-ECS01_26.04-0.2.6_amd64.qcow2
    

    Pull

    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/qemu-images/0.2.6/<file>     # or .../latest/<file>
    
    Downloads
  • v1.6.5 36e57655ad

    hclaude released this 2026-10-17 23:39:38 +00:00 | 6 commits to master since this release

    LXC templates 1.6.5 (ifupdown2, Ubuntu 26.04)

    Artifacts (Forgejo generic registry):

    • devuan-6-excalibur_6-1.6.5_amd64.tar.zst (90 MB)
    • devuan-6-excalibur-ECS01_6-1.6.5_amd64.tar.zst (166 MB)
    • debian-13-trixie-ECS01_13-1.6.5_amd64.tar.zst (171 MB)
    • ubuntu-26.04-resolute-ECS01_26.04-1.6.5_amd64.tar.zst (140 MB)

    Changes

    1.6.5 (ifupdown2 following 1.6.4 — user request, PVE-host parity and
    macvlan / address-virtual support:
    NET-3: Devuan and Debian 13 ECS01 containers (and the Devuan /
    Debian VM images, qemu 0.2.6) replace ifupdown + dhcpcd-base
    with ifupdown2 + isc-dhcp-client (+ ethtool). ifupdown2 drives
    ONLY ISC dhclient for "inet dhcp", not dhcpcd. It ships a
    systemd unit but no OpenRC/sysv script and removes ifupdown's,
    so Devuan gets a native /etc/init.d/networking
    (src/ecs-networking-openrc) that runs ifupdown2's own
    start-networking and keeps the provides networking/ifupdown.
    Ubuntu stays on ifupdown + dhcpcd: neither noble nor resolute
    has an ifupdown2 package (main/universe/updates). The if-up.d
    ecs-slaac hook is unchanged (addon_scripts_support=1).
    UBUNTU-26.04: the Ubuntu target moves 24.04 Noble -> 26.04 LTS
    Resolute (suite resolute; all ECS01/VM packages verified in
    resolute main+universe; no ifupdown2/resolvconf there).
    Target ubuntu-2404-ecs01 is renamed ubuntu-2604-ecs01 (aliases
    ubuntu/ubuntu26/ubuntu2604); artifacts become
    ubuntu-26.04-resolute-ECS01_26.04-_amd64 — a NEW package
    name, consumers pin it explicitly. Not boot-tested yet.
    Refs: #46

    SHA256SUMS

    fa48122ebd0bb9a99274bc72364a28a7653f12462333ed23b122779b5c4eaac1  devuan-6-excalibur_6-1.6.5_amd64.tar.zst
    28d996b91f854ccb73404e64461349f6537d7d2abff848782544c7b8875dad1f  devuan-6-excalibur-ECS01_6-1.6.5_amd64.tar.zst
    faa64f6141115b8806d00e4e470a4854381196041785e2cc8d6b2350d3b2959f  debian-13-trixie-ECS01_13-1.6.5_amd64.tar.zst
    7a644535eeda42117434c9308ecd1df5cad5c28c4877dfc22e9508ebc833214b  ubuntu-26.04-resolute-ECS01_26.04-1.6.5_amd64.tar.zst
    f7d6c8b2a4aa66b5f394d2c7ac7eee9963b1a78716c8e52185a0f6c70fe00611  debian-13-trixie-ECS01_13-1.6.5_amd64.manifest.txt
    2f754228a4690a9a7bb1e2157ee4eb0a641f933af8405b880580848084c98b2f  devuan-6-excalibur-ECS01_6-1.6.5_amd64.manifest.txt
    82dcc6608abf2f0cfec8c0ac5299a1498508df816c9e3a115473c5680c91100c  devuan-6-excalibur_6-1.6.5_amd64.manifest.txt
    7dd6793406fe2ee64965a621b81ec7d99af85cd9dd3bdcb7ca0f9ab1c43559ac  ubuntu-26.04-resolute-ECS01_26.04-1.6.5_amd64.manifest.txt
    

    Pull

    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/lxc-templates/1.6.5/<file>     # or .../latest/<file>
    
    Downloads
  • VM_0.2.5 5672d07e6b

    hclaude released this 2026-10-07 18:42:48 +00:00 | 7 commits to master since this release

    VM images 0.2.5 (Devuan: VGA gettys)

    Artifacts (Forgejo generic registry):

    • devuan-6-excalibur-ECS01_6-0.2.5_amd64.qcow2 (556 MB)

    SHA256SUMS

    6efc0e8814ab3e5f1bd7a6825b91b68a60fa44f86dac1ad8ba79bcb4fb2b84bd  devuan-6-excalibur-ECS01_6-0.2.5_amd64.qcow2
    

    Pull

    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/qemu-images/0.2.5/<file>     # or .../latest/<file>
    
    Downloads
  • VM_0.2.4 a17c915dbc

    hclaude released this 2026-09-18 14:28:25 +00:00 | 8 commits to master since this release

    VM images 0.2.4

    Artifacts (Forgejo generic registry):

    • devuan-6-excalibur-ECS01_6-0.2.4_amd64.qcow2 (555 MB)
    • debian-13-trixie-ECS01_13-0.2.4_amd64.qcow2 (566 MB)
    • ubuntu-24.04-noble-ECS01_24.04-0.2.4_amd64.qcow2 (1082 MB)

    Changes

    Network policy release. Every image now always does IPv6 SLAAC with an EUI-64 address and takes DNS from the RA (RDNSS); IPv4 is mostly static (PVE cloud-init), DHCPv4 the exception; a static IPv6 address is additional, never instead of SLAAC. See PR #19 (commits 23d2f0c, a17c915).

    • SLAAC-1 - sysctl policy (RA on, EUI-64, no temporary addresses); dhcpcd.conf ipv4only (dhcpcd used to replace the kernel's EUI-64 SLAAC with RFC 7217 addresses on every DHCPv4 VM); if-up.d/ecs-slaac restores SLAAC on inet6 static NICs (ifupdown disables it there), keeps the static address as outbound source (RA default route demoted to metric 2048) and solicits an RA on every ifup.
    • DNS-1 - rdnssd + ndisc6 on all images. Debian/Devuan add resolvconf as arbiter: RDNSS -> PVE nameservers -> DHCP -> Quad9 fallback. Before, RDNSS reached resolv.conf only by accident (dhcpcd) and PVE's nameserver/searchdomain were silently ignored. Ubuntu noble ships no resolvconf/openresolv: rdnssd's built-in merge only, PVE nameservers still ignored there.
    • NET-1 - no eth0/lo stanzas in /etc/network/interfaces: ifupdown merged them with cloud-init's, so a VM with a static address also ran a DHCP client, and an empty lo record wiped PVE's DNS.
    • NET-2 (standalone) - net.ifnames=0 (NIC is eth0 everywhere); the default "DHCPv4 + SLAAC" stanza ships as the file cloud-init overwrites, so it never coexists with a real config; hvisage user (sudo NOPASSWD, SSH keys, zsh) baked in like the LXC ECS01 bundle - a VM without a cloud-init drive is reachable on its EUI-64 address and can be logged into (root stays locked); cloud-init's fallback netcfg patched to dhcp6: False ("No DHCPv6 client software found!" failed networking.service on every VM without a network-config since 0.1.0).
    • ORDER-1 (Devuan) - cloud-init-local now runs in OpenRC's sysinit runlevel before networking; previously PVE's static IPv4/IPv6 was not applied on first boot (masked by the old DHCP stanza).
    • HOME-1 - ecs-firstboot defaults HOME=/root; the unit was FAILED and etckeeper uninitialised at first boot on every VM with a real hostname.
    • VSOCK-1 - mask systemd-ssh-generator (Debian 13 AF_VSOCK log spam).

    Verified per image under TCG with PVE-style NoCloud seeds: static4, static4+static6, static4+ip6=auto, dhcp4, no network-config, no datasource. 0 outdated packages vs release+updates+security. Not supported: PVE ip6=dhcp (ifupdown needs ISC dhclient; out of policy).

    VMs deployed from <= 0.2.3 keep their old behaviour (no -updates/-security sources on <= 0.2.2, DHCP client beside static config, no RDNSS consumer) - re-provision or fix by hand.

    SHA256SUMS

    99d8fcc66192d2f730a63e873900d15e680a756fc0126df0cd447fcc65184a3f  devuan-6-excalibur-ECS01_6-0.2.4_amd64.qcow2
    8cb52a1fd770cced60ff3721890de0520f5f3d6fea8d7515b837b52484e6636a  devuan-6-excalibur-ECS01_6-0.2.4_amd64.manifest.txt
    ef86434833b2610a0976640dd7f5c2be37d34b7346d23cfd237eaefc76631496  devuan-6-excalibur-ECS01_6-0.2.4_amd64.install.sh
    1bd2cefe8d43df4a64e1e56b01932840b92aa797dc487f8e727b415ae9422d8f  debian-13-trixie-ECS01_13-0.2.4_amd64.qcow2
    71e3cc2f343e467fa78ad287c727b21f032b5b30ff563738ac5c75d2c16852a1  debian-13-trixie-ECS01_13-0.2.4_amd64.manifest.txt
    28e81651f6f40a60217bb1eff4b673a5850c4ff6a18eaef240aa7cc2070112f6  debian-13-trixie-ECS01_13-0.2.4_amd64.install.sh
    6091936d31bc0b32420e18cbce5dd2a469bfae74332e08c9e4981fbd9afdcfd5  ubuntu-24.04-noble-ECS01_24.04-0.2.4_amd64.qcow2
    9e0db7b6da202767fcdda28ec18c1059c9ce8b1adb9c029519e80ada39ffbc3d  ubuntu-24.04-noble-ECS01_24.04-0.2.4_amd64.manifest.txt
    65fb38d67adb71183d17865e58ff073cf82c86c21e8be1ef51c4fc45e365cc46  ubuntu-24.04-noble-ECS01_24.04-0.2.4_amd64.install.sh
    

    Pull

    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/qemu-images/0.2.4/<file>     # or .../latest/<file>
    
    Downloads
  • v1.6.4 23d2f0c560

    hclaude released this 2026-09-18 13:29:09 +00:00 | 9 commits to master since this release

    templates 1.6.4

    Artifacts (Forgejo generic registry):

    • debian-13-trixie-ECS01_13-1.6.4_amd64.tar.zst (169 MB)
    • devuan-6-excalibur-ECS01_6-1.6.4_amd64.tar.zst (163 MB)
    • devuan-6-excalibur_6-1.6.4_amd64.tar.zst (89 MB)
    • ubuntu-24.04-noble-ECS01_24.04-1.6.4_amd64.tar.zst (140 MB)

    Changes

    1.6.4 (network policy + first-boot finaliser fix following 1.6.3.
    Policy (user, 2026-09-17): every image ALWAYS does IPv6 SLAAC
    with an EUI-64 address and takes DNS from the RA (RDNSS); IPv4
    is mostly static, DHCPv4 the exception; a static IPv6 address
    is additional, never instead of SLAAC.
    SLAAC-1 (all templates + VM images):
    - /etc/sysctl.d/60-ecs-ipv6-slaac.conf pins accept_ra/autoconf
    on, addr_gen_mode=0 (EUI-64), use_tempaddr=0.
    - dhcpcd.conf ipv4only: on every DHCPv4 instance dhcpcd took
    over IPv6 and replaced the kernel's EUI-64 SLAAC with RFC 7217
    stable-private addresses (link-local included).
    - /etc/network/if-up.d/ecs-slaac (src/ecs-slaac-hook): ifupdown's
    "inet6 static" disables RA/autoconf by default, so a static
    IPv6 address silently killed SLAAC. The hook re-enables them,
    keeps the static address as outbound source (default route
    prefsrc, RA route demoted to metric 2048) and sends an RS via
    rdisc6 (ndisc6) so the EUI-64 address appears at once.
    DNS-1 (ECS01 templates + VM images):
    - rdnssd + ndisc6 join ECS01_PACKAGES. Debian/Devuan add
    resolvconf (ECS01_RESOLVCONF) as arbiter: order 000.rdnssd
    (RDNSS) -> lo.pve / lo.inet (PVE nameservers) -> DHCP records
    -> Quad9 from resolv.conf.d/tail. Previously RDNSS only
    reached resolv.conf by accident (dhcpcd) and PVE/cloud-init
    dns-nameservers were silently ignored (no resolvconf).
    - src/ecs-resolvconf-pve (boot, before resolvconf/networking):
    PVE rewrites /etc/resolv.conf as a plain file on every
    container start (rename-over, kills the symlink); the
    importer registers that content as record lo.pve and
    restores the symlink. Wired OpenRC boot / systemd sysinit.
    - Ubuntu noble ships no resolvconf/openresolv (systemd-resolved
    only): rdnssd's built-in merge (RDNSS ahead of the IPv4
    fallback) and no arbiter — PVE nameservers stay ignored there.
    - resolvconf is debconf-preseeded (linkify=false) so it never
    touches /etc/resolv.conf inside the build chroot; the symlink
    is made by finalize_resolvconf after the last chroot apt.
    hvisage SSH keys + default .zshrc moved to src/hvisage-authorized_keys
    and src/hvisage-zshrc (shared with the VM builder; content unchanged).
    test-devuan-template.sh: sections K2 (SLAAC-1), S (HOME-1), T (DNS-1).
    HOME-1: src/ecs-firstboot (shared by every ECS01 LXC template
    and VM image) now defaults HOME=/root. systemd units, OpenRC
    services and cloud-init runcmd all run without $HOME, so
    git config --global died "fatal: $HOME not set", set -e
    aborted the script, ecs-firstboot.service ended up FAILED and
    etckeeper was not initialised at first boot on any instance
    with a real hostname (masked by the apt Pre-Invoke self-heal,
    which initialises it at the first apt run). No other LXC
    recipe change. test-devuan-template.sh gains section S
    (finaliser ran clean, /etc under etckeeper).
    VM builder goes 0.2.3 -> 0.2.4 with SLAAC-1, DNS-1, HOME-1 plus:
    NET-1: dropped the "auto eth0 / iface eth0 inet dhcp" stanza
    from /etc/network/interfaces. ifupdown merged it with the
    eth0 stanza cloud-init renders from PVE's network-config, so a
    VM with a STATIC address also ran a DHCP client on that NIC;
    without a cloud-init drive it failed networking.service.
    NET-2 (standalone VMs): net.ifnames=0 (eth0 on every distro);
    the default "DHCPv4 + inet6 auto" stanza ships AS the file
    cloud-init's eni renderer overwrites (interfaces.d/50-cloud-init,
    .cfg on Ubuntu) so it can never coexist with a real config; the
    hvisage user (sudo NOPASSWD, SSH keys, zsh) is baked in like the
    LXC ECS01 bundle — a VM without a cloud-init drive is reachable
    on its EUI-64 address and can be logged into. root stays locked.
    VSOCK-1: mask systemd-ssh-generator (systemd >= 256, Debian
    13) — it logged "Failed to query local AF_VSOCK CID" on every
    boot and daemon-reload (no vsock device on PVE).
    Refs: #46

    SHA256SUMS

    edf2957dfe55a34b55507fdf7ece4f5e31512668e85d20e91cf4c3ac71d2d4a6  debian-13-trixie-ECS01_13-1.6.4_amd64.tar.zst
    6e3def7475ed31505da349c565814c00910f5c7ee772ad8c1e5f2db11560348a  debian-13-trixie-ECS01_13-1.6.4_amd64.manifest.txt
    8a1deba2babf462e2f09fb741519328b96667a6012c4781922f4d84622371dc4  devuan-6-excalibur-ECS01_6-1.6.4_amd64.tar.zst
    a5066caaee31cad175152a6563496f103329112d1bb51e72c1bc71fc79accf28  devuan-6-excalibur-ECS01_6-1.6.4_amd64.manifest.txt
    60c32285414b70ce9e783aac9c9781555e16884d2a289af9aa1b50993004de44  devuan-6-excalibur_6-1.6.4_amd64.tar.zst
    894f1e81112b919c1214f12061c6e3a2f282aa1e00a2da5a2a6eca756ee36390  devuan-6-excalibur_6-1.6.4_amd64.manifest.txt
    c25f2be11e94f286000258951ef173ae6ec1398de325373e4395774a4fa4c8a4  ubuntu-24.04-noble-ECS01_24.04-1.6.4_amd64.tar.zst
    4a82f386a9bd0300dd0f901eccac7f7c38c7b86e366bb4bf03120a550f7a727b  ubuntu-24.04-noble-ECS01_24.04-1.6.4_amd64.manifest.txt
    

    Pull

    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/lxc-templates/1.6.4/<file>     # or .../latest/<file>
    
    Downloads