summaryrefslogtreecommitdiffstats
path: root/recipes-core/vxn/vxn_1.0.bb
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@gmail.com>2026-02-19 01:53:36 +0000
committerBruce Ashfield <bruce.ashfield@gmail.com>2026-02-26 01:05:01 +0000
commit035e0daebeb53880ea2a6bd0f0e31785f3ec9e55 (patch)
tree1ae711e61d79ad2f7b0afba6fc4489f61d1a6202 /recipes-core/vxn/vxn_1.0.bb
parentbf5abfe3d55604c6b22416cc23cbfaba1ff7bee2 (diff)
downloadmeta-virtualization-035e0daebeb53880ea2a6bd0f0e31785f3ec9e55.tar.gz
vxn: add Docker/Podman integration and CLI frontends
Add vdkr/vpdmn as Dom0 target packages with Xen auto-detection, native Docker/Podman config sub-packages, and OCI runtime fixes for Docker compatibility (JSON logging, root.path, kill --all, monitor PID lifecycle). Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Diffstat (limited to 'recipes-core/vxn/vxn_1.0.bb')
-rw-r--r--recipes-core/vxn/vxn_1.0.bb36
1 files changed, 36 insertions, 0 deletions
diff --git a/recipes-core/vxn/vxn_1.0.bb b/recipes-core/vxn/vxn_1.0.bb
index d16cbc77..a08dac09 100644
--- a/recipes-core/vxn/vxn_1.0.bb
+++ b/recipes-core/vxn/vxn_1.0.bb
@@ -67,6 +67,8 @@ SRC_URI = "\
67 file://containerd-config-vxn.toml \ 67 file://containerd-config-vxn.toml \
68 file://containerd-shim-vxn-v2 \ 68 file://containerd-shim-vxn-v2 \
69 file://vctr \ 69 file://vctr \
70 file://vdkr.sh \
71 file://vpdmn.sh \
70" 72"
71 73
72FILESEXTRAPATHS:prepend := "${THISDIR}/../../recipes-containers/vcontainer/files:" 74FILESEXTRAPATHS:prepend := "${THISDIR}/../../recipes-containers/vcontainer/files:"
@@ -221,6 +223,24 @@ do_install() {
221 # Install vctr convenience wrapper 223 # Install vctr convenience wrapper
222 install -m 0755 ${S}/vctr ${D}${bindir}/vctr 224 install -m 0755 ${S}/vctr ${D}${bindir}/vctr
223 225
226 # Docker/Podman CLI frontends (sub-packages)
227 install -m 0755 ${S}/vdkr.sh ${D}${bindir}/vdkr
228 install -m 0755 ${S}/vpdmn.sh ${D}${bindir}/vpdmn
229
230 # Docker daemon config: register vxn-oci-runtime (vxn-docker-config sub-package)
231 # no-new-privileges=false is needed because vxn ignores Linux security features.
232 # Users must use --network=none or --network=host with vxn containers since
233 # Xen DomUs have their own kernel network stack and Docker's veth/namespace
234 # setup is incompatible with VM-based runtimes.
235 install -d ${D}${sysconfdir}/docker
236 printf '{\n "runtimes": {\n "vxn": {\n "path": "/usr/bin/vxn-oci-runtime"\n }\n },\n "default-runtime": "vxn"\n}\n' \
237 > ${D}${sysconfdir}/docker/daemon.json
238
239 # Podman config: register vxn-oci-runtime (vxn-podman-config sub-package)
240 install -d ${D}${sysconfdir}/containers/containers.conf.d
241 printf '[engine]\nruntime = "vxn"\n\n[engine.runtimes]\nvxn = ["/usr/bin/vxn-oci-runtime"]\n' \
242 > ${D}${sysconfdir}/containers/containers.conf.d/50-vxn-runtime.conf
243
224 # Install shared scripts into libdir 244 # Install shared scripts into libdir
225 install -d ${D}${libdir}/vxn 245 install -d ${D}${libdir}/vxn
226 install -m 0755 ${S}/vrunner.sh ${D}${libdir}/vxn/ 246 install -m 0755 ${S}/vrunner.sh ${D}${libdir}/vxn/
@@ -253,6 +273,22 @@ do_install() {
253 fi 273 fi
254} 274}
255 275
276# Sub-packages for CLI frontends and native runtime config
277PACKAGES =+ "${PN}-vdkr ${PN}-vpdmn ${PN}-docker-config ${PN}-podman-config"
278
279FILES:${PN}-vdkr = "${bindir}/vdkr"
280FILES:${PN}-vpdmn = "${bindir}/vpdmn"
281FILES:${PN}-docker-config = "${sysconfdir}/docker/daemon.json"
282FILES:${PN}-podman-config = "${sysconfdir}/containers/containers.conf.d/50-vxn-runtime.conf"
283
284RDEPENDS:${PN}-vdkr = "${PN} bash"
285RDEPENDS:${PN}-vpdmn = "${PN} bash"
286RDEPENDS:${PN}-docker-config = "${PN} docker"
287RDEPENDS:${PN}-podman-config = "${PN} podman"
288
289# daemon.json conflicts with docker-registry-config (only one provider)
290RCONFLICTS:${PN}-docker-config = "docker-registry-config"
291
256FILES:${PN} = "\ 292FILES:${PN} = "\
257 ${bindir}/vxn \ 293 ${bindir}/vxn \
258 ${bindir}/vxn-oci-runtime \ 294 ${bindir}/vxn-oci-runtime \