Apache Superset Kubernetes Operator

Clone this repo:

Branches

  1. 5925dd7 feat(lifecycle): add secret key rotation task (#51) by Ville Brofeldt · 6 hours ago main
  2. 688881b docs: expand Helm migration guide (#50) by Ville Brofeldt · 13 hours ago
  3. 4b997ec chore: address probes, docs, RBAC, samples (#49) by Ville Brofeldt · 15 hours ago
  4. 22d8688 fix(lifecycle): validate cron schedules and unstick maintenance on webServer removal (#48) by Ville Brofeldt · 15 hours ago
  5. 727fc77 fix(lifecycle): resolve maintenance port mismatch and harden return path (#47) by Ville Brofeldt · 28 hours 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.