# Elasticsearch on Container

This article provides step-by-step instructions for installing and configuring **Elasticsearch** within a container-based environment using **Helm**. This setup is designed to work alongside the **OvalEdge application**.

## Prerequisites

**Ensure the following before proceeding:**

* The OvalEdge application must already be deployed.
* Write access to the namespace where OvalEdge is deployed.
* Helm must be installed and properly configured.

## Installation Steps

### **Download Deployment Files**

* **ES-Service.yaml S3 link:**   <https://ovaledge.s3.us-west-1.amazonaws.com/Elasticsearch/es-service.yaml>
* **ES-Deployment.yaml S3 link:**  <https://ovaledge.s3.us-west-1.amazonaws.com/Elasticsearch/es-deployment.yaml>

### **Integrate Deployment Files into Helm Chart**

* Place the downloaded `es-deployment.yaml` and `es-service.yaml` files into the **templates** directory of your existing Helm chart used for OvalEdge deployment.<br>

  <figure><img src="https://1813356899-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhTnkoJQml0pok9awFDhx%2Fuploads%2Fxmg6rjKeMOXVXfWSZ3c6%2Fimage.png?alt=media&#x26;token=1776b736-0777-4d17-bd70-1c269a6b7a43" alt=""><figcaption></figcaption></figure>
* Update the `values.yaml` file to include the required **Elasticsearch configuration values** (resource limits, environment variables, volume mounts, etc.).

### **Deploy Elasticsearch**

* Execute the Helm command to deploy Elasticsearch using the updated Helm chart:

  ```bash
  helm upgrade --install ovedge-app ./your-helm-chart-directory --namespace <namespace>
  ```

  👉Replace `<namespace>` with the actual namespace where OvalEdge is deployed.

### **Verify Deployment**

* Verify that Elasticsearch is successfully deployed and accessible from the OvalEdge app pod by running a curl request to the health check endpoint:

  ```bash
  curl http://<dns_or_ip>:9200/health/es/status
  ```

  👉 Replace `<dns_or_ip>` with the actual DNS name or IP address of the deployment environment.

{% hint style="info" %}

* Ensure that all required ports are open and accessible.
* Validate pod status:

  ```bash
  kubectl get pods -n <namespace>
  ```
* For troubleshooting, check logs:

  ```bash
  kubectl logs <es-pod-name> -n <namespace>
  ```

{% endhint %}

***

Copyright © 2025, OvalEdge LLC, Peachtree Corners, GA, USA.
