-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[build/docker] Add support for centos ARM builds #84831
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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