This is an automated email from the ASF dual-hosted git repository.
villebro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new 9a02c4b611b chore: deprecate helm chart (#44097)
9a02c4b611b is described below
commit 9a02c4b611b70b257c332a701b938edeb380b555
Author: Ville Brofeldt <[email protected]>
AuthorDate: Wed Sep 9 14:39:56 2026 -0700
chore: deprecate helm chart (#44097)
Co-authored-by: Claude Code <[email protected]>
Co-authored-by: Evan Rusackas <[email protected]>
---
.github/workflows/superset-helm-lint-test.yml | 2 +-
docs/admin_docs/configuration/alerts-reports.mdx | 4 +-
docs/admin_docs/installation/docker-compose.mdx | 2 +-
.../installation/installation-methods.mdx | 4 +-
docs/admin_docs/installation/kubernetes.mdx | 508 +--------------------
docs/docs/faq.mdx | 2 +-
docs/docs/index.mdx | 2 +-
docs/static/llms.txt | 2 +-
helm/superset/Chart.yaml | 7 +-
helm/superset/README.md | 11 +-
helm/superset/README.md.gotmpl | 7 +
11 files changed, 50 insertions(+), 501 deletions(-)
diff --git a/.github/workflows/superset-helm-lint-test.yml
b/.github/workflows/superset-helm-lint-test.yml
index 6d714377583..b58dc1a5673 100644
--- a/.github/workflows/superset-helm-lint-test.yml
+++ b/.github/workflows/superset-helm-lint-test.yml
@@ -49,7 +49,7 @@ jobs:
# allowlist (only v8.1.0+ are, at apache/infrastructure-actions'
# actions.yml). Needs an INFRA request before this can de-vendor too.
- name: Set up chart-testing
- uses: $/.github/actions/chart-testing-action
+ uses: ./.github/actions/chart-testing-action
- name: Run chart-testing (list-changed)
id: list-changed
diff --git a/docs/admin_docs/configuration/alerts-reports.mdx
b/docs/admin_docs/configuration/alerts-reports.mdx
index 32cad433ca5..be847061a05 100644
--- a/docs/admin_docs/configuration/alerts-reports.mdx
+++ b/docs/admin_docs/configuration/alerts-reports.mdx
@@ -259,8 +259,8 @@ Superset automatically retries webhook deliveries on `429
Too Many Requests` and
### Kubernetes-specific
-- You must have a `celery beat` pod running. If you're using the chart
included in the GitHub repository under
[helm/superset](https://github.com/apache/superset/tree/master/helm/superset),
you need to put `supersetCeleryBeat.enabled = true` in your values override.
-- You can see the dedicated docs about [Kubernetes
installation](/admin-docs/installation/kubernetes) for more details.
+- You must have a `celery beat` pod running. For Kubernetes deployments, use
the [Apache Superset Kubernetes Operator
documentation](https://apache.github.io/superset-kubernetes-operator/) for
deployment configuration.
+- Existing legacy Helm chart deployments configure this with
`supersetCeleryBeat.enabled = true` in the values override.
### Docker Compose specific
diff --git a/docs/admin_docs/installation/docker-compose.mdx
b/docs/admin_docs/installation/docker-compose.mdx
index d7c987755ff..c23ac71b08b 100644
--- a/docs/admin_docs/installation/docker-compose.mdx
+++ b/docs/admin_docs/installation/docker-compose.mdx
@@ -18,7 +18,7 @@ Since `docker compose` is primarily designed to run a set of
containers on **a s
and can't support requirements for **high availability**, we do not support
nor recommend
using our `docker compose` constructs to support production-type use-cases.
For single host
environments, we recommend using
[minikube](https://minikube.sigs.k8s.io/docs/start/) along
-with our [installing on
k8s](https://superset.apache.org/admin-docs/installation/running-on-kubernetes)
+with our [Kubernetes installation](/admin-docs/installation/kubernetes)
documentation.
:::
diff --git a/docs/admin_docs/installation/installation-methods.mdx
b/docs/admin_docs/installation/installation-methods.mdx
index 828ed2d56ae..0280bbe100d 100644
--- a/docs/admin_docs/installation/installation-methods.mdx
+++ b/docs/admin_docs/installation/installation-methods.mdx
@@ -33,13 +33,13 @@ Ideally you will build your own image of Superset that
extends `lean`, adding wh
**Summary:** This is the best-practice way to deploy a production instance of
Superset, but has the steepest skill requirement - someone who knows Kubernetes.
-You will deploy Superset into a K8s cluster. The most common method is using
the community-maintained Helm chart, though work is now underway to implement
[SIP-149 - a Kubernetes Operator for
Superset](https://github.com/apache/superset/issues/31408).
+You will deploy Superset into a K8s cluster. The recommended method is the
official [Apache Superset Kubernetes
Operator](https://apache.github.io/superset-kubernetes-operator/). The in-tree
Helm chart is deprecated and is not recommended for new deployments.
A K8s deployment can scale up and down based on usage and deploy rolling
updates with zero downtime - features that big deployments appreciate.
**Responsibilities**
-You will need to build your own Docker image, and back up your metadata DB,
both as described in Docker Compose above. You'll also need to customize your
Helm chart values and deploy and maintain your Kubernetes cluster.
+You will need to build your own Docker image, and back up your metadata DB,
both as described in Docker Compose above. You'll also need to configure the
operator's Superset resources and deploy and maintain your Kubernetes cluster.
## [PyPI (Python)](/admin-docs/installation/pypi)
diff --git a/docs/admin_docs/installation/kubernetes.mdx
b/docs/admin_docs/installation/kubernetes.mdx
index bed1732af48..679b5377fd1 100644
--- a/docs/admin_docs/installation/kubernetes.mdx
+++ b/docs/admin_docs/installation/kubernetes.mdx
@@ -13,499 +13,35 @@ import useBaseUrl from '@docusaurus/useBaseUrl';
<br />
<br />
-Running Superset on Kubernetes is supported with the provided
[Helm](https://helm.sh/) chart
-found in the official [Superset helm
repository](https://apache.github.io/superset/index.yaml).
-
-## Prerequisites
-
-- A Kubernetes cluster
-- Helm installed
-
-:::note
-For simpler, single host environments, we recommend using
-[minikube](https://minikube.sigs.k8s.io/docs/start/) which is easy to setup on
many platforms
-and works fantastically well with the Helm chart referenced here.
-:::
-
-## Running
-
-1. Add the Superset helm repository
-
-```sh
-helm repo add superset https://apache.github.io/superset
-"superset" has been added to your repositories
-```
-
-2. View charts in repo
-
-```sh
-helm search repo superset
-NAME CHART VERSION APP VERSION DESCRIPTION
-superset/superset 0.1.1 1.0 Apache Superset is a
modern, enterprise-ready b...
-```
-
-3. Configure your setting overrides
-
-Just like any typical Helm chart, you'll need to craft a `values.yaml` file
that would define/override any of the values exposed into the default
[values.yaml](https://github.com/apache/superset/tree/master/helm/superset/values.yaml),
or from any of the dependent charts it depends on:
-
-- [bitnami/redis](https://artifacthub.io/packages/helm/bitnami/redis)
-- [bitnami/postgresql](https://artifacthub.io/packages/helm/bitnami/postgresql)
-
-More info down below on some important overrides you might need.
-
-4. Install and run
-
-```sh
-helm upgrade --install --values my-values.yaml superset superset/superset
-```
-
-You should see various pods popping up, such as:
-
-```sh
-kubectl get pods
-NAME READY STATUS RESTARTS AGE
-superset-celerybeat-7cdcc9575f-k6xmc 1/1 Running 0 119s
-superset-f5c9c667-dw9lp 1/1 Running 0 4m7s
-superset-f5c9c667-fk8bk 1/1 Running 0 4m11s
-superset-init-db-zlm9z 0/1 Completed 0 111s
-superset-postgresql-0 1/1 Running 0 6d20h
-superset-redis-master-0 1/1 Running 0 6d20h
-superset-worker-75b48bbcc-jmmjr 1/1 Running 0 4m8s
-superset-worker-75b48bbcc-qrq49 1/1 Running 0 4m12s
-```
-
-The exact list will depend on some of your specific configuration overrides
but you should generally expect:
-
-- N `superset-xxxx-yyyy` and `superset-worker-xxxx-yyyy` pods (depending on
your `supersetNode.replicaCount` and `supersetWorker.replicaCount` values)
-- 1 `superset-postgresql-0` depending on your postgres settings
-- 1 `superset-redis-master-0` depending on your redis settings
-- 1 `superset-celerybeat-xxxx-yyyy` pod if you have
`supersetCeleryBeat.enabled = true` in your values overrides
-
-1. Access it
-
-The chart will publish appropriate services to expose the Superset UI
internally within your k8s cluster. To access it externally you will have to
either:
-
-- Configure the Service as a `LoadBalancer` or `NodePort`
-- Set up an `Ingress` for it - the chart includes a definition, but will need
to be tuned to your needs (hostname, tls, annotations etc...)
-- Set up a Gateway API `HTTPRoute` for it - see [Exposing Superset via Gateway
API (HTTPRoute)](#exposing-superset-via-gateway-api-httproute) below
-- Run `kubectl port-forward superset-xxxx-yyyy :8088` to directly tunnel one
pod's port into your localhost
-
-Depending how you configured external access, the URL will vary. Once you've
identified the appropriate URL you can log in with:
-
-- user: `admin`
-- password: `admin`
-
-## Important settings
-
-### Security settings
-
-Default security settings and passwords are included but you **MUST** update
them to run `prod` instances, in particular:
-
-```yaml
-postgresql:
- postgresqlPassword: superset
-```
-
-Make sure, you set a unique strong complex alphanumeric string for your
SECRET_KEY and use a tool to help you generate
-a sufficiently random sequence.
-
-- To generate a good key you can run, `openssl rand -base64 42`
-
-```yaml
-configOverrides:
- secret: |
- SECRET_KEY = 'YOUR_OWN_RANDOM_GENERATED_SECRET_KEY'
-```
-
-If you want to change the previous secret key then you should rotate the keys.
-Default secret key for kubernetes deployment is `thisISaSECRET_1234`
-
-```yaml
-configOverrides:
- my_override: |
- PREVIOUS_SECRET_KEY = 'YOUR_PREVIOUS_SECRET_KEY'
- SECRET_KEY = 'YOUR_OWN_RANDOM_GENERATED_SECRET_KEY'
-init:
- command:
- - /bin/sh
- - -c
- - |
- . {{ .Values.configMountPath }}/superset_bootstrap.sh
- superset re-encrypt-secrets
- . {{ .Values.configMountPath }}/superset_init.sh
-```
-
-:::note
-Superset uses [Scarf Gateway](https://about.scarf.sh/) to collect telemetry
data. Knowing the installation counts for different Superset versions informs
the project's decisions about patching and long-term support. Scarf purges
personally identifiable information (PII) and provides only aggregated
statistics.
-
-There are two independent telemetry channels:
-
-- **Image pulls** (Scarf Gateway): to opt out, edit the `repository:` line in
your `helm/superset/values.yaml` file, replacing
`apachesuperset.docker.scarf.sh/apache/superset` with `apache/superset` to pull
the image directly from Docker Hub.
-- **The analytics pixel** rendered in the UI: to opt out, set the
`SCARF_ANALYTICS` environment variable to `false` on the Superset containers
via `extraEnv` in your `values.yaml`:
-
- ```yaml
- extraEnv:
- SCARF_ANALYTICS: 'false'
- ```
-
- This is read at runtime, so it takes effect on the pre-built images without
rebuilding the frontend.
- :::
-
-### Dependencies
-
-Install additional packages and do any other bootstrap configuration in the
bootstrap script.
-For production clusters it's recommended to build own image with this step
done in CI.
-
-:::note
-
-Superset requires a Python DB-API database driver and a SQLAlchemy
-dialect to be installed for each datastore you want to connect to.
-
-See [Install Database
Drivers](/user-docs/databases#installing-database-drivers) for more information.
-It is recommended that you refer to versions listed in
-[pyproject.toml](https://github.com/apache/superset/blob/master/pyproject.toml)
-instead of hard-coding them in your bootstrap script, as seen below.
-
-:::
-
-The following example installs the drivers for BigQuery and Elasticsearch,
allowing you to connect to these data sources within your Superset setup:
-
-```yaml
-bootstrapScript: |
- #!/bin/bash
- uv pip install .[postgres] \
- .[bigquery] \
- .[elasticsearch] &&\
- if [ ! -f ~/bootstrap ]; then echo "Running Superset with uid {{
.Values.runAsUser }}" > ~/bootstrap; fi
-```
-
-### superset_config.py
-
-The default `superset_config.py` is fairly minimal and you will very likely
need to extend it. This is done by specifying one or more key/value entries in
`configOverrides`, e.g.:
-
-```yaml
-configOverrides:
- my_override: |
- # This will make sure the redirect_uri is properly computed, even with SSL
offloading
- ENABLE_PROXY_FIX = True
- FEATURE_FLAGS = {
- "DYNAMIC_PLUGINS": True
- }
-```
-
-Those will be evaluated as Helm templates and therefore will be able to
reference other `values.yaml` variables e.g. `{{ .Values.ingress.hosts[0] }}`
will resolve to your ingress external domain.
-
-The entire `superset_config.py` will be installed as a secret, so it is safe
to pass sensitive parameters directly... however it might be more readable to
use secret env variables for that.
-
-Full python files can be provided by running `helm upgrade --install --values
my-values.yaml --set-file configOverrides.oauth=set_oauth.py`
-
-### Environment Variables
-
-Those can be passed as key/values either with `extraEnv` or `extraSecretEnv`
if they're sensitive. They can then be referenced from `superset_config.py`
using e.g. `os.environ.get("VAR")`.
-
-```yaml
-extraEnv:
- SMTP_HOST: smtp.gmail.com
- SMTP_USER: [email protected]
- SMTP_PORT: '587'
- SMTP_MAIL_FROM: [email protected]
-
-extraSecretEnv:
- SMTP_PASSWORD: xxxx
-
-configOverrides:
- smtp: |
- import ast
- SMTP_HOST = os.getenv("SMTP_HOST","localhost")
- SMTP_STARTTLS = ast.literal_eval(os.getenv("SMTP_STARTTLS", "True"))
- SMTP_SSL = ast.literal_eval(os.getenv("SMTP_SSL", "False"))
- SMTP_USER = os.getenv("SMTP_USER","superset")
- SMTP_PORT = os.getenv("SMTP_PORT",25)
- SMTP_PASSWORD = os.getenv("SMTP_PASSWORD","superset")
-```
-
-### System packages
-
-If new system packages are required, they can be installed before application
startup by overriding the container's `command`, e.g.:
-
-```yaml
-supersetWorker:
- command:
- - /bin/sh
- - -c
- - |
- apt update
- apt install -y somepackage
- apt autoremove -yqq --purge
- apt clean
-
- # Run celery worker
- . {{ .Values.configMountPath }}/superset_bootstrap.sh; celery
--app=superset.tasks.celery_app:app worker
-```
-
-### Data sources
-
-Data source definitions can be automatically declared by providing key/value
yaml definitions in `extraConfigs`:
-
-```yaml
-extraConfigs:
- import_datasources.yaml: |
- databases:
- - allow_file_upload: true
- allow_ctas: true
- allow_cvas: true
- database_name: example-db
- extra: "{\r\n \"metadata_params\": {},\r\n \"engine_params\":
{},\r\n \"\
- metadata_cache_timeout\": {},\r\n
\"schemas_allowed_for_file_upload\": []\r\n\
- }"
- sqlalchemy_uri: example://example-db.local
- tables: []
-```
-
-Those will also be mounted as secrets and can include sensitive parameters.
-
-## Configuration Examples
-
-### Setting up OAuth
-
-:::note
-
-OAuth setup requires that the [authlib](https://authlib.org/) Python library
is installed. This can
-be done using `pip` by updating the `bootstrapScript`. See the
[Dependencies](#dependencies) section
-for more information.
+Running Superset on Kubernetes is supported through the official
+[Apache Superset Kubernetes
Operator](https://apache.github.io/superset-kubernetes-operator/).
+:::warning
+The Superset Helm chart under
+[`helm/superset`](https://github.com/apache/superset/tree/master/helm/superset)
+is deprecated and is not recommended for new Kubernetes deployments.
:::
-```yaml
-extraEnv:
- AUTH_DOMAIN: example.com
-
-extraSecretEnv:
- GOOGLE_KEY:
xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com
- GOOGLE_SECRET: xxxxxxxxxxxxxxxxxxxxxxxx
-
-configOverrides:
- enable_oauth: |
- # This will make sure the redirect_uri is properly computed, even with SSL
offloading
- ENABLE_PROXY_FIX = True
-
- from flask_appbuilder.security.manager import AUTH_OAUTH
- AUTH_TYPE = AUTH_OAUTH
- OAUTH_PROVIDERS = [
- {
- "name": "google",
- "icon": "fa-google",
- "token_key": "access_token",
- "remote_app": {
- "client_id": os.getenv("GOOGLE_KEY"),
- "client_secret": os.getenv("GOOGLE_SECRET"),
- "api_base_url": "https://www.googleapis.com/oauth2/v2/",
- "client_kwargs": {"scope": "email profile"},
- "request_token_url": None,
- "access_token_url":
"https://accounts.google.com/o/oauth2/token",
- "authorize_url": "https://accounts.google.com/o/oauth2/auth",
- "authorize_params": {"hd": os.getenv("AUTH_DOMAIN", "")}
- },
- }
- ]
-
- # Map Authlib roles to superset roles
- AUTH_ROLE_ADMIN = 'Admin'
- AUTH_ROLE_PUBLIC = 'Public'
-
- # Will allow user self registration, allowing to create Flask users from
Authorized User
- AUTH_USER_REGISTRATION = True
-
- # The default user self registration role
- AUTH_USER_REGISTRATION_ROLE = "Admin"
-```
-
-### Exposing Superset via Gateway API (HTTPRoute)
-
-As an alternative to `Ingress`, the chart can create a [Gateway
API](https://gateway-api.sigs.k8s.io/)
-`HTTPRoute` that attaches to a Gateway already running in your cluster. This
requires the Gateway
-API CRDs serving the configured `httproute.apiVersion`
(`gateway.networking.k8s.io/v1` by default)
-to be installed, along with a Gateway resource for the route to attach to. If
the Gateway lives in
-a different namespace than the `HTTPRoute` (as in the
-example below), its listener's `allowedRoutes` must explicitly permit routes
from this release's
-namespace, or the `HTTPRoute` will install successfully but never attach.
-
-```yaml
-httproute:
- enabled: true
- parentRefs:
- - name: my-gateway
- namespace: gateway-system
- hostnames:
- - superset.example.com
- rules:
- - matches:
- - path:
- type: PathPrefix
- value: /
-```
-
-- `httproute.parentRefs` lists the Gateway(s) the route attaches to.
-- `httproute.hostnames` matches against the HTTP `Host` header; it's
templated, so values like
- `{{ .Release.Name }}` can be used.
-- `httproute.rules` are routing rules backed by the Superset service; each
rule accepts standard
- `matches`, `filters`, and `timeouts` fields, and an optional `weight`
(defaults to `1`) applied to
- its single backend reference. Since each rule maps to one backend, `weight`
has no traffic-splitting
- effect here; it only matters if you fork the template to add multiple
`backendRefs` to a rule.
- `timeouts` only joined the Gateway API Standard channel in v1.2, so it
requires both v1.2+ CRDs
- and a supporting controller; drop it if either predates that.
-- If `supersetWebsockets.enabled` is set, an extra rule routing
`supersetWebsockets.ingress.path`
- (default `/ws`) to the `-ws` service is appended automatically, mirroring
the `Ingress` behavior.
- WebSocket upgrade support is controller-dependent under Gateway API; check
your Gateway
- implementation's docs in case it needs an explicit protocol opt-in for
global async queries to
- keep working behind a Gateway.
-- If `supersetMcp.enabled` and `supersetMcp.httproute.enabled` are both set,
an extra rule routing
- `supersetMcp.httproute.path` to the `-mcp` service is appended as well.
Don't expose this route
- without first enabling MCP authentication — see the
- [MCP Server Deployment &
Authentication](/admin-docs/configuration/mcp-server#authentication) doc;
- by default the MCP server runs in dev mode with auth disabled.
-- Set `httproute.apiVersion` to `gateway.networking.k8s.io/v1beta1` if your
cluster's Gateway API
- installation hasn't promoted `HTTPRoute` to `v1` yet.
-
-### Enable Alerts and Reports
-
-For this, as per the [Alerts and Reports
doc](/admin-docs/configuration/alerts-reports), you will need to:
-
-#### Install a supported webdriver in the Celery worker
-
-This is done either by using a custom image that has the webdriver
pre-installed, or installing at startup time by overriding the `command`.
Here's a working example for `chromedriver`:
-
-```yaml
-supersetWorker:
- command:
- - /bin/sh
- - -c
- - |
- # Install chrome webdriver
- # See
https://github.com/apache/superset/blob/4fa3b6c7185629b87c27fc2c0e5435d458f7b73d/docs/src/pages/admin-docs/installation/email_reports.mdx
- apt-get update
- apt-get install -y wget
- wget
https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
- apt-get install -y --no-install-recommends
./google-chrome-stable_current_amd64.deb
- wget
https://chromedriver.storage.googleapis.com/88.0.4324.96/chromedriver_linux64.zip
- apt-get install -y zip
- unzip chromedriver_linux64.zip
- chmod +x chromedriver
- mv chromedriver /usr/bin
- apt-get autoremove -yqq --purge
- apt-get clean
- rm -f google-chrome-stable_current_amd64.deb chromedriver_linux64.zip
-
- # Run
- . {{ .Values.configMountPath }}/superset_bootstrap.sh; celery
--app=superset.tasks.celery_app:app worker
-```
-
-#### Run the Celery beat
-
-This pod will trigger the scheduled tasks configured in the alerts and reports
UI section:
-
-```yaml
-supersetCeleryBeat:
- enabled: true
-```
-
-#### Configure the appropriate Celery jobs and SMTP/Slack settings
-
-```yaml
-extraEnv:
- SMTP_HOST: smtp.gmail.com
- SMTP_USER: [email protected]
- SMTP_PORT: '587'
- SMTP_MAIL_FROM: [email protected]
-
-extraSecretEnv:
- SLACK_API_TOKEN: xoxb-xxxx-yyyy
- SMTP_PASSWORD: xxxx-yyyy
-
-configOverrides:
- feature_flags: |
- import ast
-
- FEATURE_FLAGS = {
- "ALERT_REPORTS": True
- }
-
- SMTP_HOST = os.getenv("SMTP_HOST","localhost")
- SMTP_STARTTLS = ast.literal_eval(os.getenv("SMTP_STARTTLS", "True"))
- SMTP_SSL = ast.literal_eval(os.getenv("SMTP_SSL", "False"))
- SMTP_USER = os.getenv("SMTP_USER","superset")
- SMTP_PORT = os.getenv("SMTP_PORT",25)
- SMTP_PASSWORD = os.getenv("SMTP_PASSWORD","superset")
- SMTP_MAIL_FROM = os.getenv("SMTP_MAIL_FROM","[email protected]")
-
- SLACK_API_TOKEN = os.getenv("SLACK_API_TOKEN",None)
- celery_conf: |
- from celery.schedules import crontab
+Use the operator documentation as the source of truth for Kubernetes
installation and operations.
+It covers installing the operator, defining Superset deployments with
Kubernetes custom resources,
+configuring dependencies, upgrades, and operational workflows.
- class CeleryConfig:
- broker_url = f"redis://{env('REDIS_HOST')}:{env('REDIS_PORT')}/0"
- imports = (
- "superset.sql_lab",
- "superset.tasks.cache",
- "superset.tasks.scheduler",
- )
- result_backend = f"redis://{env('REDIS_HOST')}:{env('REDIS_PORT')}/0"
- task_annotations = {
- "sql_lab.get_sql_results": {
- "rate_limit": "100/s",
- },
- }
- beat_schedule = {
- "reports.scheduler": {
- "task": "reports.scheduler",
- "schedule": crontab(minute="*", hour="*"),
- },
- "reports.prune_log": {
- "task": "reports.prune_log",
- 'schedule': crontab(minute=0, hour=0),
- },
- 'cache-warmup-hourly': {
- "task": "cache-warmup",
- "schedule": crontab(minute="*/30", hour="*"),
- "kwargs": {
- "strategy_name": "top_n_dashboards",
- "top_n": 10,
- "since": "7 days ago",
- },
- }
- }
+## New Deployments
- CELERY_CONFIG = CeleryConfig
- reports: |
- EMAIL_PAGE_RENDER_WAIT = 60
- WEBDRIVER_BASEURL = "http://{{ template "superset.fullname" . }}:{{
.Values.service.port }}/"
- WEBDRIVER_BASEURL_USER_FRIENDLY = "https://www.example.com/"
- WEBDRIVER_TYPE= "chrome"
- WEBDRIVER_OPTION_ARGS = [
- "--force-device-scale-factor=2.0",
- "--high-dpi-support=2.0",
- "--headless",
- "--disable-gpu",
- "--disable-dev-shm-usage",
- # This is required because our process runs as root (in order to
install pip packages)
- "--no-sandbox",
- "--disable-setuid-sandbox",
- "--disable-extensions",
- ]
-```
+Start with the
+[Apache Superset Kubernetes Operator
documentation](https://apache.github.io/superset-kubernetes-operator/).
-### Load the Examples data and dashboards
+## Existing Helm Deployments
-If you are trying Superset out and want some data and dashboards to explore,
you can load some examples by creating a `my_values.yaml` and deploying it as
described above in the **Configure your setting overrides** step of the
**Running** section.
-To load the examples, add the following to the `my_values.yaml` file:
+Existing Helm chart users should plan a migration to the operator. Follow the
+[Helm chart migration
guide](https://apache.github.io/superset-kubernetes-operator/user-guide/migration/)
+for the recommended migration path.
-```yaml
-init:
- loadExamples: true
-```
+Until migration is complete, legacy chart reference material remains available
in the deprecated
+[Helm chart
README](https://github.com/apache/superset/tree/master/helm/superset).
-:::resources
+## Resources
-- [Tutorial: Mastering Data Visualization — Installing Superset on Kubernetes
with Helm
Chart](https://mahira-technology.medium.com/mastering-data-visualization-installing-superset-on-kubernetes-cluster-using-helm-chart-e4ec99199e1e)
-- [Tutorial: Installing Apache Superset in
Kubernetes](https://aws.plainenglish.io/installing-apache-superset-in-kubernetes-1aec192ac495)
- :::
+- [Apache Superset Kubernetes Operator
documentation](https://apache.github.io/superset-kubernetes-operator/)
+- [Apache Superset Kubernetes Operator
repository](https://github.com/apache/superset-kubernetes-operator)
+- [Helm chart migration
guide](https://apache.github.io/superset-kubernetes-operator/user-guide/migration/)
diff --git a/docs/docs/faq.mdx b/docs/docs/faq.mdx
index c035ea21501..feacb0000ce 100644
--- a/docs/docs/faq.mdx
+++ b/docs/docs/faq.mdx
@@ -414,7 +414,7 @@ This can be used, for example, to convert UTC time to local
time.
Superset uses [Scarf](https://about.scarf.sh/) by default to collect basic
telemetry data upon installing and/or running Superset. This data helps the
maintainers of Superset better understand which versions of Superset are being
used, in order to prioritize patch/minor releases and security fixes.
We use the [Scarf Gateway](https://docs.scarf.sh/gateway/) to sit in front of
container registries, the [scarf-js](https://about.scarf.sh/package-sdks)
package to track `npm` installations, and a Scarf pixel to gather anonymous
analytics on Superset page views.
Scarf purges PII and provides aggregated statistics. Superset users can easily
opt out of analytics in various ways documented
[here](https://docs.scarf.sh/gateway/#do-not-track) and
[here](https://docs.scarf.sh/package-analytics/#as-a-user-of-a-package-using-scarf-js-how-can-i-opt-out-of-analytics).
-You can also opt out of the analytics pixel by setting the `SCARF_ANALYTICS`
environment variable to `false`. This is read at runtime, so setting it on the
Superset container (for example via `extraEnv` in the Helm chart, or
`docker/.env` for Docker Compose) disables the pixel on the pre-built images
without rebuilding the frontend. Note that this only disables the page-view
pixel; the Scarf Gateway (container registry) and `scarf-js` (`npm`) channels
are opted out separately, as describ [...]
+You can also opt out of the analytics pixel by setting the `SCARF_ANALYTICS`
environment variable to `false`. This is read at runtime, so setting it on the
Superset container (for example via your Kubernetes deployment configuration,
or `docker/.env` for Docker Compose) disables the pixel on the pre-built images
without rebuilding the frontend. Note that this only disables the page-view
pixel; the Scarf Gateway (container registry) and `scarf-js` (`npm`) channels
are opted out separately [...]
Additional opt-out instructions are available on the [Docker
Compose](/admin-docs/installation/docker-compose) and
[Kubernetes](/admin-docs/installation/kubernetes) installation pages.
## Does Superset have an archive panel or trash bin from which a user can
recover deleted assets?
diff --git a/docs/docs/index.mdx b/docs/docs/index.mdx
index f998162c97d..50ca42b58fb 100644
--- a/docs/docs/index.mdx
+++ b/docs/docs/index.mdx
@@ -260,7 +260,7 @@ Understanding the Superset Points of View
- Deploying Superset
- [Official Docker image](https://hub.docker.com/r/apache/superset)
- - [Helm Chart](https://github.com/apache/superset/tree/master/helm/superset)
+ - [Kubernetes
Operator](https://apache.github.io/superset-kubernetes-operator/)
- Recordings of Past [Superset Community Events](https://preset.io/events)
diff --git a/docs/static/llms.txt b/docs/static/llms.txt
index d4bdfc9406a..ce9ee5696e7 100644
--- a/docs/static/llms.txt
+++ b/docs/static/llms.txt
@@ -14,7 +14,7 @@ Superset is designed for data exploration and visualization
at scale. It feature
- [Architecture](https://superset.apache.org/docs/installation/architecture):
Production deployment architecture and components
- [Docker
Compose](https://superset.apache.org/docs/installation/docker-compose): Install
Superset using Docker Compose
- [Docker
Builds](https://superset.apache.org/docs/installation/docker-builds): Building
and customizing Docker images
-- [Kubernetes](https://superset.apache.org/docs/installation/kubernetes):
Deploy Superset on Kubernetes with Helm
+- [Kubernetes](https://superset.apache.org/docs/installation/kubernetes):
Deploy Superset on Kubernetes with the official Kubernetes Operator
- [PyPI](https://superset.apache.org/docs/installation/pypi): Install from
PyPI using pip
- [Upgrading
Superset](https://superset.apache.org/docs/installation/upgrading-superset):
Upgrade between Superset versions
diff --git a/helm/superset/Chart.yaml b/helm/superset/Chart.yaml
index 26bca833f31..08952493b76 100644
--- a/helm/superset/Chart.yaml
+++ b/helm/superset/Chart.yaml
@@ -15,6 +15,7 @@
# limitations under the License.
#
apiVersion: v2
+deprecated: true
appVersion: "6.1.0"
description: Apache Superset is a modern, enterprise-ready business
intelligence web application
name: superset
@@ -25,11 +26,7 @@ keywords:
- data science
sources:
- https://github.com/apache/superset
-maintainers:
- - name: craig-rueda
- email: [email protected]
- url: https://github.com/craig-rueda
-version: 0.22.7 # See
[README](https://github.com/apache/superset/blob/master/helm/superset/README.md#versioning)
for version details.
+version: 0.22.8 # See
[README](https://github.com/apache/superset/blob/master/helm/superset/README.md#versioning)
for version details.
dependencies:
- name: postgresql
version: 16.7.27
diff --git a/helm/superset/README.md b/helm/superset/README.md
index 2329274c252..fcf8b571ffd 100644
--- a/helm/superset/README.md
+++ b/helm/superset/README.md
@@ -23,7 +23,9 @@ NOTE: This file is generated by helm-docs:
https://github.com/norwoodj/helm-docs
# superset
-
+> **:exclamation: This Helm Chart is deprecated!**
+
+
Apache Superset is a modern, enterprise-ready business intelligence web
application
@@ -33,6 +35,13 @@ Apache Superset is a modern, enterprise-ready business
intelligence web applicat
* <https://github.com/apache/superset>
+## Deprecation Notice
+
+> [!WARNING]
+> The Superset Helm chart is deprecated. For new Superset deployments on
Kubernetes, use the official [Apache Superset Kubernetes
Operator](https://github.com/apache/superset-kubernetes-operator) instead.
+>
+> Existing Helm chart users should plan a migration to the operator. Start
with the [operator
documentation](https://apache.github.io/superset-kubernetes-operator/) and the
[Helm chart migration
guide](https://apache.github.io/superset-kubernetes-operator/user-guide/migration/).
+
## TL;DR
```console
diff --git a/helm/superset/README.md.gotmpl b/helm/superset/README.md.gotmpl
index 3047f8c9d5f..1bc9328a772 100644
--- a/helm/superset/README.md.gotmpl
+++ b/helm/superset/README.md.gotmpl
@@ -32,6 +32,13 @@ NOTE: This file is generated by helm-docs:
https://github.com/norwoodj/helm-docs
{{ template "chart.sourcesSection" . }}
+## Deprecation Notice
+
+> [!WARNING]
+> The Superset Helm chart is deprecated. For new Superset deployments on
Kubernetes, use the official [Apache Superset Kubernetes
Operator](https://github.com/apache/superset-kubernetes-operator) instead.
+>
+> Existing Helm chart users should plan a migration to the operator. Start
with the [operator
documentation](https://apache.github.io/superset-kubernetes-operator/) and the
[Helm chart migration
guide](https://apache.github.io/superset-kubernetes-operator/user-guide/migration/).
+
## TL;DR
```console