Skip to content
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

Distributions should include an extracted Chromium #53664

Closed
tylersmalley opened this issue Dec 20, 2019 · 5 comments · Fixed by #69165
Closed

Distributions should include an extracted Chromium #53664

tylersmalley opened this issue Dec 20, 2019 · 5 comments · Fixed by #69165
Labels
Feature:Build Packaging Feature:Reporting:Framework Reporting issues pertaining to the overall framework Team:Operations Team label for Operations Team

Comments

@tylersmalley
Copy link
Contributor

tylersmalley commented Dec 20, 2019

We should extract Chromium as part of the build process, so Kibana does not need to do this during startup.

The X-Pack build process has a task which pulls our Chromium builds from S3. These archives are stored in x-pack/legacy/plugins/reporting/.chromium. During the Kibana build, we remove all but the archive for the platform being built. Then, during startup we extract this archive into data/headless_shell. Since the data directory is configurable, we need to come up with another location for this to be pre-extracted to in the archive.

Cloud is currently doing this for their Kibana Docker image to reduce the size and startup time. There is an effort to use the stack images in Cloud which we're tracking here.

Related to #53612 (comment)

@tylersmalley tylersmalley added Team:Operations Team label for Operations Team Team:Reporting Services labels Dec 20, 2019
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-operations (Team:Operations)

@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-reporting-services (Team:Reporting Services)

@tsullivan
Copy link
Member

Documentation mentions how the extraction works:

X-Pack reporting is automatically enabled in Kibana. The first time Kibana runs, it extracts a custom build for the Chromium web browser, which runs on the server in headless mode to load Kibana and capture the rendered Kibana charts as images.

https://www.elastic.co/guide/en/kibana/7.5/reporting-getting-started.html

So this change should include an update to the documentation

@tylersmalley
Copy link
Contributor Author

Added to the description that we need to extract this to a non-configurable location in the archive.

@tylersmalley
Copy link
Contributor Author

This will be resolved by #69165

tylersmalley pushed a commit that referenced this issue Jul 10, 2020
- Updates Linux Chromium builds to accept architecture argument (defaults to x64) for arm64 support.
  - Example: `python ~/chromium/build_chromium/build.py 312d84c8ce62810976feda0d3457108a6dfff9e6 arm64`
- Updates all Chromium builds to include architecture in filename. 
  - `chromium-312d84c-linux_arm64.zip` _(new)_
  - `chromium-312d84c-linux.zip` > `chromium-312d84c-linux_x64.zip`
- Moves Chromium install from data directory to `x-pack/plugins/reporting/chromium`
- Moves Chromium download cache from `x-pack/plugins/reporting/.chromium` to `.chromium`
- Installs Chromium during build (closes #53664)
- Updates build to be architecture aware (x64 and aarch64)
- Removed Chromium debug logs, they were not helpful and can not be written inside the Kibana root. If we were to keep them, we would need to write to `logging.dist`.

Signed-off-by: Tyler Smalley <[email protected]>
tylersmalley pushed a commit to tylersmalley/kibana that referenced this issue Jul 10, 2020
- Updates Linux Chromium builds to accept architecture argument (defaults to x64) for arm64 support.
  - Example: `python ~/chromium/build_chromium/build.py 312d84c8ce62810976feda0d3457108a6dfff9e6 arm64`
- Updates all Chromium builds to include architecture in filename.
  - `chromium-312d84c-linux_arm64.zip` _(new)_
  - `chromium-312d84c-linux.zip` > `chromium-312d84c-linux_x64.zip`
- Moves Chromium install from data directory to `x-pack/plugins/reporting/chromium`
- Moves Chromium download cache from `x-pack/plugins/reporting/.chromium` to `.chromium`
- Installs Chromium during build (closes elastic#53664)
- Updates build to be architecture aware (x64 and aarch64)
- Removed Chromium debug logs, they were not helpful and can not be written inside the Kibana root. If we were to keep them, we would need to write to `logging.dist`.

Signed-off-by: Tyler Smalley <[email protected]>
# Conflicts:
#	.ci/packer_cache_for_branch.sh
#	x-pack/plugins/reporting/server/browsers/chromium/paths.ts
tylersmalley pushed a commit that referenced this issue Jul 13, 2020
- Updates Linux Chromium builds to accept architecture argument (defaults to x64) for arm64 support.
  - Example: `python ~/chromium/build_chromium/build.py 312d84c8ce62810976feda0d3457108a6dfff9e6 arm64`
- Updates all Chromium builds to include architecture in filename.
  - `chromium-312d84c-linux_arm64.zip` _(new)_
  - `chromium-312d84c-linux.zip` > `chromium-312d84c-linux_x64.zip`
- Moves Chromium install from data directory to `x-pack/plugins/reporting/chromium`
- Moves Chromium download cache from `x-pack/plugins/reporting/.chromium` to `.chromium`
- Installs Chromium during build (closes #53664)
- Updates build to be architecture aware (x64 and aarch64)
- Removed Chromium debug logs, they were not helpful and can not be written inside the Kibana root. If we were to keep them, we would need to write to `logging.dist`.

Signed-off-by: Tyler Smalley <[email protected]>
# Conflicts:
#	.ci/packer_cache_for_branch.sh
#	x-pack/plugins/reporting/server/browsers/chromium/paths.ts

Co-authored-by: Elastic Machine <[email protected]>
@sophiec20 sophiec20 added Feature:Reporting:Framework Reporting issues pertaining to the overall framework and removed (Deprecated) Team:Reporting Services labels Aug 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature:Build Packaging Feature:Reporting:Framework Reporting issues pertaining to the overall framework Team:Operations Team label for Operations Team
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants