Skip to content

Apache Superset

Deploy Apache Superset on Kubernetes — a modern, enterprise-ready business intelligence platform for data exploration and visualization with 60+ database connectors.

Key Features

  • Three-component architecture — Gunicorn web, Celery workers, Celery beat scheduler for independent scaling
  • Init Job — automatic database migration and admin user creation
  • PostgreSQL metadata store — bundled subchart or external connection
  • Redis broker — bundled subchart for Celery task queue or external
  • Configurable — superset_config.py delivered via ConfigMap
  • Auto-generated secrets — admin password, Flask SECRET_KEY, database and Redis passwords
  • Health probes — startup, liveness, and readiness on /health
  • Ingress support — configurable class (traefik, nginx, etc.)

Installation

HTTPS repository:

helm repo add helmforge https://repo.helmforge.dev
helm repo update
helm install superset helmforge/superset -f values.yaml

OCI registry:

helm install superset oci://ghcr.io/helmforgedev/helm/superset -f values.yaml

Basic Example

superset:
  adminUsername: admin
  adminPassword: 'my-secure-password'
  secretKey: 'my-flask-secret-key'

ingress:
  enabled: true
  ingressClassName: traefik
  hosts:
    - host: superset.example.com
      paths:
        - path: /
          pathType: Prefix

Scaled Workers

web:
  replicaCount: 2
  workers: 4

worker:
  replicaCount: 3
  concurrency: 4

beat:
  enabled: true

External Database and Redis

database:
  mode: external
  external:
    type: postgresql
    host: postgres.example.internal
    port: 5432
    name: superset
    username: superset
    existingSecret: superset-db

redisConfig:
  mode: external
  external:
    host: redis.example.internal
    port: 6379

postgresql:
  enabled: false

redis:
  enabled: false

Key Values

KeyDefaultDescription
image.repositoryapache/supersetContainer image
superset.adminUsernameadminAdmin username
superset.adminPassword""Auto-generated if empty
superset.secretKey""Flask SECRET_KEY (auto-generated)
superset.loadExamplesfalseLoad example dashboards
web.replicaCount1Web server replicas
web.workers2Gunicorn workers
worker.replicaCount1Celery worker replicas
worker.concurrency2Celery concurrency
beat.enabledtrueEnable Celery beat scheduler
database.modesubchartDatabase mode: subchart or external
redisConfig.modesubchartRedis mode: subchart or external
ingress.enabledfalseEnable ingress

Operational Notes

  • the init job runs database migrations and creates the admin user on every install/upgrade
  • web, worker, and beat components scale independently
  • configure superset.extraConfig for custom superset_config.py settings
  • use superset.loadExamples: true for demonstration environments

More Information

See the source code and full values reference on GitHub.