-
Notifications
You must be signed in to change notification settings - Fork 22
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
Multi Arch Support for Registry Operator #90
Conversation
Signed-off-by: Jordan Dubrick <[email protected]>
Signed-off-by: Jordan Dubrick <[email protected]>
Signed-off-by: Jordan Dubrick <[email protected]>
Signed-off-by: Jordan Dubrick <[email protected]>
Signed-off-by: Jordan Dubrick <[email protected]>
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.
Just one comment
Signed-off-by: Jordan Dubrick <[email protected]>
Signed-off-by: Jordan Dubrick <[email protected]>
Signed-off-by: Jordan Dubrick <[email protected]>
Signed-off-by: Jordan Dubrick <[email protected]>
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: Jdubrick, johnmcollier 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 |
* add qemu to ci Signed-off-by: Jordan Dubrick <[email protected]> * update documentation Signed-off-by: Jordan Dubrick <[email protected]> * add environment variable for build only to ci Signed-off-by: Jordan Dubrick <[email protected]> * implement multi arch building and pushing Signed-off-by: Jordan Dubrick <[email protected]> * update ci for buildx commands Signed-off-by: Jordan Dubrick <[email protected]> * separate podman buildx to have build and push commands Signed-off-by: Jordan Dubrick <[email protected]> * break buildx into build and push commands Signed-off-by: Jordan Dubrick <[email protected]> * update workflows with new build and push commands Signed-off-by: Jordan Dubrick <[email protected]> * update documentation with new commands Signed-off-by: Jordan Dubrick <[email protected]> --------- Signed-off-by: Jordan Dubrick <[email protected]> Signed-off-by: thepetk <[email protected]>
Please specify the area for this PR
CI and multi-arch building
What does does this PR do / why we need it:
This PR enables the images built for the registry-operator to be multi-arch. Previously there was a
make
commandmake docker-buildx
that built and pushed multi-arch images but it was not included in any of our CI. This PR updates that command to incorporate it into our CI alongside a new command,make docker-bundle-buildx
to allow the bundle to also be built for multiple architectures.Since
buildx
is a docker command I also created amake podman-buildx
command, this is a clone ofmake docker-buildx
but redesigned to work with podman and its specific commands.Both
ci.yaml
anddockerimage-push.yaml
were updated to now reference thebuildx
commands for building and pushing our images so that they support multiple architectures. Due to the nature of howbuildx
works with the--push
flag, I had to create the make variablePUSH_IMAGE
which defaults totrue
. This variable allows us to control if we want the image to be pushed to a repository or not, in the case ofci.yaml
we only want to test the builds when a PR is opened and this enables it to do so.Which issue(s) this PR fixes:
fixes devfile/api#1549
PR acceptance criteria:
Documentation
Testing changes
Running Unit Tests
Running Integration Tests
Special notes to the reviewer:
You can test the commands locally by performing the following:
IMG=<your repo> make docker-buildx-push
to create a multi-arch operator image and have it pushed to your repo of choiceBUNDLE_IMG=<your repo> make docker-bundle-buildx-push
to create a multi-arch bundle image and have it pushed to your repo of choiceIMG=<your repo> make podman-buildx-build && make podman-buildx-push
to create a multi-arch operator image using podman and have it pushedIMG=<your repo>
infront ofmake docker-buildx-build
, ormake podman-buildx-build
to build the images but not have them pushed to your repoIMG=<your repo> make docker-buildx-build
BUNDLE_IMG=<your repo> make docker-bundle-buildx-build
to build the bundle but not have it pushed