Skip to content

Enterprise Edition Installation Guide

OpenObserve Enterprise Edition is the recommended version for self-hosted deployments. This guide provides step-by-step instructions to install OpenObserve Enterprise Edition.

Installation Methods

  • Helm Chart: Use this method if you have an existing Amazon Elastic Kubernetes Service (EKS) cluster.
  • Terraform: Use this method if you do not have an existing EKS cluster.

Option 1: Helm Chart

This workflow shows how to Install OpenObserve Enterprise Edition in an Existing Amazon Elastic Kubernetes Service (EKS) Cluster using OpenObserve Helm Chart.

Prerequisites

Before you begin, verify that:

Step 1: Configure the values.yaml File

Navigate to the enterprise section in the values.yaml file and set the enterprise.enabled parameter to true as shown below:

enterprise:
  enabled: true

Step 2: Enable Role-Based Access Control (RBAC) and Single Sign-On (SSO)

This configuration is necessary to enable RBAC and SSO features in the OpenObserve Enterprise Edition. In the values.yaml file, enable OpenFGA and Dex by setting their values to true:

openfga:
  enabled: true
dex:
  enabled: true

Step 3: Deploy the Helm Chart

Update the Helm repository:

helm repo update

Verify if the openobserve namespace exists:

kubectl get namespaces

If the output shows the openobserve namespace, run the following command:

helm upgrade --namespace openobserve -f values.yaml o2 openobserve/openobserve

If the output does not show the openobserve namespace, create the namespace first and then run the helm upgrade command:

kubectl create ns openobserve 
helm upgrade --namespace openobserve -f values.yaml o2 openobserve/openobserve

Step 4: Verify Deployment Status

After deployment, verify that all pods are running:

kubectl get pods -n openobserve

Expected Output: All pods should be listed with a status of Running.

For support, reach out in the Slack channel.

Option 2: Terraform

Use this method if you do not have an existing Amazon EKS cluster. This workflow sets up the infrastructure required to deploy OpenObserve Enterprise Edition on an EKS cluster.
Note: The openobserve-eks-iac repository includes Terraform configuration files and other resources that automate the setup. The following setup process handles nearly all tasks automatically, with only one manual step required: Configuring your DNS in Amazon Route 53 using the Network Load Balancer (NLB).

Prerequisites

Verify that the following tools are installed:

Configure Environment Variables

Set up the following environment variables: - ENV: The environment you are targeting (e.g., dev, staging, or prod). - CUSTOMER_NAME: The name of the customer for whom the infrastructure is managed. - AWS_PROFILE: The AWS profile to use for authentication.

Step 1. Configure Variables in terraform.tfvars (init)

Navigate to the terraform.tfvars file and update as required: - root_user_email = "example@openobserve.ai" - root_user_password = "CustomSecurePassword123" - o2_domain = "example.openobserve.ai" - O2_dex_domain = "example-auth.openobserve.ai" - secret_name = "example"

Step 2: Initialize Terraform (init)

Run the following command to download all necessary Terraform modules and providers, and initialize the working directory containing your configuration files:

make init ENV=<environment> CUSTOMER_NAME=<customer> AWS_PROFILE=<aws_profile>
Example:
make init ENV=dev CUSTOMER_NAME=example AWS_PROFILE=my-aws-profile

Step 3: Plan Terraform Changes (plan)

The following command shows the proposed changes Terraform will apply to the infrastructure without making any actual changes.

make plan ENV=<environment> CUSTOMER_NAME=<customer> AWS_PROFILE=<aws_profile>
Example:
make plan ENV=dev CUSTOMER_NAME=example AWS_PROFILE=my-aws-profile

Step 4: Apply Terraform Changes (apply)

Execute the following command to apply the changes:

make apply ENV=<environment> CUSTOMER_NAME=<customer> AWS_PROFILE=<aws_profile>
Example:
make apply ENV=prod CUSTOMER_NAME=example AWS_PROFILE=my-aws-profile

Step 5: Run the Pre-Setup to Install Dependencies (o2_pre_setup)

After applying, run the following command:

make o2_pre_setup ENV=<environment> CUSTOMER_NAME=<customer> AWS_PROFILE=<aws_profile>
Example:
make o2_pre_setup ENV=prod CUSTOMER_NAME=example AWS_PROFILE=my-aws-profile

Step 6: Deploy OpenObserve Enterprise Edition on EKS (o2_deployment)

The following command deploys the OpenObserve Helm Chart using o2_deployment:

make o2_deployment ENV=<environment> CUSTOMER_NAME=<customer> AWS_PROFILE=<aws_profile>
Example:
make o2_deployment ENV=prod CUSTOMER_NAME=example AWS_PROFILE=my-aws-profile
The output.tf file in the configuration verifies whether your workflow ran successfully. After successfully executing these steps, you can access OpenObserve Enterprise Edition with all features enabled.

For support, reach out in the Slack channel.

Note: To use OpenTofu instead of Terraform, you need to modify the provider.tf and then use the Makefile that is placed under the opentofu directory. Ensure that you have OpenTofu installed.