[build/docker] Add support for centos ARM builds#84831
[build/docker] Add support for centos ARM builds#84831jbudz merged 41 commits intoelastic:masterfrom
Conversation
This adds support for passing an architecture flag to the docker builder, enabling centos ARM package builds on native machines. The changes here include: 1) Output files now include the architecture, e.g. kibana-8.0.0-SNAPSHOT-docker-image.tar.gz -> kibana-8.0.0-SNAPSHOT-arm64-docker-image.tar.gz 2) nss is installed instead of libnss3.so. libnss3.so was not available. Because this requires an ARM build machine, it's off by default. Building can be done with `yarn build --skip-os-packages --docker-arm`
|
I tested a basic install with reporting - so far we're functioning. |
|
Pinging @elastic/kibana-operations (Team:Operations) |
|
Chatted with @jbudz, he is going to change the docker builds to always build the context. This will allow us to use a downstream job to build the actual image artifact on an ARM machine. |
Pushed with c10c26d. Removed the docker ARM specific flag, it'll generate all docker contexts and build the image corresponding to the host. |
|
@elasticmachine merge upstream |
|
I'm doing a secondary full integration sweep. ARM is fine so far. All bundle contexts were generated. amd64 image will be up shortly, but otherwise this LGTM for reviews. https://s3-us-west-1.amazonaws.com/kibana.budzenski.com/84831/353a305/kibana-8.0.0-SNAPSHOT-arm64-docker-image.tar.gz |
| async run(config, log, build) { | ||
| // Builds Docker targets for default and oss | ||
| await runDockerGenerator(config, log, build); | ||
| await runDockerGenerator(config, log, build, false, 'amd64'); |
There was a problem hiding this comment.
Can we use x64 and aarch64 to maintain consistency with Node the the build?
https://github.com/elastic/kibana/blob/master/src/dev/build/lib/platform.ts#L59-L64
There was a problem hiding this comment.
Added with 4cccd58 and the few followup commits for fixes.
|
@elasticmachine merge upstream |
@jbudz, sorry I misread this, thanks @tylersmalley for noticing it, the requirements are not to create a new |
|
^ pushed with 034d478 |
|
@elasticmachine merge upstream |
|
@elasticmachine merge upstream |
|
kibana-8.0.0-SNAPSHOT-docker-build-context.tar.gz Testing: |
|
So far this looks good, however I am blocked from fully testing this against a snapshot build of Elasticsearch. I have pinged Core. cc @rudolf |
tylersmalley
left a comment
There was a problem hiding this comment.
LGTM - fully tested by disabling migrations v2.
💚 Build SucceededMetrics [docs]
History
To update your PR or re-run it, just comment with: |
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Tyler Smalley <tyler.smalley@elastic.co>
|
Spoke with tylersmalley about the most recent commit fix, had a slack approval. 7.x: 77a3d5c |
…y-tests * 'master' of github.com:elastic/kibana: (31 commits) [Discover] Add grid flyout jest test (elastic#89088) [Search Sessions] Improve session restoration back button (elastic#87635) [TSVB] Remove vis_type_timeseries_enhanced plugin (elastic#89274) [Security Solution] Init Osquery plugin (elastic#87109) [Fleet] Do not defined aliases inside datastream template (elastic#89512) skip flaky suite (elastic#86950) chore(NA): bazel machinery installation on kbn bootstrap (elastic#89469) [build/docker] Add support for centos ARM builds (elastic#84831) Convert default_watch.json to a JS object in order to avoid TS complaints (elastic#89488) [CI] Decrease number of Jest workers (elastic#89504) [Maps] remove maps_oss TS project (elastic#89502) Adds migration settings to Docker (elastic#89501) [Lens] Fix crash in transition from unique count to last value (elastic#88916) [kbn-es] Always use bundled JDK when starting Elasticsearch (elastic#89437) unskip getting_started/shakespeare test elasticsearch 64016 (elastic#89346) [Maps] migrate maps, maps_file_upload, and maps_legacy_licensing to TS projects (elastic#89439) skip flaky suite (elastic#89478) skip flaky suite (elastic#89476) skip flaky suite (elastic#89477) skip flaky suite (elastic#89475) ... # Conflicts: # x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/phases/cold_phase/cold_phase.tsx
…updates-and-timeline-cleanup * 'master' of github.com:elastic/kibana: (44 commits) [Discover] Add grid flyout jest test (elastic#89088) [Search Sessions] Improve session restoration back button (elastic#87635) [TSVB] Remove vis_type_timeseries_enhanced plugin (elastic#89274) [Security Solution] Init Osquery plugin (elastic#87109) [Fleet] Do not defined aliases inside datastream template (elastic#89512) skip flaky suite (elastic#86950) chore(NA): bazel machinery installation on kbn bootstrap (elastic#89469) [build/docker] Add support for centos ARM builds (elastic#84831) Convert default_watch.json to a JS object in order to avoid TS complaints (elastic#89488) [CI] Decrease number of Jest workers (elastic#89504) [Maps] remove maps_oss TS project (elastic#89502) Adds migration settings to Docker (elastic#89501) [Lens] Fix crash in transition from unique count to last value (elastic#88916) [kbn-es] Always use bundled JDK when starting Elasticsearch (elastic#89437) unskip getting_started/shakespeare test elasticsearch 64016 (elastic#89346) [Maps] migrate maps, maps_file_upload, and maps_legacy_licensing to TS projects (elastic#89439) skip flaky suite (elastic#89478) skip flaky suite (elastic#89476) skip flaky suite (elastic#89477) skip flaky suite (elastic#89475) ... # Conflicts: # x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/phases/hot_phase/hot_phase.tsx # x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/lib/absolute_timing_to_relative_timing.ts
|
It will be very helpful if an ARM64 image is released. May I know when you are planning to release a stable ARM64 image? |
|
We're targeting 7.13 for this. The necessary changes on the Kibana side are in 7.12 (here) with the release publishing in a separate repo. I'm swapping the the 7.12 label with 7.13 so this doesn't get picked up the release notes for 7.12. |
This adds support for passing an architecture flag to the docker
builder, enabling centos ARM package builds on native machines. The
changes here include:
kibana-8.0.0-SNAPSHOT-docker-image.tar.gz -> kibana-8.0.0-SNAPSHOT-arm64-docker-image.tar.gz
available.
On an arm64 host, generating the image can be done with
yarn build. On an x64 host, only the build context will be generated.Closes #72884
Release note:
Adds docker images for ARM64 based operating systems