Note: The API is still
v1alpha1— CRD schemas and behavior may change between releases until it stabilizes.
Run Apache Superset on Kubernetes from a single custom resource. Define one Superset object and the operator reconciles everything that stands behind a working Superset — Deployments, Services, ConfigMaps, lifecycle Jobs, and the supporting resources — keeping migrations, configuration, scaling, and networking in sync as your spec changes.
Read the documentation to get started, or jump straight to the quick start.
Superset CR drives database migrations, secret-key rotation, config rendering, and component rollout.ClusterRole (CRD installation and, unless disabled, secure metrics auth still need cluster-scoped RBAC — see installation).→ See the full feature overview in the docs.
Official support covers the two most recent Kubernetes minor versions with a published kind node image. The newest Kubernetes release gets best-effort coverage via a non-blocking CI lane until kind ships its node image.
Older releases are likely to work but are not tested. The practical minimum is Kubernetes 1.25: the operator‘s CRD validation is implemented entirely with CEL validation rules, which are enabled by default as beta from 1.25 and graduated to GA in 1.29. On clusters older than 1.25 the CRD still installs, but these rules are silently ignored — meaning the operator’s secret-handling and configuration-safety checks are not enforced. Horizontal Pod Autoscaling additionally requires the autoscaling/v2 API (Kubernetes 1.23+).
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: host: postgres port: 5432 database: superset username: superset password: superset webServer: {}
Note: The example above uses
environment: Developmentfor simplicity. In production (the default), usesecretKeyFromandmetastore.passwordFromto reference Kubernetes Secrets. See the User Guide and the sample manifests for production examples.
For the plumbing-curious:
k8s.io client libraries and Gateway API; exact pinned versions live in go.mod.Contributions are welcome. Development setup, the full list of make commands, the testing philosophy, and the code-generation workflow live in the contributing guide. After editing type definitions in api/v1alpha1/, run make codegen and commit the generated files alongside your changes.
Licensed under the Apache License, Version 2.0. See LICENSE for details.