Integrations — Superset
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.
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"
| Field | Description |
|---|---|
host | Internal ClickHouse service address in <SERVICE_NAME>.<NAMESPACE>.svc.cluster.local format |
port | ClickHouse HTTP port. Default is 8123 |
database | Default database for the datasource. Use default if no specific database is needed |
username | User with read access to ClickHouse |
password | User password. Do not store in plain text |
uuid | Stable 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.
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"
| Field | Description |
|---|---|
host | Internal Trino service address in <SERVICE_NAME>.<NAMESPACE>.svc.cluster.local format |
port | Trino port. Use 8080 for HTTP without LDAP |
catalog | Default Trino catalog for the datasource. Leave empty for Superset to list all available catalogs |
username | Trino user. Any value is accepted in environments without LDAP |
password | Trino password. Leave empty when LDAP is not active |
uuid | Stable datasource identifier. Do not change after first creation in the environment |
Combining ClickHouse and Trino
To import both datasources in the same deployment:
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.