diff options
| author | Bruce Ashfield <bruce.ashfield@gmail.com> | 2026-01-23 16:15:25 -0500 |
|---|---|---|
| committer | Bruce Ashfield <bruce.ashfield@gmail.com> | 2026-01-24 15:53:46 -0500 |
| commit | 54197321d56ec4d008f524736513c5a35b1a8f47 (patch) | |
| tree | 051ed24ff8809a31ceefb0f21442899f1906f985 | |
| parent | 8f7f2089a528e0d1d39e5f65ae3728ac6b8e56cd (diff) | |
| download | meta-virtualization-54197321d56ec4d008f524736513c5a35b1a8f47.tar.gz | |
packagegroups: add container build aggregates
Add packagegroup recipes to simplify building all container-related
artifacts:
- packagegroup-container-images: Build all OCI container images
(recipes inheriting image-oci)
- packagegroup-container-bundles: Build all container bundles
(recipes inheriting container-bundle)
- packagegroup-container-demo: Build all demo containers and bundles
Usage:
bitbake packagegroup-container-images
bitbake packagegroup-container-bundles
bitbake packagegroup-container-demo
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
3 files changed, 118 insertions, 0 deletions
diff --git a/recipes-core/packagegroups/packagegroup-container-bundles.bb b/recipes-core/packagegroups/packagegroup-container-bundles.bb new file mode 100644 index 00000000..910c55f2 --- /dev/null +++ b/recipes-core/packagegroups/packagegroup-container-bundles.bb | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | # SPDX-FileCopyrightText: Copyright (C) 2025 Bruce Ashfield | ||
| 2 | # | ||
| 3 | # SPDX-License-Identifier: MIT | ||
| 4 | # | ||
| 5 | # packagegroup-container-bundles.bb | ||
| 6 | # Build aggregate for all container bundle recipes | ||
| 7 | # | ||
| 8 | # Usage: bitbake packagegroup-container-bundles | ||
| 9 | # | ||
| 10 | # This triggers builds of all container bundles that inherit container-bundle. | ||
| 11 | |||
| 12 | SUMMARY = "Build all container bundles" | ||
| 13 | DESCRIPTION = "Aggregate recipe to build all container bundle recipes. \ | ||
| 14 | Bundles package OCI images for deployment and cross-install." | ||
| 15 | LICENSE = "MIT" | ||
| 16 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" | ||
| 17 | |||
| 18 | # This is a build-only aggregate - no actual package is created | ||
| 19 | ALLOW_EMPTY:${PN} = "1" | ||
| 20 | EXCLUDE_FROM_WORLD = "1" | ||
| 21 | |||
| 22 | inherit packagegroup | ||
| 23 | |||
| 24 | # Container bundles (inherit container-bundle) | ||
| 25 | # These package OCI images for deployment | ||
| 26 | CONTAINER_BUNDLES = "\ | ||
| 27 | example-container-bundle \ | ||
| 28 | remote-container-bundle \ | ||
| 29 | multilayer-container-bundle \ | ||
| 30 | alpine-oci-base \ | ||
| 31 | " | ||
| 32 | |||
| 33 | # Build dependencies - triggers builds of all listed bundles | ||
| 34 | do_build[depends] += "${@' '.join(['%s:do_build' % x for x in d.getVar('CONTAINER_BUNDLES').split()])}" | ||
diff --git a/recipes-core/packagegroups/packagegroup-container-demo.bb b/recipes-core/packagegroups/packagegroup-container-demo.bb new file mode 100644 index 00000000..ab505108 --- /dev/null +++ b/recipes-core/packagegroups/packagegroup-container-demo.bb | |||
| @@ -0,0 +1,48 @@ | |||
| 1 | # SPDX-FileCopyrightText: Copyright (C) 2025 Bruce Ashfield | ||
| 2 | # | ||
| 3 | # SPDX-License-Identifier: MIT | ||
| 4 | # | ||
| 5 | # packagegroup-container-demo.bb | ||
| 6 | # Build aggregate for all demo containers and bundles | ||
| 7 | # | ||
| 8 | # Usage: bitbake packagegroup-container-demo | ||
| 9 | # | ||
| 10 | # This triggers builds of all demo containers, test containers, and bundles. | ||
| 11 | # Use this to build everything needed for container demonstrations. | ||
| 12 | |||
| 13 | SUMMARY = "Build all demo containers and bundles" | ||
| 14 | DESCRIPTION = "Aggregate recipe to build all container demo recipes including \ | ||
| 15 | OCI images, bundles, and test containers." | ||
| 16 | LICENSE = "MIT" | ||
| 17 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" | ||
| 18 | |||
| 19 | # This is a build-only aggregate - no actual package is created | ||
| 20 | ALLOW_EMPTY:${PN} = "1" | ||
| 21 | EXCLUDE_FROM_WORLD = "1" | ||
| 22 | |||
| 23 | inherit packagegroup | ||
| 24 | |||
| 25 | # All OCI container images | ||
| 26 | CONTAINER_IMAGES = "\ | ||
| 27 | container-base \ | ||
| 28 | app-container \ | ||
| 29 | app-container-alpine \ | ||
| 30 | app-container-curl \ | ||
| 31 | app-container-layered \ | ||
| 32 | app-container-multilayer \ | ||
| 33 | autostart-test-container \ | ||
| 34 | " | ||
| 35 | |||
| 36 | # All container bundles | ||
| 37 | CONTAINER_BUNDLES = "\ | ||
| 38 | example-container-bundle \ | ||
| 39 | remote-container-bundle \ | ||
| 40 | multilayer-container-bundle \ | ||
| 41 | alpine-oci-base \ | ||
| 42 | " | ||
| 43 | |||
| 44 | # Build dependencies for images | ||
| 45 | do_build[depends] += "${@' '.join(['%s:do_image_complete' % x for x in d.getVar('CONTAINER_IMAGES').split()])}" | ||
| 46 | |||
| 47 | # Build dependencies for bundles | ||
| 48 | do_build[depends] += "${@' '.join(['%s:do_build' % x for x in d.getVar('CONTAINER_BUNDLES').split()])}" | ||
diff --git a/recipes-core/packagegroups/packagegroup-container-images.bb b/recipes-core/packagegroups/packagegroup-container-images.bb new file mode 100644 index 00000000..43279e6e --- /dev/null +++ b/recipes-core/packagegroups/packagegroup-container-images.bb | |||
| @@ -0,0 +1,36 @@ | |||
| 1 | # SPDX-FileCopyrightText: Copyright (C) 2025 Bruce Ashfield | ||
| 2 | # | ||
| 3 | # SPDX-License-Identifier: MIT | ||
| 4 | # | ||
| 5 | # packagegroup-container-images.bb | ||
| 6 | # Build aggregate for all OCI container image recipes | ||
| 7 | # | ||
| 8 | # Usage: bitbake packagegroup-container-images | ||
| 9 | # | ||
| 10 | # This triggers builds of all container images that inherit image-oci. | ||
| 11 | |||
| 12 | SUMMARY = "Build all OCI container images" | ||
| 13 | DESCRIPTION = "Aggregate recipe to build all OCI container image recipes. \ | ||
| 14 | These are reference containers for testing and demonstration." | ||
| 15 | LICENSE = "MIT" | ||
| 16 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" | ||
| 17 | |||
| 18 | # This is a build-only aggregate - no actual package is created | ||
| 19 | ALLOW_EMPTY:${PN} = "1" | ||
| 20 | EXCLUDE_FROM_WORLD = "1" | ||
| 21 | |||
| 22 | inherit packagegroup | ||
| 23 | |||
| 24 | # OCI container images (inherit image-oci) | ||
| 25 | # These produce OCI-format container images in deploy/ | ||
| 26 | CONTAINER_IMAGES = "\ | ||
| 27 | container-base \ | ||
| 28 | app-container \ | ||
| 29 | app-container-alpine \ | ||
| 30 | app-container-curl \ | ||
| 31 | app-container-layered \ | ||
| 32 | app-container-multilayer \ | ||
| 33 | " | ||
| 34 | |||
| 35 | # Build dependencies - triggers builds of all listed images | ||
| 36 | do_build[depends] += "${@' '.join(['%s:do_image_complete' % x for x in d.getVar('CONTAINER_IMAGES').split()])}" | ||
