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
 
-![Version: 
0.22.7](https://img.shields.io/badge/Version-0.22.7-informational?style=flat-square)
+> **:exclamation: This Helm Chart is deprecated!**
+
+![Version: 
0.22.8](https://img.shields.io/badge/Version-0.22.8-informational?style=flat-square)
 
 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

Reply via email to