Open aleskandro opened 1 week ago
[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: adambkaplan
The full list of commands accepted by this bot can be found here.
The pull request process is described here
🤔 I'll need to check if our test suite automatically runs a smoke test for each sample build strategy, or if that is something we need to add to the e2e test code directly.
Needs to be added specifically. Though, what would we test in GitHub actions, there is no way to create a KinD cluster with nodes of different architectures ...
🤔 I'll need to check if our test suite automatically runs a smoke test for each sample build strategy, or if that is something we need to add to the e2e test code directly.
Needs to be added specifically. Though, what would we test in GitHub actions, there is no way to create a KinD cluster with nodes of different architectures ...
I think for the matter of testing, it is good enough to build a single-arch image into a manifest-list, i.e., having only one element in the architectures
list of the Build
object. For sure some for loops will execute only once, but that should be ok?
What do you think?
Changes
This PR proposes a sample multi-arch native ClusterBuildStrategy. The ClusterBuildStrategy runs as a main orchestrator pod. It creates one "agent" job for each architecture requested by the Build. The agent 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 agent jobs run through the following coordination barriers:
The orchestrator pod:
The service account that runs the strategy must be able to create, list, get and watch Jobs and Pods. It also needs to be allowed the exec verb for pods.
Relates to #1119
/kind feature
Submitter Checklist
See the contributor guide for details on coding conventions, github and prow interactions, and the code review process.
Release Notes
/cc @adambkaplan