Skip to content

keephq/helm-charts

Repository files navigation

Keep Helm Chart

The Keep Helm Chart provides a convenient way to deploy and manage Keep on Kubernetes using Helm, a package manager for Kubernetes applications.

Documentation

Full documentation can be found at Keep Docs.

Prerequisites

Ingress Controller (Recommended)

The recommended way to deploy Keep is with ingress-nginx that serves as a single ingress for all services (backend, frontend, and websocket server).

  1. Install ingress-nginx:
helm upgrade --install ingress-nginx ingress-nginx \
  --repo https://kubernetes.github.io/ingress-nginx \
  --namespace ingress-nginx --create-namespace
  1. Enable snippet annotations: The ingress controller must have snippet annotations enabled. You can enable it during installation:
helm upgrade --install ingress-nginx ingress-nginx \
  --repo https://kubernetes.github.io/ingress-nginx \
  --namespace ingress-nginx --create-namespace \
  --set controller.config.allow-snippet-annotations=true

To verify if snippet annotations are enabled:

# Check the configmap
kubectl get configmap -n ingress-nginx ingress-nginx-controller -o yaml | grep allow-snippet-annotations

# Or check the controller logs
kubectl logs -n ingress-nginx -l app.kubernetes.io/component=controller | grep "allow-snippet-annotations"

Installation

Option 1: With ingress-nginx (Recommended)

# Add the Helm repository
helm repo add keephq https://keephq.github.io/helm-charts

# Install Keep with ingress enabled (default nginx)
helm install keep keephq/keep -n keep --create-namespace

Option 2: Without ingress-nginx (Not recommended)

Keep can be deployed without ingress-nginx, but this will create three separate ingresses (one for each service):

# Add the Helm repository
helm repo add keephq https://keephq.github.io/helm-charts

# Install Keep without ingress
helm install keep keephq/keep

Post-Installation

With ingress-nginx

Your Keep installation will be available at the ingress host you configured. Check your ingress status:

kubectl get ingress

Without ingress-nginx

You'll need to set up port forwarding to access the services:

# Expose the UI locally
kubectl port-forward svc/keep-frontend 3000:3000 &

# Expose the Backend locally
kubectl port-forward svc/keep-backend 8080:8080 &

# Export websocket server (optional)
kubectl port-forward svc/keep-websocket 6001:6001 &

Uninstallation

helm uninstall keep

Configuration

To view supported configuration, see this.

Platform-Specific Instructions

Openshift

Keep's Helm Chart supports installation on Openshift. Configure the route settings under frontend(/backend).route:

frontend:
  route:
    host: your-desired-hostname

Local Kubernetes

For local Kubernetes clusters without external IP (such as when using NodePort or LoadBalancer):

  1. If using ingress-nginx, ensure your ingress controller is properly configured for local development
  2. If not using ingress-nginx, use the port forwarding method described in the "Without ingress-nginx" section

Troubleshooting

Common Issues

  1. Ingress not working

    • Verify ingress-nginx is properly installed
    • Check if snippet annotations are enabled
    • Verify ingress configuration with kubectl describe ingress
  2. WebSocket connection issues

    • Ensure the websocket service is running
    • Check ingress configuration for proper WebSocket headers
    • Verify connectivity using curl or browser developer tools

For more detailed configuration options and troubleshooting, refer to the documentation.