Beats: [packaging] Add arm64 Docker images

Created on 7 May 2020  路  7Comments  路  Source: elastic/beats

We enabled builds of arm64 artifacts (tar.gz, deb, rpm) when you build packages. Next we want to enable builds of arm64 Docker images by default.

Currently almost all of the packaging artifacts can be produced via cross-compiles (expect macOS installers). It would nice to do this for the arm64 Docker images too. The experimental docker buildx command would support this. I've used the command to build images and it works well.

  • [ ] Update the docker builder code to support docker buildx.

    • [ ] Auto-detect if buildx is supported and skip that target if it's not available.

    • [ ] Make it possible to support more than arm64 (like linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6).

  • [ ] Update package_test.go if needed. Make sure it works on the arm64 images.
  • These projects have customized packaging and probably required additional attention.

    • [ ] Elastic Docker Logging Plugin

    • [ ] Elastic Agent

  • [ ] Select proper architecture for other binaries included in images (jq, tini...)

    • [ ] Heartbeat synthetics deps

  • [ ] Enable buildx command on CI servers.
Packaging Automation Services Ready automation enhancement v7.9.0

Most helpful comment

Any chance that a docker-image for elastic-agent on ARM64 can come soon? Willing to help and test. Thanks!

All 7 comments

Pinging @elastic/integrations-services (Team:Services)

One additional requirement (from the release-manager team), offer a way to not use buildx so that when you are on a native linux/arm64 you can use the regular docker build. The release-manager tool for the Elastic Stack now has an arm64 worker that Beats can use.

Enable buildx command on CI servers.

I already configured ansible to roll out this feature. It was merged a few days ago. I'll enable some test-infra asserts in our health check pipeline to help with the validation if the CI workers are configured as expected.

One additional requirement (from the release-manager team), offer a way to not use buildx so that when you are on a native linux/arm64 you can use the regular docker build.

@mgreau asked me to clarify: this is a hard requirement for getting into the release process currently. We want to make sure the beats framework for building the arm64 images supports this so it doesn't come up as a surprise later and require additional work.

any updates about this? really wanted to get the official docker image for arm

Any chance that a docker-image for elastic-agent on ARM64 can come soon? Willing to help and test. Thanks!

Added point about selecting proper architecture for binaries currently installed using curl.

Was this page helpful?
0 / 5 - 0 ratings