devfile / devworkspace-operator

Apache License 2.0
59 stars 50 forks source link

Feat: support multi-arch builds for releases #1218

Closed AObuchow closed 5 months ago

AObuchow commented 5 months ago

What does this PR do?

Uses docker buildx for building the devworkspace-controller image and project clone image in the release script. Also sets up QEMU and a docker buildx builder in the release.yml workflow so that buildx will have a multi-arch builder setup prior to running make-release.sh

Note: excuse the merge commit, I'll remove it and rebase this PR before merging.

What issues does this PR fix or reference?

Part of https://github.com/devfile/devworkspace-operator/issues/559

Is it tested? How?

Not tested as it requires running the release github action. Though I will try and simulate this on my fork and report back before having this merged, just wanted to get @amisevsk's eyes on it incase there's something that I'm missing in this fix.

PR Checklist

codecov[bot] commented 5 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (a371b8e) 52.74% compared to head (61f0522) 52.75%. Report is 7 commits behind head on main.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #1218 +/- ## ========================================== + Coverage 52.74% 52.75% +0.01% ========================================== Files 84 84 Lines 7616 7616 ========================================== + Hits 4017 4018 +1 + Misses 3310 3309 -1 Partials 289 289 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

openshift-ci[bot] commented 5 months ago

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: amisevsk, AObuchow, ibuziuk

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: - ~~[OWNERS](https://github.com/devfile/devworkspace-operator/blob/main/OWNERS)~~ [AObuchow,amisevsk] Approvers can indicate their approval by writing `/approve` in a comment Approvers can cancel approval by writing `/approve cancel` in a comment
openshift-ci[bot] commented 5 months ago

New changes are detected. LGTM label has been removed.

AObuchow commented 5 months ago

/retest

AObuchow commented 5 months ago

/retest

amisevsk commented 5 months ago

/retest

openshift-ci[bot] commented 5 months ago

@AObuchow: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/v14-devworkspace-operator-e2e 61f0522c0fce6180bb250627bb9246b82a84ca58 link true /test v14-devworkspace-operator-e2e

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
AObuchow commented 5 months ago

FWIW: I tested the release script with the buildx changes (and QEMU + buildx GH action setup) on my fork here and ensured that calling the release script without the dry-run parameter would build for all platforms.

AObuchow commented 5 months ago

The e2e test seems to have broken:

{  "devworkspace-operator-e2e" pod "devworkspace-operator-e2e-ipi-conf" failed: could not watch pod: the pod ci-op-6pvgllxq/devworkspace-operator-e2e-ipi-conf failed after 6s (failed containers: test): ContainerFailed one or more containers exited

Container test exited with code 1, reason Error
---
Installing from release registry.build05.ci.openshift.org/ci-op-6pvgllxq/release@sha256:073a4e46289be25e2a05f5264c8f1d697410db66b960c9ceeddebd1c61e58717
/bin/bash: line 19: /var/run/secrets/ci.openshift.io/cluster-profile/ssh-publickey: No such file or directory
{"component":"entrypoint","error":"wrapped process failed: exit status 1","file":"k8s.io/test-infra/prow/entrypoint/run.go:84","func":"k8s.io/test-infra/prow/entrypoint.Options.internalRun","level":"error","msg":"Error executing test process","severity":"error","time":"2024-01-15T19:04:44Z"}
error: failed to execute wrapped command: exit status 1
---
Link to step on registry info site: https://steps.ci.openshift.org/reference/ipi-conf
Link to job on registry info site: https://steps.ci.openshift.org/job?org=devfile&repo=devworkspace-operator&branch=main&test=devworkspace-operator-e2e&variant=v14}

Merging anyway as this PR only modifies the release script + GH release action which are not tested in e2e test.