Skip to Content
InstallationKubernetesInstall with Helm

GlassFlow on Kubernetes using Helm

This guide will walk you through the process of installing GlassFlow on Kubernetes using Helm.

  • The official Helm chart is available at github.com/glassflow/charts .
  • The current Helm deployment does not expose GlassFlow to the internet by default. You must use kubectl port-forward to access the UI or API.
  • To expose GlassFlow externally (e.g., via a domain), you must configure ingress in your values.yaml. See the Ingress Setup Guide for complete instructions.

Prerequisites

  • A running Kubernetes cluster
  • Helm  installed
  • kubectl  for interacting with your cluster (e.g., port forwarding the UI)

Installation

Add the GlassFlow Helm repository:

helm repo add glassflow https://glassflow.github.io/charts

Update the Helm repository:

helm repo update

Install the GlassFlow Helm chart

helm install glassflow glassflow/glassflow-etl --create-namespace --namespace glassflow

This installs the GlassFlow Helm chart into the glassflow namespace. The --create-namespace flag ensures the namespace is created if it doesn’t already exist.

💡

By default, the deployment is not publicly accessible. To expose it, you must configure ingress settings in your values.yaml. You can use the default template as a starting point:
glassflow-etl values.yaml 

Verify that the installation is successful

helm list -n glassflow

The output should look like this:

NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION glassflow glassflow 1 2025-09-03 15:07:47.125128 +0200 CEST deployed glassflow-etl-0.2.0 2.0.0

To check the services that were deployed:

kubectl get svc -n glassflow

The output should look like this:

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE glassflow-api ClusterIP 10.96.252.167 <none> 8081/TCP 3m37s glassflow-nats ClusterIP 10.96.157.112 <none> 4222/TCP 3m37s glassflow-nats-headless ClusterIP None <none> 4222/TCP,6222/TCP,8222/TCP 3m37s glassflow-otel-collector ClusterIP 10.96.223.30 <none> 4317/TCP,4318/TCP,9090/TCP 3m37s glassflow-postgresql ClusterIP 10.96.217.168 <none> 5432/TCP 3m37s glassflow-prometheus-nats-exporter ClusterIP 10.96.7.124 <none> 80/TCP 3m37s glassflow-ui ClusterIP 10.96.10.81 <none> 8080/TCP 3m37s

List the pods that were deployed:

kubectl get pods -n glassflow

The output should look like this:

kubectl get pods -n glassflow NAME READY STATUS RESTARTS AGE glassflow-api-7445c785b5-2wgq2 1/1 Running 0 3m22s glassflow-controller-manager-d8bb98457-nfqss 0/1 Init:0/2 0 3m22s glassflow-glassflow-etl-migration-1-7czwz 0/1 Completed 0 3m22s glassflow-nats-0 2/2 Running 0 3m22s glassflow-nats-1 2/2 Running 0 3m22s glassflow-nats-2 2/2 Running 0 3m22s glassflow-nats-box-5b49b6ff96-tk96l 1/1 Running 0 3m22s glassflow-otel-collector-5c94d868d9-g6mt9 1/1 Running 0 3m22s glassflow-postgresql-0 1/1 Running 0 3m22s glassflow-prometheus-nats-exporter-6fdd55688-cfwgw 1/1 Running 0 3m22s glassflow-ui-d9b777bcf-lszfz 2/2 Running 0 3m22s

Port forward the UI service

Port forward the UI service to your local machine to access the web interface:

kubectl port-forward service/glassflow-ui 8080:8080 -n glassflow

The GlassFlow UI service runs on port 8080. The command above forwards it to your local machine on the same port. If you’d prefer a different local port, simply adjust the command accordingly.

Access the API

To access the API, you can port forward the API service to your local machine:

kubectl port-forward service/glassflow-api 8081:8081 -n glassflow

The GlassFlow API service runs on port 8081. The command above forwards it to port 8081 on your machine. You can modify this port if needed.

Go to GlassFlow UI

Open http://localhost:8080  in your browser to access the GlassFlow UI. You can now start creating pipelines. For help with your first pipeline, see the Usage Guide.

Exposing GlassFlow externally

By default, GlassFlow is only accessible within your Kubernetes cluster. To expose it externally, you need to configure ingress.

For complete ingress setup instructions including NGINX ingress controller installation, TLS configuration, and troubleshooting, see the comprehensive Ingress Setup Guide.

Quick Ingress Configuration

For a basic ingress setup using Helm values, create a values.yaml file:

ingress: enabled: true ingressClassName: "nginx" # Requires NGINX ingress controller hosts: - host: "glassflow.example.com" # Replace with your domain paths: - path: "/" pathType: Prefix serviceName: "glassflow-ui" servicePort: 8080 - path: "/api/v1" pathType: Prefix serviceName: "glassflow-api" servicePort: 8081

Apply the configuration:

helm upgrade glassflow glassflow/glassflow-etl -f values.yaml --namespace glassflow

This basic configuration provides HTTP access only. For production deployments with HTTPS, automatic certificate management, and advanced configurations, follow the Ingress Setup Guide.

Getting Help

If you encounter any issues during installation:

Last updated on