<feed xmlns='http://www.w3.org/2005/Atom'>
<title>procd/uxc-stack, 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-21T04:34:10Z</updated>
<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>
