> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/open-source/use-harness-open-source/pipelines-1/samples/elasticsearch.md).

# Elasticsearch

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

## Basic Example <a href="#basic-example" id="basic-example"></a>

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.

```yaml
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 <a href="#common-problems" id="common-problems"></a>

### Initialization <a href="#initialization" id="initialization"></a>

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.

```yaml
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 <a href="#incorrect-hostname" id="incorrect-hostname"></a>

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:

```yaml
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:

```yaml
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
```
