Apache Superset Kubernetes Operator

Clone this repo:

Branches

  1. 0e5644c chore: fix drift (#44) by Ville Brofeldt · 10 hours ago main
  2. 946eb7b feat(lifecycle): add maintenance page during drain (#43) by Ville Brofeldt · 11 hours ago
  3. 543d1b3 chore(deps): update golang:1.26 docker digest to 2981696 (#40) by Mend Renovate · 21 hours ago
  4. 9c7e5e6 feat(lifecycle): add cron scheduling for clone task (#41) by Ville Brofeldt · 21 hours ago
  5. 1bf8e9b refactor(lifecycle): per-task trigger model with checksum chain propa… (#39) by Ville Brofeldt · 2 days ago

Apache Superset Kubernetes Operator

Warning: This project is under active development and is not yet stable. APIs, CRD schemas, and behavior may change without notice between releases. Do not use in production.

CI codecov Go Report Card License Docs

A Kubernetes operator for deploying and managing Apache Superset on Kubernetes. Read the documentation to get started. Built with the Go-based Operator SDK.

The operator is designed to make running Superset on Kubernetes as painless as possible. It works well out of the box with production-ready defaults, and every default is overridable when you need more control.

Quick Start

Install the operator via Helm:

helm install superset-operator \
  oci://ghcr.io/apache/superset-kubernetes-operator/charts/superset-operator \
  --version <version> \
  --namespace superset-operator-system \
  --create-namespace

Then create a minimal Superset instance:

apiVersion: superset.apache.org/v1alpha1
kind: Superset
metadata:
  name: my-superset
spec:
  image:
    tag: "latest"
  environment: Development
  secretKey: thisIsNotSecure_changeInProduction!
  metastore:
    uri: postgresql+psycopg2://superset:superset@postgres:5432/superset
  webServer: {}

Note: The example above uses environment: Development for simplicity. In production (the default), use secretKeyFrom and metastore.uriFrom to reference Kubernetes Secrets. See the User Guide and the sample manifests for production-ready examples.

Development

make build            # Build operator binary
make test             # Run unit/integration tests
make lint             # Run golangci-lint
make helm-lint        # Lint the Helm chart
make docs-serve       # Serve docs locally (http://localhost:8000)
make manifests        # Regenerate CRDs + RBAC from markers
make generate         # Regenerate DeepCopy methods

After editing type definitions in api/v1alpha1/, run make manifests generate and commit the generated files alongside your changes.

License

Licensed under the Apache License, Version 2.0. See LICENSE for details.