elastic / rally

Macrobenchmarking framework for Elasticsearch
Apache License 2.0
37 stars 314 forks source link

Build multi-arch Docker image #1878

Closed pquentin closed 1 month ago

pquentin commented 1 month ago

This pull request builds on top of #187. It adds multi-arch builds as done in Eland nearly one year ago: https://github.com/elastic/eland/pull/615. The main difference is that in Rally we test the image before pushing it. However, this workflow is not supported for multi-arch images: https://github.com/docker/buildx/issues/59. As a workaround, we build a linux/amd64 image first, test it, and then build and push the actual multi-arch image with linux/amd64 and linux/arm64. While it is named linux/arm64, it's supported natively on Apple silicon hardware, such as M1/M2/M3 MacBooks.

To review this, the only relevant commit is https://github.com/elastic/rally/commit/515ce21ed178fbcb04120af33ce55e6110359ea8. I believe this should only be merged after #1871, because it's a different concern, and may need to be reverted independently.

favilo commented 1 month ago

Hah, I've also been working on https://github.com/elastic/rally/pull/1873

That one tests both architectures, and uses buildkite runners of each architecture in parallel. Followed by a manifest command to merge them

I also wanted to have a dev-latest tag for daily dev builds between official releases

pquentin commented 1 month ago

Excellent! Closing in favor of #1873.