Skip to content

WombatOAM Kubernetes Deployment Guide

This guide provides step-by-step instructions for deploying WombatOAM in a Kubernetes cluster to monitor your Erlang/Elixir nodes.

Prerequisites

  • kubectl - Kubernetes command-line tool
  • Helm 3 - Package manager for Kubernetes
  • Kubernetes cluster - minikube, kind, or any other Kubernetes cluster
  • Your Erlang/Elixir nodes already running in Kubernetes

Deployment Steps

Step 1: Start Your Kubernetes Cluster

Verify the cluster is running:

1
kubectl cluster-info

Step 2: Add WombatOAM Helm Repository

1
2
helm repo add wombat https://esl.github.io/helm-chart/charts/wombatChart
helm repo update

Step 3: Configure WombatOAM Values

Create a wombat-values.yaml file with your configuration:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# Kubernetes Discovery Configuration
kubernetesDiscovery:
  # Namespace where your Erlang/Elixir nodes are running
  namespace: "NAMESPACE"

  # Service name for your Erlang/Elixir application
  service: "my-elixir-app"

  # Application name (should match your node name)
  appname: "my_elixir_app"

  # Erlang distribution cookie (must match your nodes' cookie)
  cookie: "secret-cookie"

# Host path where WombatOAM is located inside the pod
hostPath: "/opt/wombat"

# Optional: custom EPMD port (default is 4369)
# epmdPort: 4369

Warning

Update the following values to match your setup:

  • namespace - The namespace where your nodes are running
  • service - The Kubernetes service name for your nodes
  • appname - Your Erlang/Elixir application name
  • cookie - The Erlang distribution cookie (must match your nodes)
  • epmdPort - Only set this if your nodes use a non-default EPMD port (default is 4369)

Step 4: Install WombatOAM

Install WombatOAM using Helm:

1
helm install -f wombat-values.yaml wombat wombat/wombat

If WombatOAM is already installed and you want to upgrade:

1
helm upgrade -f wombat-values.yaml wombat wombat/wombat

Step 5: Verify WombatOAM is Running

Check the pod status:

1
kubectl get pods -n monitoring -l app=wombat

You should see the WombatOAM pod in Running status.

Check the service:

1
kubectl get svc -n monitoring wombat

Step 6: Access WombatOAM GUI

Port-forward the WombatOAM service to your local machine:

1
kubectl port-forward svc/wombat 8080:8080 -n monitoring

Open your browser and navigate to http://localhost:8080.

Login with the default credentials:

  • Username: admin
  • Password: admin

Using a Custom EPMD Port

By default EPMD listens on port 4369. The epmdPort value in wombat-values.yaml sets the ERL_EPMD_PORT environment variable inside the WombatOAM pod, so it must match the port your Erlang/Elixir nodes are using.

To change it, set epmdPort in your wombat-values.yaml:

1
2
3
4
5
6
7
8
kubernetesDiscovery:
  namespace: "NAMESPACE"
  service: "my-elixir-app"
  appname: "my_elixir_app"
  cookie: "secret-cookie"

hostPath: "/opt/wombat"
epmdPort: 12000

Then apply the change:

1
helm upgrade -f wombat-values.yaml wombat wombat/wombat

Verification

Check WombatOAM Logs

1
kubectl logs wombat -n monitoring --tail=50 -f

Uninstalling WombatOAM

To remove WombatOAM from your cluster:

1
helm uninstall wombat