mirror of
https://github.com/elastic/kibana.git
synced 2025-04-22 08:49:27 -04:00
## Summary Bumps node.js to 18.17.0 (replacement for PR #144012 which was later reverted) As a result, these categorical additions were needed: - `node` evocations will need the `--openssl-legacy-provider` flag, wherever it would use certain crypto functionalities - tests required updating of the expected HTTPS Agent call arguments, `noDelay` seems to be a default - `window.[NAME]` fields cannot be written directly - some stricter typechecks This is using our in-house built node.js 18 versions through the URLs the proxy-cache. (built with https://github.com/elastic/kibana-custom-nodejs-builds/pull/4) These urls are served from a bucket, where the RHEL7/Centos7 compatible node distributables are. (see: https://github.com/elastic/kibana-ci-proxy-cache/pull/7) Further todos: - [x] check docs wording and consistency - [ ] update the dependency report - [x] explain custom builds in documentation - [x] node_sass prebuilts --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Tiago Costa <tiago.costa@elastic.co> Co-authored-by: Thomas Watson <w@tson.dk> |
||
---|---|---|
.. | ||
src | ||
index.ts | ||
jest.config.js | ||
jest.integration.config.js | ||
kibana.jsonc | ||
package.json | ||
README.mdx | ||
tsconfig.json |
--- id: kibDevDocsOpsEs slug: /kibana-dev-docs/ops/es title: "@kbn/es" description: A cli package for running elasticsearch or building snapshot artifacts date: 2022-05-24 tags: ['kibana', 'dev', 'contributor', 'operations', 'es'] --- > A command line utility for running elasticsearch from snapshot, source, archive, docker, serverless or even building snapshot artifacts. ## Getting started If running elasticsearch from source, elasticsearch needs to be cloned to a sibling directory of Kibana. If running elasticsearch serverless or a docker container, docker is required to be installed locally. Installation instructions can be found [here](https://www.docker.com/). To run, go to the Kibana root and run `node scripts/es --help` to get the latest command line options. The script attempts to preserve the existing interfaces used by Elasticsearch CLI. This includes passing through options with the `-E` argument and the `ES_JAVA_OPTS` environment variable for Java options. ### Examples Run a snapshot install with a trial license ``` node scripts/es snapshot --license=trial ``` Run from source with a configured data directory ``` node scripts/es source --Epath.data=/home/me/es_data ``` Run serverless with a specific image tag ``` node scripts/es serverless --tag git-fec36430fba2-x86_64 ``` Run an official Docker release ``` node scripts/es docker --tag 8.8.2 ``` ## API ### run Start a cluster ``` var es = require('@kbn/es'); es.run({ license: 'basic', version: 7.0, }) .catch(function (e) { console.error(e); process.exitCode = 1; }); ``` #### Options ##### options.license Type: `String` License type, one of: trial, basic, gold, platinum ##### options.version Type: `String` Desired elasticsearch version ##### options['source-path'] Type: `String` Cloned location of elasticsearch repository, used when running from source ##### options['base-path'] Type: `String` Location where snapshots are cached ## Snapshot Updates Snapshots are built and tested daily. If tests pass, the snapshot is promoted and will automatically be used when started from the CLI. CI pipelines supporting this can be found at: - https://buildkite.com/elastic/kibana-elasticsearch-snapshot-build - https://buildkite.com/elastic/kibana-elasticsearch-snapshot-verify - https://buildkite.com/elastic/kibana-elasticsearch-snapshot-promote ## Snapshot Pinning Sometimes we need to pin snapshots for a specific version. We'd really like to get this automated, but until that is completed here are the steps to take to build, upload, and switch to pinned snapshots for a branch. To use these steps you'll need to setup the google-cloud-sdk, which can be installed on macOS with `brew cask install google-cloud-sdk`. Login with the CLI and you'll have access to the `gsutil` to do efficient/parallel uploads to GCS from the command line. 1. Clone the elasticsearch repo somewhere 2. Checkout the branch you want to build 3. Build the new artifacts ``` node scripts/es build_snapshots --output=~/Downloads/tmp-artifacts --source-path=/path/to/es/repo ``` 4. Check that the files in `~/Downloads/tmp-artifacts` look reasonable 5. Upload the files to GCS ``` gsutil -m rsync . gs://kibana-ci-tmp-artifacts/ ``` 6. Once the artifacts are uploaded, modify `packages/kbn-es/src/custom_snapshots.js` in a PR to use a URL formatted like: ``` // force use of manually created snapshots until ReindexPutMappings fix if (!process.env.KBN_ES_SNAPSHOT_URL && !process.argv.some(isVersionFlag)) { // return undefined; return 'https://storage.googleapis.com/kibana-ci-tmp-artifacts/{name}-{version}-{os}-x86_64.{ext}'; } ``` For 6.8, the format of the url should look like: ``` 'https://storage.googleapis.com/kibana-ci-tmp-artifacts/{name}-{version}.{ext}'; ```