<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/meta-virtualization.git/docs/container-bundling.md, branch master-next</title>
<subtitle>Mirror of git.yoctoproject.org/meta-virtualization</subtitle>
<id>https://git.enea.com/cgit/linux/meta-virtualization.git/atom?h=master-next</id>
<link rel='self' href='https://git.enea.com/cgit/linux/meta-virtualization.git/atom?h=master-next'/>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/'/>
<updated>2026-02-09T03:34:12+00:00</updated>
<entry>
<title>container-cross-install: add tests and documentation for custom service files</title>
<updated>2026-02-09T03:34:12+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-02-06T03:54:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=bb7e321ff59a9ffdb53b33929826b4fb0e8616ec'/>
<id>urn:sha1:bb7e321ff59a9ffdb53b33929826b4fb0e8616ec</id>
<content type='text'>
Add pytest tests to verify CONTAINER_SERVICE_FILE varflag support:

TestCustomServiceFileSupport (unit tests, no build required):
- test_bbclass_has_service_file_support
- test_bundle_class_has_service_file_support
- test_service_file_map_syntax
- test_install_custom_service_function

TestCustomServiceFileBoot (boot tests, require built image):
- test_systemd_services_directory_exists
- test_container_services_present
- test_container_service_enabled
- test_custom_service_content
- test_podman_quadlet_directory

Documentation updates:
- docs/container-bundling.md: Add "Custom Service Files" section with
  variable format, usage examples for both BUNDLED_CONTAINERS and
  container-bundle packages, and example .service/.container files
- tests/README.md: Add test class entries to structure diagram and
  "What the Tests Check" table

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>image-oci: add layer caching for multi-layer OCI builds</title>
<updated>2026-02-09T03:32:52+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-01-14T20:59:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=929d1609efefd3189b650facaaeb3d2a13ffbe1d'/>
<id>urn:sha1:929d1609efefd3189b650facaaeb3d2a13ffbe1d</id>
<content type='text'>
Add layer caching to speed up multi-layer OCI image rebuilds. When
enabled, pre-installed package layers are cached to disk and restored
on subsequent builds, avoiding repeated package installation.

New variables:
- OCI_LAYER_CACHE: Enable/disable caching (default "1")
- OCI_LAYER_CACHE_DIR: Cache location (default ${TOPDIR}/oci-layer-cache/${MACHINE})

Cache key is computed from:
- Layer name and type
- Sorted package list
- Package versions from PKGDATA_DIR
- MACHINE and TUNE_PKGARCH

Cache automatically invalidates when:
- Package versions change
- Layer definition changes
- Architecture changes

Benefits:
- First build: ~10-30s per layer (cache miss, packages installed)
- Subsequent builds: ~1s per layer (cache hit, files copied)
- Shared across recipes with identical layer definitions

Build log shows cache status:
  NOTE: OCI Cache HIT: Layer 'base' (be88c180f651416b)
  NOTE: OCI: Pre-installed packages for 3 layers (cache: 3 hits, 0 misses)

Also adds comprehensive pytest suite for multi-layer OCI functionality
including tests for 1/2/3 layer modes and cache behavior.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>image-oci: add multi-layer OCI image support with OCI_LAYERS</title>
<updated>2026-02-09T03:32:52+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-01-14T20:58:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=4fd9190b7f2f7260b90c7de1609944c96fcf6f64'/>
<id>urn:sha1:4fd9190b7f2f7260b90c7de1609944c96fcf6f64</id>
<content type='text'>
Add support for creating multi-layer OCI images with explicit layer
definitions via OCI_LAYERS variable. This enables fine-grained control
over container layer composition.

New variables:
- OCI_LAYER_MODE: Set to "multi" for explicit layer definitions
- OCI_LAYERS: Define layers as "name:type:content" entries
  - packages: Install specific packages in a layer
  - directories: Copy directories from IMAGE_ROOTFS
  - files: Copy specific files from IMAGE_ROOTFS

Package installation uses Yocto's package manager classes (RpmPM,
OpkgPM) for consistency with do_rootfs, rather than calling dnf/opkg
directly.

Example usage:
  OCI_LAYER_MODE = "multi"
  OCI_LAYERS = "\
      base:packages:base-files+base-passwd+netbase \
      shell:packages:busybox \
      app:packages:curl \
  "

This creates a 3-layer OCI image with discrete base, shell, and app
layers that can be shared and cached independently.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>docs: add OCI multi-layer and vshell documentation</title>
<updated>2026-02-09T03:32:52+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-01-14T04:46:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=fb238ac545516cacd05b085335f249a806261644'/>
<id>urn:sha1:fb238ac545516cacd05b085335f249a806261644</id>
<content type='text'>
Update container-bundling.md with:

- New "OCI Multi-Layer Images" section explaining:
  - Single vs multi-layer image differences
  - OCI_BASE_IMAGE usage (recipe name or path)
  - OCI_IMAGE_CMD vs OCI_IMAGE_ENTRYPOINT behavior
  - When to use CMD (base images) vs ENTRYPOINT (wrapper tools)

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>docs: add container bundling and vdkr/vpdmn documentation</title>
<updated>2026-02-09T03:32:52+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-01-07T18:49:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=7cfd91b8452db84f06f3cf675f605d4da6eb6882'/>
<id>urn:sha1:7cfd91b8452db84f06f3cf675f605d4da6eb6882</id>
<content type='text'>
Add comprehensive documentation for the container cross-install system:

- Choosing between BUNDLED_CONTAINERS and container-bundle packages
- Decision guide table for selecting the right approach
- Component relationships (app recipe -&gt; container image -&gt; bundle)
- BUNDLED_CONTAINERS format and examples
- container-bundle.bbclass usage
- Container autostart configuration
- vdkr/vpdmn virtual container runtime usage
- Architecture overview and how it works
- Testing instructions

This provides a single reference for users wanting to bundle containers
into Yocto images at build time.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
</feed>
