Skip to main content
Version 3.0

Integrations — Superset

ChartVersion3.0.1TypeapplicationAppVersion5.0.0
CompatibilityKubernetes1.32+OpenShift4.19+Rancher2.10.x+

Overview

The tdp-superset chart can use an external PostgreSQL (tdp-postgresql) as its metadata database — see Superset Configuration.

The tdp-superset chart registers datasources for Trino and ClickHouse automatically during initialization when tdp-superset.datasources.autoImport.enabled: true and the individual datasource blocks are enabled.

The import job runs on every install and upgrade (post-install,post-upgrade). It performs an upsert by UUID — existing connections are updated, not duplicated. When autoImport.enabled: false, the datasource ConfigMap is not created and the volume mount is silently ignored.
For the import to succeed, the data services must be reachable in the cluster before the job completes.
If auto-import fails or the services are unavailable, datasources can be registered manually through the Superset interface after deployment.

ClickHouse

The tdp-superset.datasources.clickhouse block configures the connection to a ClickHouse cluster.

Example
tdp-superset:
datasources:
autoImport:
enabled: true
clickhouse:
enabled: true
name: "ClickHouse TDP"
host: "<CLICKHOUSE_SERVICE>.<NAMESPACE>.svc.cluster.local"
port: "8123"
database: "default"
username: "<USERNAME>"
password: "<PASSWORD>"
uuid: "92122244-b262-44a6-a2ed-e49a05860dda"
FieldDescription
hostInternal ClickHouse service address in <SERVICE_NAME>.<NAMESPACE>.svc.cluster.local format
portClickHouse HTTP port. Default is 8123
databaseDefault database for the datasource. Use default if no specific database is needed
usernameUser with read access to ClickHouse
passwordUser password. Do not store in plain text
uuidStable datasource identifier. Do not change after first creation in the environment

Trino

The tdp-superset.datasources.trino block configures the connection to a Trino cluster.

Example
tdp-superset:
datasources:
autoImport:
enabled: true
trino:
enabled: true
name: "Trino TDP"
host: "<TRINO_SERVICE>.<NAMESPACE>.svc.cluster.local"
port: "8080"
catalog: ""
username: "<USERNAME>"
password: ""
uuid: "8a92c01b-2d6e-4fc1-a302-b6a5f0e56789"
FieldDescription
hostInternal Trino service address in <SERVICE_NAME>.<NAMESPACE>.svc.cluster.local format
portTrino port. Use 8080 for HTTP without LDAP
catalogDefault Trino catalog for the datasource. Leave empty for Superset to list all available catalogs
usernameTrino user. Any value is accepted in environments without LDAP
passwordTrino password. Leave empty when LDAP is not active
uuidStable datasource identifier. Do not change after first creation in the environment

Combining ClickHouse and Trino

To import both datasources in the same deployment:

Example
tdp-superset:
datasources:
autoImport:
enabled: true
clickhouse:
enabled: true
name: "ClickHouse TDP"
host: "<CLICKHOUSE_SERVICE>.<NAMESPACE>.svc.cluster.local"
port: "8123"
database: "default"
username: "<USERNAME>"
password: "<PASSWORD>"
uuid: "92122244-b262-44a6-a2ed-e49a05860dda"
trino:
enabled: true
name: "Trino TDP"
host: "<TRINO_SERVICE>.<NAMESPACE>.svc.cluster.local"
port: "8080"
catalog: ""
username: "<USERNAME>"
password: ""
uuid: "8a92c01b-2d6e-4fc1-a302-b6a5f0e56789"

Datasource UUID

The uuid identifies the datasource in a stable way across deployments.
Do not change the UUID after the first creation in an existing environment, as dashboards and charts referencing that datasource use the UUID as their key.
For a new environment, the chart's default UUID can be kept or replaced with a newly generated one.

To generate a new UUID locally, use a UUID v4 tool.
In environments with uuidgen:

uuidgen

Another option, using Python:

python -c "import uuid; print(uuid.uuid4())"

Use the generated value in the datasource uuid field before the first deploy of the environment.

Ordering Dependency

Auto-import runs during the Superset initialization job.
Ensure Trino and ClickHouse services are running and reachable before starting the Superset deployment with autoImport.enabled: true.
If the init job runs before the datasources are ready, the import will fail and must be repeated manually.

Accessibility Validation

Before enabling auto-import, confirm that the Trino and ClickHouse Services exist in the expected namespace:

kubectl -n <NAMESPACE> get svc

Also validate connectivity from inside the cluster.
For Trino, the /v1/info endpoint confirms that the HTTP service is responding:

kubectl -n <NAMESPACE> run trino-check --rm -it --image=curlimages/curl --restart=Never -- curl -sS http://<TRINO_SERVICE>.<NAMESPACE>.svc.cluster.local:8080/v1/info

For ClickHouse, the /ping endpoint should return Ok:

kubectl -n <NAMESPACE> run clickhouse-check --rm -it --image=curlimages/curl --restart=Never -- curl -sS http://<CLICKHOUSE_SERVICE>.<NAMESPACE>.svc.cluster.local:8123/ping

If the import fails, inspect the Superset initialization jobs and logs:

kubectl -n <NAMESPACE> get jobs
kubectl -n <NAMESPACE> logs job/<JOB_NAME>

Manual Registration Through the Interface

When auto-import is disabled, fails during init, or the data source is created after deployment, register the datasource through the Superset interface.
In the UI, go to Settings > Database Connections and create a new connection.

Use the same data expected by the chart block: datasource name, host, port, user, password, and default database or catalog.
For ClickHouse, usually provide the HTTP port 8123 and the default database.
For Trino, provide port 8080 for HTTP without LDAP, the Trino user, and, when needed, the initial catalog.

After saving, use the interface's connection test action before creating datasets, charts, or dashboards.

Security and Credentials

Do not store datasource passwords in plain text.
For production environments, inject passwords via Kubernetes Secret using secretKeyRef in extraEnvRaw, or use a secrets management tool.
See Security — Superset for credential best practices and LDAP configuration.