Dual Bootable and OCI Image Output with External Registry Publishing for BuildStream
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- docker, python
- Domain
- devops, infrastructure
Research direction
Start by locating the build_stream and image_build_manager components and reviewing parent issue #5438, then trace how image-thrillhouse currently builds and stages bootable images. Map the existing build and S3 publication flow before defining changes for dual OCI output, external registry authentication, and publishing. Done means all five acceptance criteria pass, including local artifact preservation when publishing fails.
Written by the indexing model from the issue text.
Description
Dual Bootable and OCI Image Output with External Registry Publishing for BuildStream
Sub-Issue Context
- Parent Issue: #5438 (Buildstream Production Readiness and Pilot Acceptance)
- Component:
build_stream/image_build_manager - Category: Image Build & Distribution
Summary
BuildStream currently generates materialized, boot-ready OS image bundles (kernel, initramfs, and SquashFS) intended for bare-metal network boot via S3-compatible object storage endpoints. Different customer environments maintain different infrastructure practices and governance models—both S3-compatible object storage and enterprise OCI container registries are common, standard distribution tiers. In many enterprise sites, centralized OCI container registries are already established and integrated into corporate vulnerability scanning, image signing, and access controls.
This capability enhances the BuildStream image build pipeline (backed by image-thrillhouse) to generate dual outputs from a single build pass:
- The standard materialized bootable image bundle (kernel, initramfs, SquashFS).
- A standard OCI-compliant container image.
Additionally, it allows operators to optionally push the resulting OCI container image directly to an existing, external OCI container registry (e.g., enterprise Harbor, Quay, or internal registry) not managed by Omnia, enabling organizations to distribute and manage cluster OS images using their preferred enterprise container infrastructure.
User Need & Value
- Architectural Flexibility: Accommodates sites that standardize on enterprise OCI container registries as well as those that utilize S3-compatible object storage endpoints.
- Dual-Target Efficiency: A single build invocation yields both bare-metal boot components and container-standard OCI images, avoiding redundant build passes and eliminating configuration drift.
- Enterprise Alignment: Allows cluster operating system images to leverage existing organizational registries, access controls, and security scanning workflows.
Key Capabilities
- Dual Image Format Generation:
- Configure the build pipeline to generate both the bootable kernel/initramfs/SquashFS bundle and the flattened OCI container image as first-class build artifacts from a single catalog recipe.
- Optional External Registry Publishing:
- Provide declarative configuration parameters to authenticate against and push generated OCI images to an existing external registry namespace.
- Retain local artifact caching so that external pushing is optional and failure to reach an external registry does not destroy locally built boot bundles.
- Registry Credential Isolation:
- Securely manage registry credentials via encrypted credential inputs, supporting standard token-based and username/password authentication mechanisms.
- Standard Provenance & Digest Tagging:
- Tag published OCI images with immutable catalog digests and release tags matching the BuildStream build manifest.
High-Level Scope
Goals
- Support generating both bootable bundles and OCI images in a single BuildStream run.
- Enable optional automated pushing of OCI images to an operator-specified external OCI registry.
- Support standard authentication protocols for external OCI registries (Bearer token, basic auth, TLS verification).
- Preserve existing local image staging and S3 publication workflows.
Non-Goals
- Deploying or managing an external container registry instance (the registry must already exist).
- Deprecating or replacing the standard bare-metal boot bundle output (both formats are preserved).
- Building application container images (strictly scoped to cluster operating system images).
Acceptance Criteria
- AC-001: A BuildStream image build generates both the materialized boot bundle (kernel, initramfs, SquashFS) and a valid OCI container image.
- AC-002: When external registry publishing is enabled with valid credentials, the OCI image is successfully tagged and pushed to the target repository.
- AC-003: When external publishing is disabled, local bootable artifacts are generated without attempting remote registry network calls.
- AC-004: Network or authentication failures during remote registry push are reported with actionable error messages without corrupting locally generated boot artifacts.
- AC-005: Published OCI images contain traceable metadata tags linking them to their source catalog definition.
- Dominant language
- Python
- Stars
- 9
- Forks
- 175
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 171
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from dell/omnia
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
`src/telemetry/containers/build_images.sh` should have localcopy build_actionMay be free again @priti-parate claimed this 28 days ago, and no pull request is open. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
dell/omnia#5425 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Warning: SLURM_REPO_URL and SLURM_REPO_NAME must be provided.May be free again @priti-parate claimed this 28 days ago, and no pull request is open. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
dell/omnia#5423 · 1 assignee ·
Maintainers usually reply within 1 day
Similar issues
-
request-theme
Difficulty 1/5 Under an hour Newbie friendliness 78/100
LizardByte/ThemerrDB#9883 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Project-MONAI/MONAI#9258 ·
Maintainers usually reply within 3 days
-
catalog:deprecation
Difficulty 1/5 Under an hour Newbie friendliness 88/100
surendranb/free-inference#31 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
fritzprix/libr-agent#2612 ·
Maintainers usually reply within 1 day
-
needs-triage presubmit-gate
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
gke-labs/kube-agents#5001 ·
Maintainers usually reply within 1 day