The Keep Helm Chart provides a convenient way to deploy and manage Keep on Kubernetes using Helm, a package manager for Kubernetes applications.
Full documentation can be found at Keep Docs.
The recommended way to deploy Keep is with ingress-nginx that serves as a single ingress for all services (backend, frontend, and websocket server).
- Install ingress-nginx:
helm upgrade --install ingress-nginx ingress-nginx \
--repo https://kubernetes.github.io/ingress-nginx \
--namespace ingress-nginx --create-namespace- 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=trueTo 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"# 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-namespaceKeep 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/keepYour Keep installation will be available at the ingress host you configured. Check your ingress status:
kubectl get ingressYou'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 &helm uninstall keepTo view supported configuration, see this.
Keep's Helm Chart supports installation on Openshift. Configure the route settings under frontend(/backend).route:
frontend:
route:
host: your-desired-hostnameFor local Kubernetes clusters without external IP (such as when using NodePort or LoadBalancer):
- If using ingress-nginx, ensure your ingress controller is properly configured for local development
- If not using ingress-nginx, use the port forwarding method described in the "Without ingress-nginx" section
-
Ingress not working
- Verify ingress-nginx is properly installed
- Check if snippet annotations are enabled
- Verify ingress configuration with
kubectl describe ingress
-
WebSocket connection issues
- Ensure the websocket service is running
- Check ingress configuration for proper WebSocket headers
- Verify connectivity using
curlor browser developer tools
For more detailed configuration options and troubleshooting, refer to the documentation.