<feed xmlns='http://www.w3.org/2005/Atom'>
<title>procd/uxc-stack.uc, branch master</title>
<subtitle>OpenWrt service / process manager</subtitle>
<id>https://git.openwrt.org/project/procd/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/procd/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/procd/'/>
<updated>2026-08-21T17:45:01Z</updated>
<entry>
<title>uxc-stack: pass the addressing annotations through to members</title>
<updated>2026-08-21T17:45:01Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-08-21T17:44:03Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/procd/commit/?id=3f4ff94d0f644ea4ec26dff32cc6f13f758d097d'/>
<id>urn:sha1:3f4ff94d0f644ea4ec26dff32cc6f13f758d097d</id>
<content type='text'>
uxc-net now honours the org.openwrt.network.proto, proto6 and
ip6ifaceid annotations to pick the in-jail IPv4 and IPv6 protocols and
to pin the IPv6 interface identifier inside a delegated prefix. Let a
stack definition set them per member through the new spec keys proto,
proto6 and ip6ifaceid, named after the annotation leaves just like the
egress, ingress and host access options, and copy them into the
member's annotations sidecar alongside the existing network
annotations.

A key set by the stack definition overrides the same annotation in the
member's own bundle, since uxc-net merges the sidecar over the bundle's
config.json annotations; a key the stack leaves unset is omitted from
the sidecar, so the bundle's own value stays effective. This matches
the behaviour of the existing attach, egress, ingress and host
annotations, whose precedence is unchanged.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>uxc-stack: add the container stack engine</title>
<updated>2026-08-21T04:34:10Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-06-17T15:26:51Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/procd/commit/?id=42a8d3358c04a41fbe41e4c5008c503006e7613f'/>
<id>urn:sha1:42a8d3358c04a41fbe41e4c5008c503006e7613f</id>
<content type='text'>
Add uxc-stack, a ucode engine that instantiates and tears down a multi-
container stack from a template. "up &lt;app&gt;" loads a stack template returning
compose(api), which declares named instances drawn from shared image layers,
then writes one autostart registration per instance and triggers bring-up by a
ubus event procd reconciles through the boot path, avoiding a synchronous
create that would serialise the stack on each member's start. "down &lt;app&gt;" is
driven from the persistent registrations (origin "stack:&lt;app&gt;"), not the
template, since apk removes the template before pre-remove runs.

Addressing is deterministic and state-free, derived by FNV-1a from names: a
per-instance host-uid offset strided by 64k so re-created instances keep their
data-volume ownership, and a backhaul /24 within RFC 2544 198.18.0.0/15. The
engine writes a shared /etc/hosts (retaining localhost) for resolver-free
discovery, plus per-instance annotation sidecars uxc-net merges over the
image's baked annotations. Secrets are referenced via generate@ directives uxc
materialises, and bound idmapped rather than copied. On teardown, data volumes
and their paired generated secrets are kept and reported for manual removal.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
</feed>
