diff options
Diffstat (limited to 'conf')
| -rw-r--r-- | conf/distro/include/container-host-containerd.conf | 14 | ||||
| -rw-r--r-- | conf/distro/include/container-host-docker.conf | 14 | ||||
| -rw-r--r-- | conf/distro/include/container-host-incus.conf | 15 | ||||
| -rw-r--r-- | conf/distro/include/container-host-k3s-node.conf | 18 | ||||
| -rw-r--r-- | conf/distro/include/container-host-k3s.conf | 17 | ||||
| -rw-r--r-- | conf/distro/include/container-host-podman.conf | 17 | ||||
| -rw-r--r-- | conf/distro/include/container-registry.conf | 29 | ||||
| -rw-r--r-- | conf/distro/include/meta-virt-container-incus.inc | 9 | ||||
| -rw-r--r-- | conf/distro/include/meta-virt-container-k3s-host.inc | 2 | ||||
| -rw-r--r-- | conf/distro/include/meta-virt-dev.conf | 28 | ||||
| -rw-r--r-- | conf/distro/include/meta-virt-host.conf | 20 | ||||
| -rw-r--r-- | conf/distro/include/vruntime-bbmask.inc | 1 | ||||
| -rw-r--r-- | conf/distro/include/xen-host.conf | 17 | ||||
| -rw-r--r-- | conf/distro/vruntime.conf | 25 | ||||
| -rw-r--r-- | conf/layer.conf | 2 |
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 | |||
| 14 | CONTAINER_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 | |||
| 14 | CONTAINER_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 | |||
| 15 | CONTAINER_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 | |||
| 16 | CONTAINER_PROFILE = "k3s-node" | ||
| 17 | |||
| 18 | DISTRO_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 | |||
| 15 | CONTAINER_PROFILE = "k3s-host" | ||
| 16 | |||
| 17 | DISTRO_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 | |||
| 15 | CONTAINER_PROFILE = "podman" | ||
| 16 | |||
| 17 | DISTRO_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 | |||
| 25 | CONTAINER_REGISTRY_URL ?= "localhost:5000" | ||
| 26 | CONTAINER_REGISTRY_NAMESPACE ?= "yocto" | ||
| 27 | CONTAINER_REGISTRY_INSECURE ?= "1" | ||
| 28 | |||
| 29 | IMAGE_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 @@ | |||
| 1 | include 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. | ||
| 5 | VIRTUAL-RUNTIME_container_engine ??= "incus" | ||
| 6 | VIRTUAL-RUNTIME_container_runtime ??= "" | ||
| 7 | VIRTUAL-RUNTIME_container_networking ??= "" | ||
| 8 | VIRTUAL-RUNTIME_container_dns ??= "" | ||
| 9 | VIRTUAL-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 @@ | |||
| 1 | include meta-virt-container.inc | 1 | include meta-virt-container.inc |
| 2 | 2 | ||
| 3 | VIRTUAL-RUNTIME_container_engine ?= "" | 3 | VIRTUAL-RUNTIME_container_engine ?= "" |
| 4 | VIRTUAL-RUNTIME_container_runtime ?= "" | 4 | VIRTUAL-RUNTIME_container_runtime ?= "virtual-runc" |
| 5 | VIRTUAL-RUNTIME_container_networking ?= "" | 5 | VIRTUAL-RUNTIME_container_networking ?= "" |
| 6 | VIRTUAL-RUNTIME_container_dns ?= "" | 6 | VIRTUAL-RUNTIME_container_dns ?= "" |
| 7 | VIRTUAL-RUNTIME_container_orchestration ?= "k3s-host" | 7 | VIRTUAL-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. | ||
| 21 | IMAGE_FSTYPES = "ext4" | ||
| 22 | |||
| 23 | # Xen QEMU settings: Dom0 memory cap and total VM memory | ||
| 24 | QB_XEN_CMDLINE_EXTRA ?= "dom0_mem=512M" | ||
| 25 | QB_MEM ?= "-m 1024" | ||
| 26 | |||
| 27 | # Debug-friendly image features | ||
| 28 | EXTRA_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 | |||
| 13 | DISTRO_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 | ||
| 17 | PREFERRED_PROVIDER_virtual/runc ?= "runc" | ||
| 18 | |||
| 19 | # Multiconfig for cross-arch vruntime builds (vdkr/vpdmn blobs) | ||
| 20 | BBMULTICONFIG ?= "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/" | |||
| 35 | BBMASK += "meta-virtualization/recipes-extended/uxen/" | 35 | BBMASK += "meta-virtualization/recipes-extended/uxen/" |
| 36 | BBMASK += "meta-virtualization/recipes-extended/ipxe/" | 36 | BBMASK += "meta-virtualization/recipes-extended/ipxe/" |
| 37 | BBMASK += "meta-virtualization/recipes-extended/diod/" | 37 | BBMASK += "meta-virtualization/recipes-extended/diod/" |
| 38 | BBMASK += "meta-virtualization/recipes-extended/libibverbs/" | ||
| 39 | BBMASK += "meta-virtualization/recipes-extended/virtiofsd/" | 38 | BBMASK += "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 | |||
| 14 | DISTRO_FEATURES:append = " xen vxn" | ||
| 15 | |||
| 16 | # Xen Dom0 image packages: vxn, containerd | ||
| 17 | IMAGE_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 |
| 38 | DISTRO_FEATURES = "acl ext2 ipv4 ipv6 seccomp vfat pci vcontainer vxn" | 38 | DISTRO_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. |
| 45 | DISTRO_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). | ||
| 46 | DISTRO_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 |
| 48 | DISTRO_FEATURES:class-native = "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}" | 49 | DISTRO_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 |
| 63 | EXTRA_IMAGE_FEATURES = "" | 64 | EXTRA_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. | ||
| 69 | PTEST_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 | # ============================================================================= |
| 76 | VIRTUAL-RUNTIME_container_runtime = "" | 82 | VIRTUAL-RUNTIME_container_runtime = "" |
| 83 | VIRTUAL-RUNTIME_container_engine = "" | ||
| 84 | VIRTUAL-RUNTIME_container_networking = "" | ||
| 85 | VIRTUAL-RUNTIME_container_dns = "" | ||
| 86 | VIRTUAL-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. | ||
| 91 | PREFERRED_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 |
| 23 | LAYERVERSION_virtualization-layer = "1" | 23 | LAYERVERSION_virtualization-layer = "1" |
| 24 | LAYERSERIES_COMPAT_virtualization-layer = "whinlatter" | 24 | LAYERSERIES_COMPAT_virtualization-layer = "wrynose" |
| 25 | LAYERDEPENDS_virtualization-layer = " \ | 25 | LAYERDEPENDS_virtualization-layer = " \ |
| 26 | core \ | 26 | core \ |
| 27 | openembedded-layer \ | 27 | openembedded-layer \ |
