Skip to content

Configuration

Updated 3 min read

The chart owns nebariapp, secretKey, and the name overrides. Everything under superset passes through to the upstream Apache Superset chart (version 0.17.2, Superset 6.1.0).

ValueDefaultPurpose
nebariapp.enabledfalseRender the NebariApp.
nebariapp.hostname""Required when enabled — the render fails without it.
nebariapp.service.name"" → <release>Backend service.
nebariapp.service.port8088Backend port.
nebariapp.routingunsetHTTPRoute and TLS. No route is created when unset — see below.
nebariapp.gatewaypublicpublic or internal.
nebariapp.landingPageunsetNebari landing-page tile.
ValueDefaultPurpose
auth.enabledfalseProvision a Keycloak client.
auth.providerkeycloakIdentity provider.
auth.provisionClienttrueOperator creates the OIDC client and its Secret.
auth.enforceAtGatewayfalseKept off — Superset runs its own OAuth flow.
auth.redirectURI/oauth-authorized/keycloakFlask-AppBuilder’s callback path.
auth.scopesopenid, profile, emailRequested scopes.
auth.groups[]Groups created in Keycloak. Empty admits every authenticated user.

Enabling auth provisions the client; it does not configure Superset. The Python config in superset.configOverrides.oauth_config and the extraEnvRaw wiring are what make login work. See Keycloak OAuth.

ValueDefaultPurpose
secretKey.createtrueGenerate and manage the SUPERSET_SECRET_KEY Secret.
secretKey.secretName"" → <release>-secret-keyOverride the Secret name. Read only when create is true; it is a no-op under create: false, where you override superset.envFromSecrets instead.
ValueDefault
nameOverride""
fullnameOverride""

These affect the NebariApp name and labels, not the upstream chart’s service name. If you set either, confirm nebariapp.service.name still points at a service that exists.

ValueSet toWhy
superset.service.type / .portClusterIP / 8088Routing is the NebariApp’s job.
superset.configOverrides.proxy_fixENABLE_PROXY_FIX, PROXY_FIX_CONFIG, CSRF settingsSuperset sits behind a proxy; without it, redirects and absolute URLs use the pod’s own address. WTF_CSRF_TIME_LIMIT = None stops long-lived sessions from failing CSRF.
superset.envFromSecrets['{{ .Release.Name }}-secret-key']Injects the managed key.
superset.postgresql.image.repositorybitnamilegacy/postgresqlPins the legacy mirror, since Bitnami removed the original tags. Upstream 0.17.2 already defaults to this, so the override is a restatement.
superset.redis.image.repositorybitnamilegacy/redisSame, and likewise already the upstream 0.17.2 default.
superset.bootstrapScriptinstalls authlib and .[postgres]Required by the OAuth config and the PostgreSQL driver.
To changeSet
Hostname, TLS, routingnebariapp.*
Keycloak client and groupsnebariapp.auth.*
How Superset authenticates userssuperset.configOverrides.oauth_config
OAuth credentials from the operator’s Secretsuperset.extraEnvRaw
Metadata databasesuperset.postgresql.* or superset.supersetNode.connections.*
Cache and Celery brokersuperset.redis.*
Superset Python configsuperset.configOverrides.*
Extra Python packagessuperset.bootstrapScript
Replicas, resources, probesupstream keys under superset.*
nebariapp:
enabled: true
hostname: superset.example.com
routing:
tls: { enabled: true }
routes:
- pathPrefix: /
pathType: PathPrefix
auth:
enabled: true
provisionClient: true
groups: [superset-admin, superset-user]
gateway: internal
landingPage:
enabled: true
displayName: "Apache Superset"
category: "Data Science"
secretKey:
create: false # Argo CD
superset:
postgresql:
enabled: false
supersetNode:
connections:
db_host: postgres.example.com
db_port: "5432"
db_user: superset
db_name: superset
configOverrides:
oauth_config: |
# see the Keycloak OAuth page
extraEnvRaw:
- name: OAUTH_CLIENT_ID
valueFrom:
secretKeyRef:
name: superset-nebari-superset-oidc-client
key: client-id
# ... client-secret and issuer-url
Terminal window
helm template superset chart --set nebariapp.enabled=true \
--set nebariapp.hostname=superset.example.com | less
helm -n superset get values superset
helm -n superset get values superset --all

Redact before sharing — an inline db_pass shows up here.