Commit dc96c0f
committed
Native multi-arch ClusterBuildStrategy
This commits adds a sample multi-arch native ClusterBuildStrategy.
The ClusterBuildStrategy runs as a main orchestrator pod. It creates one slave job for each architecture requested by the Build. The slave jobs are responsible for building the container image and coordinate with the orchestrator pod via messages in FIFO pipes sent through the kubectl client.
The slave jobs run through the following coordination barriers:
1. Wait for the assets to be uploaded (source code, pull secrets, etc...)
2. Waiting for the image download to start
3. Waiting for the image download to finish
The orchestrator pod:
1. Create the slave jobs
2. Upload the assets and signal the completion of the assets upload through a write to the FIFO pipe in each slave job
3. Start the download of the oci archive
4. Inform the slave jobs the download is completed
5. Creates a manifest-list and push it to the final registry.
The service account that runs the strategy must be able to list, get and watch jobs and pods. It also needs to be allowed the create verb for the pods/exec resource, and create for the jobs one.1 parent a38cc4f commit dc96c0f
File tree
4 files changed
+612
-0
lines changed- samples/v1beta1/buildstrategy/multiarch-native-buildah
- test/data/v1beta1
4 files changed
+612
-0
lines changed
0 commit comments