summaryrefslogtreecommitdiffstats
path: root/conf
diff options
context:
space:
mode:
Diffstat (limited to 'conf')
-rw-r--r--conf/distro/include/container-host-containerd.conf14
-rw-r--r--conf/distro/include/container-host-docker.conf14
-rw-r--r--conf/distro/include/container-host-incus.conf15
-rw-r--r--conf/distro/include/container-host-k3s-node.conf18
-rw-r--r--conf/distro/include/container-host-k3s.conf17
-rw-r--r--conf/distro/include/container-host-podman.conf17
-rw-r--r--conf/distro/include/container-registry.conf29
-rw-r--r--conf/distro/include/meta-virt-container-incus.inc9
-rw-r--r--conf/distro/include/meta-virt-container-k3s-host.inc2
-rw-r--r--conf/distro/include/meta-virt-dev.conf28
-rw-r--r--conf/distro/include/meta-virt-host.conf20
-rw-r--r--conf/distro/include/vruntime-bbmask.inc1
-rw-r--r--conf/distro/include/xen-host.conf17
-rw-r--r--conf/distro/vruntime.conf25
-rw-r--r--conf/layer.conf2
15 files changed, 220 insertions, 8 deletions
diff --git a/conf/distro/include/container-host-containerd.conf b/conf/distro/include/container-host-containerd.conf
new file mode 100644
index 00000000..c4a68845
--- /dev/null
+++ b/conf/distro/include/container-host-containerd.conf
@@ -0,0 +1,14 @@
1# Container host configuration fragment: Containerd
2#
3# Include from local.conf to set up a containerd-based container host.
4# Requires meta-virt-host.conf to be included first:
5#
6# require conf/distro/include/meta-virt-host.conf
7# require conf/distro/include/container-host-containerd.conf
8# MACHINE = "qemux86-64"
9# bitbake container-image-host
10#
11# Sets CONTAINER_PROFILE and the DISTRO_FEATURES required by
12# container-image-host with the containerd engine stack.
13
14CONTAINER_PROFILE = "containerd"
diff --git a/conf/distro/include/container-host-docker.conf b/conf/distro/include/container-host-docker.conf
new file mode 100644
index 00000000..5bf29359
--- /dev/null
+++ b/conf/distro/include/container-host-docker.conf
@@ -0,0 +1,14 @@
1# Container host configuration fragment: Docker
2#
3# Include from local.conf to set up a Docker-based container host.
4# Requires meta-virt-host.conf to be included first:
5#
6# require conf/distro/include/meta-virt-host.conf
7# require conf/distro/include/container-host-docker.conf
8# MACHINE = "qemux86-64"
9# bitbake container-image-host
10#
11# Sets CONTAINER_PROFILE and the DISTRO_FEATURES required by
12# container-image-host with the Docker engine stack.
13
14CONTAINER_PROFILE = "docker"
diff --git a/conf/distro/include/container-host-incus.conf b/conf/distro/include/container-host-incus.conf
new file mode 100644
index 00000000..82e19d87
--- /dev/null
+++ b/conf/distro/include/container-host-incus.conf
@@ -0,0 +1,15 @@
1# Container host configuration fragment: Incus
2#
3# Include from local.conf to set up an Incus-based container host.
4# Requires meta-virt-host.conf to be included first:
5#
6# require conf/distro/include/meta-virt-host.conf
7# require conf/distro/include/container-host-incus.conf
8# MACHINE = "qemux86-64"
9# bitbake container-image-host
10#
11# Sets CONTAINER_PROFILE for Incus, a system container and VM manager
12# built on LXC. Incus replaces LXD as the community container manager
13# from linuxcontainers.org.
14
15CONTAINER_PROFILE = "incus"
diff --git a/conf/distro/include/container-host-k3s-node.conf b/conf/distro/include/container-host-k3s-node.conf
new file mode 100644
index 00000000..75580d71
--- /dev/null
+++ b/conf/distro/include/container-host-k3s-node.conf
@@ -0,0 +1,18 @@
1# Container host configuration fragment: K3s agent node
2#
3# Include from local.conf to set up a K3s agent (worker) node.
4# Requires meta-virt-host.conf to be included first:
5#
6# require conf/distro/include/meta-virt-host.conf
7# require conf/distro/include/container-host-k3s-node.conf
8# MACHINE = "qemux86-64"
9# bitbake container-image-host
10#
11# Sets CONTAINER_PROFILE and the DISTRO_FEATURES required by
12# container-image-host with K3s agent-only orchestration. The
13# k3s-node profile bundles the k3s agent, embedded containerd,
14# and CNI plugins. The node joins an existing k3s server cluster.
15
16CONTAINER_PROFILE = "k3s-node"
17
18DISTRO_FEATURES:append = " k3s"
diff --git a/conf/distro/include/container-host-k3s.conf b/conf/distro/include/container-host-k3s.conf
new file mode 100644
index 00000000..6e3733b1
--- /dev/null
+++ b/conf/distro/include/container-host-k3s.conf
@@ -0,0 +1,17 @@
1# Container host configuration fragment: K3s server
2#
3# Include from local.conf to set up a K3s server (control plane + agent).
4# Requires meta-virt-host.conf to be included first:
5#
6# require conf/distro/include/meta-virt-host.conf
7# require conf/distro/include/container-host-k3s.conf
8# MACHINE = "qemux86-64"
9# bitbake container-image-host
10#
11# Sets CONTAINER_PROFILE and the DISTRO_FEATURES required by
12# container-image-host with K3s orchestration. The k3s-host profile
13# bundles the k3s server, embedded containerd, and CNI plugins.
14
15CONTAINER_PROFILE = "k3s-host"
16
17DISTRO_FEATURES:append = " k3s"
diff --git a/conf/distro/include/container-host-podman.conf b/conf/distro/include/container-host-podman.conf
new file mode 100644
index 00000000..7190e32b
--- /dev/null
+++ b/conf/distro/include/container-host-podman.conf
@@ -0,0 +1,17 @@
1# Container host configuration fragment: Podman
2#
3# Include from local.conf to set up a Podman-based container host.
4# Requires meta-virt-host.conf to be included first:
5#
6# require conf/distro/include/meta-virt-host.conf
7# require conf/distro/include/container-host-podman.conf
8# MACHINE = "qemux86-64"
9# bitbake container-image-host
10#
11# Sets CONTAINER_PROFILE and the DISTRO_FEATURES required by
12# container-image-host with the Podman engine stack.
13# Includes ipv6 which is required by the podman packagegroup.
14
15CONTAINER_PROFILE = "podman"
16
17DISTRO_FEATURES:append = " ipv6"
diff --git a/conf/distro/include/container-registry.conf b/conf/distro/include/container-registry.conf
new file mode 100644
index 00000000..357e7913
--- /dev/null
+++ b/conf/distro/include/container-registry.conf
@@ -0,0 +1,29 @@
1# Container registry configuration fragment
2#
3# Include from local.conf to enable a local development registry:
4#
5# require conf/distro/include/container-registry.conf
6#
7# Defaults to an insecure (HTTP) registry at localhost:5000 with
8# namespace "yocto". Override any variable after the require line.
9#
10# This fragment enables the container-registry IMAGE_FEATURES, which
11# installs registry configuration into the target rootfs (daemon.json
12# for Docker, registries.conf.d/ for Podman/containerd).
13#
14# For a secure (TLS + authentication) registry, override these after
15# the require:
16#
17# CONTAINER_REGISTRY_URL = "registry.example.com:5000"
18# CONTAINER_REGISTRY_SECURE = "1"
19# CONTAINER_REGISTRY_USERNAME = "myuser"
20# # Optional: enable htpasswd authentication
21# CONTAINER_REGISTRY_AUTH = "1"
22# # Optional: custom namespace
23# CONTAINER_REGISTRY_NAMESPACE = "myproject"
24
25CONTAINER_REGISTRY_URL ?= "localhost:5000"
26CONTAINER_REGISTRY_NAMESPACE ?= "yocto"
27CONTAINER_REGISTRY_INSECURE ?= "1"
28
29IMAGE_FEATURES:append = " container-registry"
diff --git a/conf/distro/include/meta-virt-container-incus.inc b/conf/distro/include/meta-virt-container-incus.inc
new file mode 100644
index 00000000..3792d58d
--- /dev/null
+++ b/conf/distro/include/meta-virt-container-incus.inc
@@ -0,0 +1,9 @@
1include meta-virt-container.inc
2
3# Incus is a system container and VM manager built on LXC.
4# It does not use the OCI container engine/runtime/networking model.
5VIRTUAL-RUNTIME_container_engine ??= "incus"
6VIRTUAL-RUNTIME_container_runtime ??= ""
7VIRTUAL-RUNTIME_container_networking ??= ""
8VIRTUAL-RUNTIME_container_dns ??= ""
9VIRTUAL-RUNTIME_container_orchestration ??= ""
diff --git a/conf/distro/include/meta-virt-container-k3s-host.inc b/conf/distro/include/meta-virt-container-k3s-host.inc
index 166d7cf1..f92cb956 100644
--- a/conf/distro/include/meta-virt-container-k3s-host.inc
+++ b/conf/distro/include/meta-virt-container-k3s-host.inc
@@ -1,7 +1,7 @@
1include meta-virt-container.inc 1include meta-virt-container.inc
2 2
3VIRTUAL-RUNTIME_container_engine ?= "" 3VIRTUAL-RUNTIME_container_engine ?= ""
4VIRTUAL-RUNTIME_container_runtime ?= "" 4VIRTUAL-RUNTIME_container_runtime ?= "virtual-runc"
5VIRTUAL-RUNTIME_container_networking ?= "" 5VIRTUAL-RUNTIME_container_networking ?= ""
6VIRTUAL-RUNTIME_container_dns ?= "" 6VIRTUAL-RUNTIME_container_dns ?= ""
7VIRTUAL-RUNTIME_container_orchestration ?= "k3s-host" 7VIRTUAL-RUNTIME_container_orchestration ?= "k3s-host"
diff --git a/conf/distro/include/meta-virt-dev.conf b/conf/distro/include/meta-virt-dev.conf
new file mode 100644
index 00000000..06dcbb95
--- /dev/null
+++ b/conf/distro/include/meta-virt-dev.conf
@@ -0,0 +1,28 @@
1# QEMU development and testing settings
2#
3# Include from local.conf when developing and testing with runqemu:
4#
5# require conf/distro/include/meta-virt-dev.conf
6#
7# This is separate from the build profiles (container-host-*, xen-host-*)
8# and provides settings that only matter for QEMU-based development:
9# image format, memory, debug features, etc.
10#
11# Typical local.conf for QEMU-based k3s development:
12#
13# require conf/distro/include/meta-virt-host.conf
14# BUILD_PROFILE ?= "k3s"
15# require conf/distro/include/container-host-${BUILD_PROFILE}.conf
16# require conf/distro/include/meta-virt-dev.conf
17# MACHINE = "qemux86-64"
18
19# Use raw ext4 for runqemu boot/test cycles.
20# Snapshot formats (qcow2) don't work well with repeated boots.
21IMAGE_FSTYPES = "ext4"
22
23# Xen QEMU settings: Dom0 memory cap and total VM memory
24QB_XEN_CMDLINE_EXTRA ?= "dom0_mem=512M"
25QB_MEM ?= "-m 1024"
26
27# Debug-friendly image features
28EXTRA_IMAGE_FEATURES ?= "allow-empty-password empty-root-password allow-root-login post-install-logging"
diff --git a/conf/distro/include/meta-virt-host.conf b/conf/distro/include/meta-virt-host.conf
new file mode 100644
index 00000000..99d5271e
--- /dev/null
+++ b/conf/distro/include/meta-virt-host.conf
@@ -0,0 +1,20 @@
1# Base virtualization host configuration fragment
2#
3# Common DISTRO_FEATURES for any virtualization work: containers, Xen,
4# k3s, or custom/mixed configurations.
5#
6# Use standalone for custom builds:
7#
8# require conf/distro/include/meta-virt-host.conf
9# MACHINE = "qemux86-64"
10#
11# Or let a specific profile (container-host-*, xen-host-*) inherit it.
12
13DISTRO_FEATURES:append = " virtualization systemd seccomp vmsep vcontainer"
14
15# Container runtime provider — the unified runc recipe provides both
16# runc-docker and runc-opencontainers via RPROVIDES
17PREFERRED_PROVIDER_virtual/runc ?= "runc"
18
19# Multiconfig for cross-arch vruntime builds (vdkr/vpdmn blobs)
20BBMULTICONFIG ?= "vruntime-aarch64 vruntime-x86-64"
diff --git a/conf/distro/include/vruntime-bbmask.inc b/conf/distro/include/vruntime-bbmask.inc
index 8eaf44df..eb46dbe9 100644
--- a/conf/distro/include/vruntime-bbmask.inc
+++ b/conf/distro/include/vruntime-bbmask.inc
@@ -35,7 +35,6 @@ BBMASK += "meta-virtualization/recipes-extended/upx/"
35BBMASK += "meta-virtualization/recipes-extended/uxen/" 35BBMASK += "meta-virtualization/recipes-extended/uxen/"
36BBMASK += "meta-virtualization/recipes-extended/ipxe/" 36BBMASK += "meta-virtualization/recipes-extended/ipxe/"
37BBMASK += "meta-virtualization/recipes-extended/diod/" 37BBMASK += "meta-virtualization/recipes-extended/diod/"
38BBMASK += "meta-virtualization/recipes-extended/libibverbs/"
39BBMASK += "meta-virtualization/recipes-extended/virtiofsd/" 38BBMASK += "meta-virtualization/recipes-extended/virtiofsd/"
40 39
41# --------------------------------------------------------------------------- 40# ---------------------------------------------------------------------------
diff --git a/conf/distro/include/xen-host.conf b/conf/distro/include/xen-host.conf
new file mode 100644
index 00000000..0d21cc63
--- /dev/null
+++ b/conf/distro/include/xen-host.conf
@@ -0,0 +1,17 @@
1# Xen host configuration fragment
2#
3# Include from local.conf for Xen Dom0 development and testing.
4# Requires meta-virt-host.conf to be included first:
5#
6# require conf/distro/include/meta-virt-host.conf
7# require conf/distro/include/xen-host.conf
8# MACHINE = "qemux86-64"
9# bitbake xen-image-minimal
10#
11# Enables Xen hypervisor support, vxn (Docker CLI for Xen), and containerd
12# for the OCI runtime path.
13
14DISTRO_FEATURES:append = " xen vxn"
15
16# Xen Dom0 image packages: vxn, containerd
17IMAGE_INSTALL:append:pn-xen-image-minimal = " vxn containerd-opencontainers"
diff --git a/conf/distro/vruntime.conf b/conf/distro/vruntime.conf
index 72958b7d..0ea43e62 100644
--- a/conf/distro/vruntime.conf
+++ b/conf/distro/vruntime.conf
@@ -37,12 +37,13 @@ DISTRO_VERSION = "1.0"
37# Explicitly NOT included: x11, wayland, pulseaudio, bluetooth, wifi, nfc, 3g, pcmcia 37# Explicitly NOT included: x11, wayland, pulseaudio, bluetooth, wifi, nfc, 3g, pcmcia
38DISTRO_FEATURES = "acl ext2 ipv4 ipv6 seccomp vfat pci vcontainer vxn" 38DISTRO_FEATURES = "acl ext2 ipv4 ipv6 seccomp vfat pci vcontainer vxn"
39 39
40# Block backfill features not needed by container runtime environments. 40# Opt out of default distro features not needed by container runtime
41# OE-core's DISTRO_FEATURES_BACKFILL auto-appends these to DISTRO_FEATURES 41# environments. Without this, gobject-introspection-data enables
42# unless explicitly listed here. Without this, gobject-introspection-data 42# python3-pygobject (which DEPENDS on cairo), and wayland enables
43# enables python3-pygobject (which DEPENDS on cairo), and wayland enables
44# pygobject's cairo PACKAGECONFIG — both are masked in vruntime builds. 43# pygobject's cairo PACKAGECONFIG — both are masked in vruntime builds.
45DISTRO_FEATURES_BACKFILL_CONSIDERED = "pulseaudio gobject-introspection-data opengl ptest multiarch wayland vulkan" 44# Note: OE-core replaced DISTRO_FEATURES_BACKFILL_CONSIDERED with
45# DISTRO_FEATURES_OPTED_OUT (commit 159148f4de2).
46DISTRO_FEATURES_OPTED_OUT = "pulseaudio gobject-introspection-data opengl ptest multiarch wayland vulkan"
46 47
47# Native and nativesdk classes need full features for build tools 48# Native and nativesdk classes need full features for build tools
48DISTRO_FEATURES:class-native = "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}" 49DISTRO_FEATURES:class-native = "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}"
@@ -62,6 +63,11 @@ VIRTUAL-RUNTIME_login_manager = ""
62# Keep images small - no documentation or debug 63# Keep images small - no documentation or debug
63EXTRA_IMAGE_FEATURES = "" 64EXTRA_IMAGE_FEATURES = ""
64 65
66# Disable ptest for glib-2.0 — its -ptest RDEPENDS pulls
67# cairo → fontconfig → freetype (entire graphics stack) via
68# python3-dbusmock → python3-pygobject, all masked in vruntime.
69PTEST_ENABLED:pn-glib-2.0 = ""
70
65# ============================================================================= 71# =============================================================================
66# Container runtime: NOT SET 72# Container runtime: NOT SET
67# ============================================================================= 73# =============================================================================
@@ -74,3 +80,12 @@ EXTRA_IMAGE_FEATURES = ""
74# their required runtimes in IMAGE_INSTALL. 80# their required runtimes in IMAGE_INSTALL.
75# ============================================================================= 81# =============================================================================
76VIRTUAL-RUNTIME_container_runtime = "" 82VIRTUAL-RUNTIME_container_runtime = ""
83VIRTUAL-RUNTIME_container_engine = ""
84VIRTUAL-RUNTIME_container_networking = ""
85VIRTUAL-RUNTIME_container_dns = ""
86VIRTUAL-RUNTIME_container_orchestration = ""
87
88# Ensure the unified runc recipe is the provider — vdkr-rootfs-image
89# RDEPENDS on runc directly. Strong assignment to override any stale
90# cache or weak defaults.
91PREFERRED_PROVIDER_virtual/runc = "runc"
diff --git a/conf/layer.conf b/conf/layer.conf
index a387d35e..eababe00 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -21,7 +21,7 @@ BBFILES_DYNAMIC += " \
21# This should only be incremented on significant changes that will 21# This should only be incremented on significant changes that will
22# cause compatibility issues with other layers 22# cause compatibility issues with other layers
23LAYERVERSION_virtualization-layer = "1" 23LAYERVERSION_virtualization-layer = "1"
24LAYERSERIES_COMPAT_virtualization-layer = "whinlatter" 24LAYERSERIES_COMPAT_virtualization-layer = "wrynose"
25LAYERDEPENDS_virtualization-layer = " \ 25LAYERDEPENDS_virtualization-layer = " \
26 core \ 26 core \
27 openembedded-layer \ 27 openembedded-layer \