Skip to main content

Elasticsearch

This guide covers configuring continuous integration pipelines for projects that have a Elasticsearch dependency.

Basic Example

In the below example we demonstrate a pipeline that launches Elasticsearch as a background step. The elastic server will be available at database:9200, where the hostname matches the background step name.

kind: pipeline
spec:
stages:
- type: ci
spec:
steps:
- name: database
type: background
spec:
container: elasticsearch:7.17.12
envs:
discovery.type: single-node

- name: test
type: run
spec:
container: alpine
script: |-
apk add curl
sleep 45
curl http://database:9200

Common Problems

Initialization

If you are unable to connect to the Elastic container please make sure you are giving the instance adequate time to initialize and begin accepting connections.

kind: pipeline
spec:
stages:
- type: ci
spec:
steps:
- name: test
type: script
spec:
image: alpine
run: |-
apk add curl
sleep 45
curl http://database:9200

Incorrect Hostname

You cannot use 127.0.0.1 or localhost to connect with the database. If you are unable to connect to the database please verify you are using the correct hostname, corresponding with the name of the container.

Bad:

kind: pipeline
spec:
stages:
- type: ci
spec:
steps:
- name: database
type: background
spec:
image: elasticsearch:7.17.12
envs:
discovery.type: single-node

- name: test
type: script
spec:
image: alpine
run: |-
apk add curl
sleep 45
curl http://localhost:9200

Good:

kind: pipeline
spec:
stages:
- type: ci
spec:
steps:
- name: database
type: background
spec:
image: elasticsearch:7.17.12
envs:
discovery.type: single-node

- name: test
type: script
spec:
image: alpine
run: |-
apk add curl
sleep 45
curl http://database:9200