-
Spike
-
Resolution: Done
-
Major
-
None
-
None
-
None
-
5
-
False
-
-
False
-
rhel-container-tools
-
-
-
RUN 274, RUN 275, RUN 276
Summary: Investigate the feasibility and effort required to integrate Docker Bake functionality into Podman to enhance multi-target and orchestrated build workflows.
Description:
Docker Bake is a feature of Docker Buildx that allows users to define and orchestrate complex multi-target builds using a declarative docker-bake.json file. It enables parallel execution of build steps, dependency management between targets, and streamlined workflows for building multiple images or different architectures.
Integrating a similar "bake" functionality into Podman could significantly enhance the developer experience for users who manage complex build pipelines, especially those involving multiple images, build stages, or target platforms. This spike is needed to thoroughly investigate the technical challenges, compatibility, and overall effort involved in bringing such capabilities to Podman, considering its existing build tools like podman build and buildah.
Investigation Scope:
- Analyze Docker Bake's Architecture: Understand how docker-bake.json files are parsed, how targets are defined and resolved, and how buildx orchestrates the underlying build processes.
- Assess Podman's Current Build Capabilities: Evaluate the strengths and limitations of podman build and buildah in handling multi-target, dependent, and parallel builds. Identify any existing features that could be leveraged or extended.
- Identify Integration Points and Challenges:
-
- How would a "bake" command fit into the existing Podman CLI?
-
- What are the implications for build caching, image layering, and storage?
-
- How would multi-platform builds be handled?
-
- Can buildah be extended to support the necessary orchestration, or would a new component be required?
-
- Consider potential conflicts or overlaps with existing Podman/Buildah features.
- Evaluate Implementation Effort: Provide a preliminary estimate (e.g., T-shirt size: Small, Medium, Large) for the work required to implement a minimal viable "bake" functionality within Podman.
- Consider Alternatives: Explore if similar benefits could be achieved by enhancing existing Podman/Buildah features or by recommending external tools/workflows.
Expected Outcomes:
- A clear recommendation on whether to proceed with Docker Bake-like functionality integration into Podman, including a justification.
- If recommended, an estimated level of effort (e.g., T-shirt size: Small, Medium, Large) for the implementation.
- Identification of key technical challenges and potential high-level solutions or design considerations.
- A proposal for next steps, which could include creating a new story for implementation, closing the spike with a rationale, or suggesting further investigation.
- A brief summary of findings regarding Docker Bake's architecture and its applicability to Podman.