rfcs icon indicating copy to clipboard operation
rfcs copied to clipboard

[RFC #000] - Multi-arch support in CNB Ecosystem

Open jjbustamante opened this issue 1 year ago • 3 comments

The purpose of this issue is to track the work related to support multi-architecture image in CNB ecosystem, it is a complex project and we will try to divide it in phases. in each phase we will try to provide something valuable for the community and get feedback.

Phase 1

We started with a project developed during the LFX 2023 term, the goal for this phase is to release a set of commands for handling Image Index on pack.

Update May 2024

All the required PR were merged! we are expecting the feature to be included on pack 0.34.0

Update April 2024

Unfortunately we haven't merged the PR developed during the LFX 2023 because we were missing some test coverage, we are working on adding some tests an polish the code a little bit and the expectation is to include these features on pack 0.34.0 or 0.35.0, once this code is merged into main, we will keep working on Phase 2

RFC

  • [x] https://github.com/buildpacks/rfcs/pull/283

Pack

  • [x] https://github.com/buildpacks/pack/issues/1678
  • [x] https://github.com/buildpacks/pack/issues/1718
  • [x] https://github.com/buildpacks/pack/issues/1719
  • [x] https://github.com/buildpacks/pack/issues/1720
  • [x] https://github.com/buildpacks/pack/issues/1721
  • [x] https://github.com/buildpacks/pack/issues/1722
  • [x] https://github.com/buildpacks/pack/issues/1460
  • [x] Released in pack version ~~0.31.0~~, estimate: 0.34.0

Imgutil

  • [x] https://github.com/buildpacks/imgutil/issues/188

Documentation:

  • [ ] https://github.com/buildpacks/docs/issues/710

Phase 2

After implementing the primitives to handle a Image Index, we will focus on solving the requirement of packaging builders and buildpacks for different os/arch

The focus of this phase will be:

  • pack buildpack package multi-arch support
  • pack builder create multi-arch support

Update May 2024

We decided to move a little bit our 0.34.0 release date but include this feature in this version!

Update April 2024

This phase requires the code from phase 1 to be available, but during KubeCon EU 2024 we presented a demo with a PoC implementation of the RFC.

RFC

  • [x] https://github.com/buildpacks/rfcs/pull/295

Pack

  • [x] https://github.com/buildpacks/pack/issues/1459
  • [x] https://github.com/buildpacks/pack/issues/2154
  • [x] Released in pack version estimated 0.34.0

Documentation:

  • [ ] https://github.com/buildpacks/docs/issues/708
  • [ ] https://github.com/buildpacks/docs/issues/709

Phase 3

In this phase, we assume the existence of Builders and Buildpacks addressable by Image Index

We want to focus on solving the problem to make pack build and output applications images for different os/arch.

  • pack build multi-arch support

Update March 2024

We started working on a LFX mentorship to develop a proof of concept to run pack build using buildkit behind de scenes

RFC

  • [ ] TODO - <INSERT ISSUE URL> create an RFC to discuss this option

Pack

  • [x] https://github.com/buildpacks/pack/issues/1570

Documentation:

  • [ ] TODO - https://github.com/buildpacks/docs/issues/<INSERT ISSUE NUMBER>

Maintainers: when closing this issue as completed, submit a PR to update the Status of the RFC to Implemented.

jjbustamante avatar Sep 14 '23 13:09 jjbustamante

good job

vnobo avatar Sep 18 '23 14:09 vnobo

+1 ARM64 is very much in demand

zs-dima avatar Feb 03 '24 09:02 zs-dima

Update - 05/31/2024

  • We just released pack 0.34.0, this new version included phase 1 and phase 2 capabilities
  • Paketo already published their jammy buildpackless builder, and their Java buildpacks for amd64 and arm64 architectures. They are working very hard for support and test their other buildpacks.
  • Other buildpack authors like Google and Heroku will probably do the same thing.

Again, the problem of supporting multi-platform can't be solved in just one place, all the components need to be available for multi-platform, but pack 0.34.0 was a big win on that direction.

jjbustamante avatar May 31 '24 10:05 jjbustamante