-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support multi-arch builds in next-build GH Workflow #1212
Conversation
…ct-clone images Fix devfile#559 Signed-off-by: Andrew Obuchowicz <[email protected]>
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #1212 +/- ##
=======================================
Coverage 52.78% 52.79%
=======================================
Files 84 84
Lines 7604 7616 +12
=======================================
+ Hits 4014 4021 +7
- Misses 3302 3306 +4
- Partials 288 289 +1 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: amisevsk, AObuchow The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
New changes are detected. LGTM label has been removed. |
b7ba107
to
cb30572
Compare
Signed-off-by: Andrew Obuchowicz <[email protected]>
cb30572
to
b270e62
Compare
What does this PR do?
This PR extends the Next container build GitHub action to build the devworkspace-controller
& project-clone images for the following platforms:
Support for building the index, bundle and respect digest images for these platforms was also added in 8b80138. However, the implementation is a bit awkward: rather than using the docker buildx action, the buildx builder is manually setup and used in the
build_digests_bundle.sh
andbuild_index_image.sh
scripts if the new--multi-arch
flag is used.Additionally, it seems that docker buildx uses a single virtual network layer for all platform builds which are run in parallel. When building the olm images, the
opm --serve --cache-only
command binds tolocalhost:6000
, causing the other builds to fail as they cannot bind to the smart address/port. Thequay.io/operator-framework/opm:latest
image does not include a shell, so changing the port used based on the architecture we're building for is not possible (unless we copy over a shell from another image). As a workaround, I'm configuring the buildx builder to disable parallelism in thebuildkitd.toml
to prevent this race condition.Che/DevSpaces might not even need the index, bundle and digest images to be built for multiple platforms anyhow -- so this commit could optionally be removed.
What issues does this PR fix or reference?
#559
Is it tested? How?
Since these changes only get triggered after merging to the main branch, I tested that the build-next-imgs & build-next-olm-imgs jobs succeeded on my fork.
The resulting images were build for all 4 architectures and pushed to my quay repo's:
PR Checklist
/test v8-devworkspace-operator-e2e, v8-che-happy-path
to trigger)v8-devworkspace-operator-e2e
: DevWorkspace e2e testv8-che-happy-path
: Happy path for verification integration with Che