image_builder: allow specifying architecture to override the default
Categories
(Release Engineering :: General, task)
Tracking
(firefox154 fixed)
| Tracking | Status | |
|---|---|---|
| firefox154 | --- | fixed |
People
(Reporter: jcristau, Assigned: jcristau)
References
Details
Attachments
(9 files)
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review |
Images produced by image_builder have architecture set to the native arch in their metadata, which is usually fine except for image_builder_arm64, which is built on amd64 but should have arch set to arm64.
| Assignee | ||
Comment 1•6 days ago
|
||
I'm going to extend the scope of this bug to also update the image to current versions of its dependencies.
| Assignee | ||
Comment 2•6 days ago
|
||
Because image_builder_arm64 is cross-built by the amd64 image_builder, it
ended up with its architecture metadata wrongly set to amd64.
There is no kaniko or skopeo flag to override only the resulting image
metadata: kaniko's --custom-platform also switches the platform used to
pull base images and run the build steps, which breaks the cross-build on
the amd64 worker. Instead, set a TARGET_ARCH environment variable for
image_builder_arm64 and have build-image rewrite the architecture field in
the image config after kaniko builds it, before repacking with skopeo.
Updated•6 days ago
|
| Assignee | ||
Comment 3•6 days ago
|
||
| Assignee | ||
Comment 4•6 days ago
|
||
| Assignee | ||
Comment 5•6 days ago
|
||
The containers/image module moved to go.podman.io/image/v5 and dropped the
build-time signature policy path override, so point skopeo at the bundled
policy.json via the CONTAINERS_POLICY_JSON environment variable instead.
The devicemapper graphdriver was removed upstream, so drop the now-unused
exclude_graphdriver_devicemapper build tag.
| Assignee | ||
Comment 6•6 days ago
|
||
The newer toolchain supports the v4 Cargo.lock format that cargo update now
writes. It also renamed cargo's unstable --out-dir flag to --artifact-dir, so
update the build invocation to match.
| Assignee | ||
Comment 7•6 days ago
|
||
| Assignee | ||
Comment 8•6 days ago
|
||
The chown_output config field is read by envy from CHOWN_OUTPUT, but the test
set USER, so the field was never populated. The test has failed since it was
added; it isn't run in CI, so the failure went unnoticed.
| Assignee | ||
Comment 9•6 days ago
|
||
The build-image crate's unit tests are not run anywhere in CI. Run them as part
of building the image_builder image so changes under
taskcluster/docker/image_builder are covered. The tests only run for a native
build (target arch == build host arch); when cross-compiling the test binaries
can't be executed on the build host.
| Assignee | ||
Comment 10•6 days ago
|
||
Comment 11•2 days ago
|
||
Comment 12•1 day ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/3d3e63165dde
https://hg.mozilla.org/mozilla-central/rev/c3b2ae069335
https://hg.mozilla.org/mozilla-central/rev/cdd7b1b911d5
https://hg.mozilla.org/mozilla-central/rev/b2d1dc888310
https://hg.mozilla.org/mozilla-central/rev/cd63524a2f1f
https://hg.mozilla.org/mozilla-central/rev/358a95693409
https://hg.mozilla.org/mozilla-central/rev/fd15d127f6c5
https://hg.mozilla.org/mozilla-central/rev/726d95502ba3
https://hg.mozilla.org/mozilla-central/rev/2ff4e042c34a
Description
•