values.yaml 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897
  1. #
  2. # Licensed to the Apache Software Foundation (ASF) under one or more
  3. # contributor license agreements. See the NOTICE file distributed with
  4. # this work for additional information regarding copyright ownership.
  5. # The ASF licenses this file to You under the Apache License, Version 2.0
  6. # (the "License"); you may not use this file except in compliance with
  7. # the License. You may obtain a copy of the License at
  8. #
  9. # http://www.apache.org/licenses/LICENSE-2.0
  10. #
  11. # Unless required by applicable law or agreed to in writing, software
  12. # distributed under the License is distributed on an "AS IS" BASIS,
  13. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. # See the License for the specific language governing permissions and
  15. # limitations under the License.
  16. #
  17. # Default values for superset.
  18. # This is a YAML-formatted file.
  19. # Declare variables to be passed into your templates.
  20. # A README is automatically generated from this file to document it,
  21. # using helm-docs (see https://github.com/norwoodj/helm-docs)
  22. # To update it, install helm-docs and run helm-docs from the root of this chart
  23. # -- Provide a name to override the name of the chart
  24. nameOverride: ~
  25. # -- Provide a name to override the full names of resources
  26. fullnameOverride: ~
  27. # -- Labels to be added to all resources
  28. extraLabels: {}
  29. # -- User ID directive. This user must have enough permissions to run the bootstrap script
  30. # Running containers as root is not recommended in production. Change this to another UID - e.g. 1000 to be more secure
  31. runAsUser: 0
  32. # -- Specify rather or not helm should create the secret described in `secret-env.yaml` template
  33. secretEnv:
  34. # -- Change to false in order to support externally created secret (Binami "Sealed Secrets" for Kubernetes or External Secrets Operator)
  35. # note: when externally creating the secret, the chart still expects to pull values from a secret with the name of the release defaults to `release-name-superset-env` - full logic located in _helpers.tpl file: `define "superset.fullname"`
  36. create: true
  37. # -- Specify service account name to be used
  38. serviceAccountName: ~
  39. serviceAccount:
  40. # -- Create custom service account for Superset. If create: true and serviceAccountName is not provided, `superset.fullname` will be used.
  41. create: false
  42. annotations: {}
  43. # -- Install additional packages and do any other bootstrap configuration in this script
  44. # For production clusters it's recommended to build own image with this step done in CI
  45. # @default -- see `values.yaml`
  46. bootstrapScript: |
  47. #!/bin/bash
  48. if [ ! -f ~/bootstrap ]; then echo "Running Superset with uid {{ .Values.runAsUser }}" > ~/bootstrap; fi
  49. # -- The name of the secret which we will use to generate a superset_config.py file
  50. # Note: this secret must have the key superset_config.py in it and can include other files as well
  51. configFromSecret: '{{ template "superset.fullname" . }}-config'
  52. # -- The name of the secret which we will use to populate env vars in deployed pods
  53. # This can be useful for secret keys, etc.
  54. envFromSecret: '{{ template "superset.fullname" . }}-env'
  55. # -- This can be a list of templated strings
  56. envFromSecrets: []
  57. # -- Extra environment variables that will be passed into pods
  58. extraEnv: {}
  59. # Different gunicorn settings, refer to the gunicorn documentation
  60. # https://docs.gunicorn.org/en/stable/settings.html#
  61. # These variables are used as Flags at the gunicorn startup
  62. # https://github.com/apache/superset/blob/master/docker/run-server.sh#L22
  63. # Extend timeout to allow long running queries.
  64. # GUNICORN_TIMEOUT: 300
  65. # Increase the gunicorn worker amount, can improve performance drastically
  66. # See: https://docs.gunicorn.org/en/stable/design.html#how-many-workers
  67. # SERVER_WORKER_AMOUNT: 4
  68. # WORKER_MAX_REQUESTS: 0
  69. # WORKER_MAX_REQUESTS_JITTER: 0
  70. # SERVER_THREADS_AMOUNT: 20
  71. # GUNICORN_KEEPALIVE: 2
  72. # SERVER_LIMIT_REQUEST_LINE: 0
  73. # SERVER_LIMIT_REQUEST_FIELD_SIZE: 0
  74. # OAUTH_HOME_DOMAIN: ..
  75. # # If a whitelist is not set, any address that can use your OAuth2 endpoint will be able to login.
  76. # # this includes any random Gmail address if your OAuth2 Web App is set to External.
  77. # OAUTH_WHITELIST_REGEX: ...
  78. # -- Extra environment variables in RAW format that will be passed into pods
  79. extraEnvRaw: []
  80. # Load DB password from other secret (e.g. for zalando operator)
  81. # - name: DB_PASS
  82. # valueFrom:
  83. # secretKeyRef:
  84. # name: superset.superset-postgres.credentials.postgresql.acid.zalan.do
  85. # key: password
  86. # -- Extra environment variables to pass as secrets
  87. extraSecretEnv: {}
  88. # MAPBOX_API_KEY: ...
  89. # # Google API Keys: https://console.cloud.google.com/apis/credentials
  90. # GOOGLE_KEY: ...
  91. # GOOGLE_SECRET: ...
  92. # # Generate your own secret key for encryption. Use openssl rand -base64 42 to generate a good key
  93. # SUPERSET_SECRET_KEY: 'CHANGE_ME_TO_A_COMPLEX_RANDOM_SECRET'
  94. # -- Extra files to mount on `/app/pythonpath`
  95. extraConfigs: {}
  96. # import_datasources.yaml: |
  97. # databases:
  98. # - allow_file_upload: true
  99. # allow_ctas: true
  100. # allow_cvas: true
  101. # database_name: example-db
  102. # extra: "{\r\n \"metadata_params\": {},\r\n \"engine_params\": {},\r\n \"\
  103. # metadata_cache_timeout\": {},\r\n \"schemas_allowed_for_file_upload\": []\r\n\
  104. # }"
  105. # sqlalchemy_uri: example://example-db.local
  106. # tables: []
  107. # -- Extra files to mount on `/app/pythonpath` as secrets
  108. extraSecrets: {}
  109. extraVolumes: []
  110. # - name: customConfig
  111. # configMap:
  112. # name: '{{ template "superset.fullname" . }}-custom-config'
  113. # - name: additionalSecret
  114. # secret:
  115. # secretName: my-secret
  116. # defaultMode: 0600
  117. extraVolumeMounts: []
  118. # - name: customConfig
  119. # mountPath: /mnt/config
  120. # readOnly: true
  121. # - name: additionalSecret:
  122. # mountPath: /mnt/secret
  123. # -- A dictionary of overrides to append at the end of superset_config.py - the name does not matter
  124. # WARNING: the order is not guaranteed
  125. # Files can be passed as helm --set-file configOverrides.my-override=my-file.py
  126. configOverrides: {}
  127. # extend_timeout: |
  128. # # Extend timeout to allow long running queries.
  129. # SUPERSET_WEBSERVER_TIMEOUT = ...
  130. # enable_oauth: |
  131. # from flask_appbuilder.security.manager import (AUTH_DB, AUTH_OAUTH)
  132. # AUTH_TYPE = AUTH_OAUTH
  133. # OAUTH_PROVIDERS = [
  134. # {
  135. # "name": "google",
  136. # "whitelist": [ os.getenv("OAUTH_WHITELIST_REGEX", "") ],
  137. # "icon": "fa-google",
  138. # "token_key": "access_token",
  139. # "remote_app": {
  140. # "client_id": os.environ.get("GOOGLE_KEY"),
  141. # "client_secret": os.environ.get("GOOGLE_SECRET"),
  142. # "api_base_url": "https://www.googleapis.com/oauth2/v2/",
  143. # "client_kwargs": {"scope": "email profile"},
  144. # "request_token_url": None,
  145. # "access_token_url": "https://accounts.google.com/o/oauth2/token",
  146. # "authorize_url": "https://accounts.google.com/o/oauth2/auth",
  147. # "authorize_params": {"hd": os.getenv("OAUTH_HOME_DOMAIN", "")}
  148. # }
  149. # }
  150. # ]
  151. # # Map Authlib roles to superset roles
  152. # AUTH_ROLE_ADMIN = 'Admin'
  153. # AUTH_ROLE_PUBLIC = 'Public'
  154. # # Will allow user self registration, allowing to create Flask users from Authorized User
  155. # AUTH_USER_REGISTRATION = True
  156. # # The default user self registration role
  157. # AUTH_USER_REGISTRATION_ROLE = "Admin"
  158. # secret: |
  159. # # Generate your own secret key for encryption. Use `openssl rand -base64 42` to generate a good key
  160. # SECRET_KEY = 'CHANGE_ME_TO_A_COMPLEX_RANDOM_SECRET'
  161. # -- Same as above but the values are files
  162. configOverridesFiles: {}
  163. # extend_timeout: extend_timeout.py
  164. # enable_oauth: enable_oauth.py
  165. configMountPath: "/app/pythonpath"
  166. extraConfigMountPath: "/app/configs"
  167. image:
  168. repository: apachesuperset.docker.scarf.sh/apache/superset
  169. tag: ~
  170. pullPolicy: IfNotPresent
  171. imagePullSecrets: []
  172. initImage:
  173. repository: apache/superset
  174. tag: dockerize
  175. pullPolicy: IfNotPresent
  176. service:
  177. type: ClusterIP
  178. port: 8088
  179. annotations: {}
  180. # cloud.google.com/load-balancer-type: "Internal"
  181. loadBalancerIP: ~
  182. nodePort:
  183. # -- (int)
  184. http: nil
  185. ingress:
  186. enabled: false
  187. ingressClassName: ~
  188. annotations: {}
  189. # kubernetes.io/tls-acme: "true"
  190. ## Extend timeout to allow long running queries.
  191. # nginx.ingress.kubernetes.io/proxy-connect-timeout: "300"
  192. # nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
  193. # nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
  194. path: /
  195. pathType: ImplementationSpecific
  196. hosts:
  197. - chart-example.local
  198. tls: []
  199. extraHostsRaw: []
  200. # - secretName: chart-example-tls
  201. # hosts:
  202. # - chart-example.local
  203. resources: {}
  204. # We usually recommend not to specify default resources and to leave this as a conscious
  205. # choice for the user. This also increases chances charts run on environments with little
  206. # resources, such as Minikube. If you do want to specify resources, uncomment the following
  207. # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  208. # The limits below will apply to all Superset components. To set individual resource limitations refer to the pod specific values below.
  209. # The pod specific values will overwrite anything that is set here.
  210. # limits:
  211. # cpu: 100m
  212. # memory: 128Mi
  213. # requests:
  214. # cpu: 100m
  215. # memory: 128Mi
  216. # -- Custom hostAliases for all superset pods
  217. ## https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/
  218. hostAliases: []
  219. # - hostnames:
  220. # - nodns.my.lan
  221. # ip: 18.27.36.45
  222. # Superset node configuration
  223. supersetNode:
  224. replicas:
  225. enabled: true
  226. replicaCount: 1
  227. autoscaling:
  228. enabled: false
  229. minReplicas: 1
  230. maxReplicas: 100
  231. targetCPUUtilizationPercentage: 80
  232. # targetMemoryUtilizationPercentage: 80
  233. # -- Sets the [pod disruption budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for supersetNode pods
  234. podDisruptionBudget:
  235. # -- Whether the pod disruption budget should be created
  236. enabled: false
  237. # -- If set, maxUnavailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
  238. minAvailable: 1
  239. # -- If set, minAvailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
  240. maxUnavailable: 1
  241. # -- Startup command
  242. # @default -- See `values.yaml`
  243. command:
  244. - "/bin/sh"
  245. - "-c"
  246. - ". {{ .Values.configMountPath }}/superset_bootstrap.sh; /usr/bin/run-server.sh"
  247. connections:
  248. # -- Change in case of bringing your own redis and then also set redis.enabled:false
  249. redis_host: '{{ .Release.Name }}-redis-headless'
  250. redis_port: "6379"
  251. redis_user: ""
  252. # redis_password: superset
  253. redis_cache_db: "1"
  254. redis_celery_db: "0"
  255. # Or SSL port is usually 6380
  256. # Update following for using Redis with SSL
  257. redis_ssl:
  258. enabled: false
  259. ssl_cert_reqs: CERT_NONE
  260. # You need to change below configuration incase bringing own PostgresSQL instance and also set postgresql.enabled:false
  261. db_host: '{{ .Release.Name }}-postgresql'
  262. db_port: "5432"
  263. db_user: superset
  264. db_pass: superset
  265. db_name: superset
  266. env: {}
  267. # -- If true, forces deployment to reload on each upgrade
  268. forceReload: false
  269. # -- Init containers
  270. # @default -- a container waiting for postgres
  271. initContainers:
  272. - name: wait-for-postgres
  273. image: "{{ .Values.initImage.repository }}:{{ .Values.initImage.tag }}"
  274. imagePullPolicy: "{{ .Values.initImage.pullPolicy }}"
  275. envFrom:
  276. - secretRef:
  277. name: "{{ tpl .Values.envFromSecret . }}"
  278. command:
  279. - /bin/sh
  280. - -c
  281. - dockerize -wait "tcp://$DB_HOST:$DB_PORT" -timeout 120s
  282. # -- Launch additional containers into supersetNode pod
  283. extraContainers: []
  284. # -- Annotations to be added to supersetNode deployment
  285. deploymentAnnotations: {}
  286. # -- Labels to be added to supersetNode deployment
  287. deploymentLabels: {}
  288. # -- Affinity to be added to supersetNode deployment
  289. affinity: {}
  290. # -- TopologySpreadConstrains to be added to supersetNode deployments
  291. topologySpreadConstraints: []
  292. # -- Annotations to be added to supersetNode pods
  293. podAnnotations: {}
  294. # -- Labels to be added to supersetNode pods
  295. podLabels: {}
  296. startupProbe:
  297. httpGet:
  298. path: /health
  299. port: http
  300. initialDelaySeconds: 15
  301. timeoutSeconds: 1
  302. failureThreshold: 60
  303. periodSeconds: 5
  304. successThreshold: 1
  305. livenessProbe:
  306. httpGet:
  307. path: /health
  308. port: http
  309. initialDelaySeconds: 15
  310. timeoutSeconds: 1
  311. failureThreshold: 3
  312. periodSeconds: 15
  313. successThreshold: 1
  314. readinessProbe:
  315. httpGet:
  316. path: /health
  317. port: http
  318. initialDelaySeconds: 15
  319. timeoutSeconds: 1
  320. failureThreshold: 3
  321. periodSeconds: 15
  322. successThreshold: 1
  323. # -- Resource settings for the supersetNode pods - these settings overwrite might existing values from the global resources object defined above.
  324. resources: {}
  325. # limits:
  326. # cpu: 100m
  327. # memory: 128Mi
  328. # requests:
  329. # cpu: 100m
  330. # memory: 128Mi
  331. podSecurityContext: {}
  332. containerSecurityContext: {}
  333. strategy: {}
  334. # type: RollingUpdate
  335. # rollingUpdate:
  336. # maxSurge: 25%
  337. # maxUnavailable: 25%
  338. # Superset Celery worker configuration
  339. supersetWorker:
  340. replicas:
  341. enabled: true
  342. replicaCount: 1
  343. autoscaling:
  344. enabled: false
  345. minReplicas: 1
  346. maxReplicas: 100
  347. targetCPUUtilizationPercentage: 80
  348. # targetMemoryUtilizationPercentage: 80
  349. # -- Sets the [pod disruption budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for supersetWorker pods
  350. podDisruptionBudget:
  351. # -- Whether the pod disruption budget should be created
  352. enabled: false
  353. # -- If set, maxUnavailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
  354. minAvailable: 1
  355. # -- If set, minAvailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
  356. maxUnavailable: 1
  357. # -- Worker startup command
  358. # @default -- a `celery worker` command
  359. command:
  360. - "/bin/sh"
  361. - "-c"
  362. - ". {{ .Values.configMountPath }}/superset_bootstrap.sh; celery --app=superset.tasks.celery_app:app worker"
  363. # -- If true, forces deployment to reload on each upgrade
  364. forceReload: false
  365. # -- Init container
  366. # @default -- a container waiting for postgres and redis
  367. initContainers:
  368. - name: wait-for-postgres-redis
  369. image: "{{ .Values.initImage.repository }}:{{ .Values.initImage.tag }}"
  370. imagePullPolicy: "{{ .Values.initImage.pullPolicy }}"
  371. envFrom:
  372. - secretRef:
  373. name: "{{ tpl .Values.envFromSecret . }}"
  374. command:
  375. - /bin/sh
  376. - -c
  377. - dockerize -wait "tcp://$DB_HOST:$DB_PORT" -wait "tcp://$REDIS_HOST:$REDIS_PORT" -timeout 120s
  378. # -- Launch additional containers into supersetWorker pod
  379. extraContainers: []
  380. # -- Annotations to be added to supersetWorker deployment
  381. deploymentAnnotations: {}
  382. # -- Labels to be added to supersetWorker deployment
  383. deploymentLabels: {}
  384. # -- Affinity to be added to supersetWorker deployment
  385. affinity: {}
  386. # -- TopologySpreadConstrains to be added to supersetWorker deployments
  387. topologySpreadConstraints: []
  388. # -- Annotations to be added to supersetWorker pods
  389. podAnnotations: {}
  390. # -- Labels to be added to supersetWorker pods
  391. podLabels: {}
  392. # -- Resource settings for the supersetWorker pods - these settings overwrite might existing values from the global resources object defined above.
  393. resources: {}
  394. # limits:
  395. # cpu: 100m
  396. # memory: 128Mi
  397. # requests:
  398. # cpu: 100m
  399. # memory: 128Mi
  400. podSecurityContext: {}
  401. containerSecurityContext: {}
  402. strategy: {}
  403. # type: RollingUpdate
  404. # rollingUpdate:
  405. # maxSurge: 25%
  406. # maxUnavailable: 25%
  407. livenessProbe:
  408. exec:
  409. # -- Liveness probe command
  410. # @default -- a `celery inspect ping` command
  411. command:
  412. - sh
  413. - -c
  414. - celery -A superset.tasks.celery_app:app inspect ping -d celery@$HOSTNAME
  415. initialDelaySeconds: 120
  416. timeoutSeconds: 60
  417. failureThreshold: 3
  418. periodSeconds: 60
  419. successThreshold: 1
  420. # -- No startup/readiness probes by default since we don't really care about its startup time (it doesn't serve traffic)
  421. startupProbe: {}
  422. # -- No startup/readiness probes by default since we don't really care about its startup time (it doesn't serve traffic)
  423. readinessProbe: {}
  424. # -- Set priorityClassName for supersetWorker pods
  425. priorityClassName: ~
  426. # Superset beat configuration (to trigger scheduled jobs like reports)
  427. supersetCeleryBeat:
  428. # -- This is only required if you intend to use alerts and reports
  429. enabled: false
  430. # -- Sets the [pod disruption budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for supersetCeleryBeat pods
  431. podDisruptionBudget:
  432. # -- Whether the pod disruption budget should be created
  433. enabled: false
  434. # -- If set, maxUnavailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
  435. minAvailable: 1
  436. # -- If set, minAvailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
  437. maxUnavailable: 1
  438. # -- Command
  439. # @default -- a `celery beat` command
  440. command:
  441. - "/bin/sh"
  442. - "-c"
  443. - ". {{ .Values.configMountPath }}/superset_bootstrap.sh; celery --app=superset.tasks.celery_app:app beat --pidfile /tmp/celerybeat.pid --schedule /tmp/celerybeat-schedule"
  444. # -- If true, forces deployment to reload on each upgrade
  445. forceReload: false
  446. # -- List of init containers
  447. # @default -- a container waiting for postgres
  448. initContainers:
  449. - name: wait-for-postgres-redis
  450. image: "{{ .Values.initImage.repository }}:{{ .Values.initImage.tag }}"
  451. imagePullPolicy: "{{ .Values.initImage.pullPolicy }}"
  452. envFrom:
  453. - secretRef:
  454. name: "{{ tpl .Values.envFromSecret . }}"
  455. command:
  456. - /bin/sh
  457. - -c
  458. - dockerize -wait "tcp://$DB_HOST:$DB_PORT" -wait "tcp://$REDIS_HOST:$REDIS_PORT" -timeout 120s
  459. # -- Launch additional containers into supersetCeleryBeat pods
  460. extraContainers: []
  461. # -- Annotations to be added to supersetCeleryBeat deployment
  462. deploymentAnnotations: {}
  463. # -- Affinity to be added to supersetCeleryBeat deployment
  464. affinity: {}
  465. # -- TopologySpreadConstrains to be added to supersetCeleryBeat deployments
  466. topologySpreadConstraints: []
  467. # -- Annotations to be added to supersetCeleryBeat pods
  468. podAnnotations: {}
  469. # -- Labels to be added to supersetCeleryBeat pods
  470. podLabels: {}
  471. # -- Resource settings for the CeleryBeat pods - these settings overwrite might existing values from the global resources object defined above.
  472. resources: {}
  473. # limits:
  474. # cpu: 100m
  475. # memory: 128Mi
  476. # requests:
  477. # cpu: 100m
  478. # memory: 128Mi
  479. podSecurityContext: {}
  480. containerSecurityContext: {}
  481. # -- Set priorityClassName for CeleryBeat pods
  482. priorityClassName: ~
  483. supersetCeleryFlower:
  484. # -- Enables a Celery flower deployment (management UI to monitor celery jobs)
  485. # WARNING: on superset 1.x, this requires a Superset image that has `flower<1.0.0` installed (which is NOT the case of the default images)
  486. # flower>=1.0.0 requires Celery 5+ which Superset 1.5 does not support
  487. enabled: false
  488. replicaCount: 1
  489. # -- Sets the [pod disruption budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for supersetCeleryFlower pods
  490. podDisruptionBudget:
  491. # -- Whether the pod disruption budget should be created
  492. enabled: false
  493. # -- If set, maxUnavailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
  494. minAvailable: 1
  495. # -- If set, minAvailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
  496. maxUnavailable: 1
  497. # -- Command
  498. # @default -- a `celery flower` command
  499. command:
  500. - "/bin/sh"
  501. - "-c"
  502. - "celery --app=superset.tasks.celery_app:app flower"
  503. service:
  504. type: ClusterIP
  505. annotations: {}
  506. loadBalancerIP: ~
  507. port: 5555
  508. nodePort:
  509. # -- (int)
  510. http: nil
  511. startupProbe:
  512. httpGet:
  513. path: /api/workers
  514. port: flower
  515. initialDelaySeconds: 5
  516. timeoutSeconds: 1
  517. failureThreshold: 60
  518. periodSeconds: 5
  519. successThreshold: 1
  520. livenessProbe:
  521. httpGet:
  522. path: /api/workers
  523. port: flower
  524. initialDelaySeconds: 5
  525. timeoutSeconds: 1
  526. failureThreshold: 3
  527. periodSeconds: 5
  528. successThreshold: 1
  529. readinessProbe:
  530. httpGet:
  531. path: /api/workers
  532. port: flower
  533. initialDelaySeconds: 5
  534. timeoutSeconds: 1
  535. failureThreshold: 3
  536. periodSeconds: 5
  537. successThreshold: 1
  538. # -- List of init containers
  539. # @default -- a container waiting for postgres and redis
  540. initContainers:
  541. - name: wait-for-postgres-redis
  542. image: "{{ .Values.initImage.repository }}:{{ .Values.initImage.tag }}"
  543. imagePullPolicy: "{{ .Values.initImage.pullPolicy }}"
  544. envFrom:
  545. - secretRef:
  546. name: "{{ tpl .Values.envFromSecret . }}"
  547. command:
  548. - /bin/sh
  549. - -c
  550. - dockerize -wait "tcp://$DB_HOST:$DB_PORT" -wait "tcp://$REDIS_HOST:$REDIS_PORT" -timeout 120s
  551. # -- Launch additional containers into supersetCeleryFlower pods
  552. extraContainers: []
  553. # -- Annotations to be added to supersetCeleryFlower deployment
  554. deploymentAnnotations: {}
  555. # -- Affinity to be added to supersetCeleryFlower deployment
  556. affinity: {}
  557. # -- TopologySpreadConstrains to be added to supersetCeleryFlower deployments
  558. topologySpreadConstraints: []
  559. # -- Annotations to be added to supersetCeleryFlower pods
  560. podAnnotations: {}
  561. # -- Labels to be added to supersetCeleryFlower pods
  562. podLabels: {}
  563. # -- Resource settings for the CeleryBeat pods - these settings overwrite might existing values from the global resources object defined above.
  564. resources: {}
  565. # limits:
  566. # cpu: 100m
  567. # memory: 128Mi
  568. # requests:
  569. # cpu: 100m
  570. # memory: 128Mi
  571. podSecurityContext: {}
  572. containerSecurityContext: {}
  573. # -- Set priorityClassName for supersetCeleryFlower pods
  574. priorityClassName: ~
  575. supersetWebsockets:
  576. # -- This is only required if you intend to use `GLOBAL_ASYNC_QUERIES` in `ws` mode
  577. # see https://github.com/apache/superset/blob/master/CONTRIBUTING.md#async-chart-queries
  578. enabled: false
  579. replicaCount: 1
  580. # -- Sets the [pod disruption budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for supersetWebsockets pods
  581. podDisruptionBudget:
  582. # -- Whether the pod disruption budget should be created
  583. enabled: false
  584. # -- If set, maxUnavailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
  585. minAvailable: 1
  586. # -- If set, minAvailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
  587. maxUnavailable: 1
  588. ingress:
  589. path: /ws
  590. pathType: Prefix
  591. image:
  592. # -- There is no official image (yet), this one is community-supported
  593. repository: oneacrefund/superset-websocket
  594. tag: latest
  595. pullPolicy: IfNotPresent
  596. # -- The config.json to pass to the server, see https://github.com/apache/superset/tree/master/superset-websocket
  597. # Note that the configuration can also read from environment variables (which will have priority), see https://github.com/apache/superset/blob/master/superset-websocket/src/config.ts for a list of supported variables
  598. # @default -- see `values.yaml`
  599. config:
  600. {
  601. "port": 8080,
  602. "logLevel": "debug",
  603. "logToFile": false,
  604. "logFilename": "app.log",
  605. "statsd": { "host": "127.0.0.1", "port": 8125, "globalTags": [] },
  606. "redis":
  607. {
  608. "port": 6379,
  609. "host": "127.0.0.1",
  610. "password": "",
  611. "db": 0,
  612. "ssl": false,
  613. },
  614. "redisStreamPrefix": "async-events-",
  615. "jwtSecret": "CHANGE-ME",
  616. "jwtCookieName": "async-token",
  617. }
  618. service:
  619. type: ClusterIP
  620. annotations: {}
  621. loadBalancerIP: ~
  622. port: 8080
  623. nodePort:
  624. # -- (int)
  625. http: nil
  626. command: []
  627. resources: {}
  628. # -- Launch additional containers into supersetWebsockets pods
  629. extraContainers: []
  630. deploymentAnnotations: {}
  631. # -- Affinity to be added to supersetWebsockets deployment
  632. affinity: {}
  633. # -- TopologySpreadConstrains to be added to supersetWebsockets deployments
  634. topologySpreadConstraints: []
  635. podAnnotations: {}
  636. podLabels: {}
  637. strategy: {}
  638. podSecurityContext: {}
  639. containerSecurityContext: {}
  640. startupProbe:
  641. httpGet:
  642. path: /health
  643. port: ws
  644. initialDelaySeconds: 5
  645. timeoutSeconds: 1
  646. failureThreshold: 60
  647. periodSeconds: 5
  648. successThreshold: 1
  649. livenessProbe:
  650. httpGet:
  651. path: /health
  652. port: ws
  653. initialDelaySeconds: 5
  654. timeoutSeconds: 1
  655. failureThreshold: 3
  656. periodSeconds: 5
  657. successThreshold: 1
  658. readinessProbe:
  659. httpGet:
  660. path: /health
  661. port: ws
  662. initialDelaySeconds: 5
  663. timeoutSeconds: 1
  664. failureThreshold: 3
  665. periodSeconds: 5
  666. successThreshold: 1
  667. # -- Set priorityClassName for supersetWebsockets pods
  668. priorityClassName: ~
  669. init:
  670. # Configure resources
  671. # Warning: fab command consumes a lot of ram and can
  672. # cause the process to be killed due to OOM if it exceeds limit
  673. # Make sure you are giving a strong password for the admin user creation( else make sure you are changing after setup)
  674. # Also change the admin email to your own custom email.
  675. resources: {}
  676. # limits:
  677. # cpu:
  678. # memory:
  679. # requests:
  680. # cpu:
  681. # memory:
  682. # -- Command
  683. # @default -- a `superset_init.sh` command
  684. command:
  685. - "/bin/sh"
  686. - "-c"
  687. - ". {{ .Values.configMountPath }}/superset_bootstrap.sh; . {{ .Values.configMountPath }}/superset_init.sh"
  688. enabled: true
  689. jobAnnotations:
  690. "helm.sh/hook": post-install,post-upgrade
  691. "helm.sh/hook-delete-policy": "before-hook-creation"
  692. loadExamples: false
  693. createAdmin: true
  694. adminUser:
  695. username: admin
  696. firstname: Superset
  697. lastname: Admin
  698. email: admin@superset.com
  699. password: admin
  700. # -- List of initContainers
  701. # @default -- a container waiting for postgres
  702. initContainers:
  703. - name: wait-for-postgres
  704. image: "{{ .Values.initImage.repository }}:{{ .Values.initImage.tag }}"
  705. imagePullPolicy: "{{ .Values.initImage.pullPolicy }}"
  706. envFrom:
  707. - secretRef:
  708. name: "{{ tpl .Values.envFromSecret . }}"
  709. command:
  710. - /bin/sh
  711. - -c
  712. - dockerize -wait "tcp://$DB_HOST:$DB_PORT" -timeout 120s
  713. # -- A Superset init script
  714. # @default -- a script to create admin user and initialize roles
  715. initscript: |-
  716. #!/bin/sh
  717. set -eu
  718. echo "Upgrading DB schema..."
  719. superset db upgrade
  720. echo "Initializing roles..."
  721. superset init
  722. {{ if .Values.init.createAdmin }}
  723. echo "Creating admin user..."
  724. superset fab create-admin \
  725. --username {{ .Values.init.adminUser.username }} \
  726. --firstname {{ .Values.init.adminUser.firstname }} \
  727. --lastname {{ .Values.init.adminUser.lastname }} \
  728. --email {{ .Values.init.adminUser.email }} \
  729. --password {{ .Values.init.adminUser.password }} \
  730. || true
  731. {{- end }}
  732. {{ if .Values.init.loadExamples }}
  733. echo "Loading examples..."
  734. superset load_examples
  735. {{- end }}
  736. if [ -f "{{ .Values.extraConfigMountPath }}/import_datasources.yaml" ]; then
  737. echo "Importing database connections.... "
  738. superset import_datasources -p {{ .Values.extraConfigMountPath }}/import_datasources.yaml
  739. fi
  740. # -- Launch additional containers into init job pod
  741. extraContainers: []
  742. ## Annotations to be added to init job pods
  743. podAnnotations: {}
  744. podSecurityContext: {}
  745. containerSecurityContext: {}
  746. ## Tolerations to be added to init job pods
  747. tolerations: []
  748. ## Affinity to be added to init job pods
  749. affinity: {}
  750. # -- TopologySpreadConstrains to be added to init job
  751. topologySpreadConstraints: []
  752. # -- Set priorityClassName for init job pods
  753. priorityClassName: ~
  754. # -- Configuration values for the postgresql dependency.
  755. # ref: https://github.com/bitnami/charts/tree/main/bitnami/postgresql
  756. # @default -- see `values.yaml`
  757. postgresql:
  758. ##
  759. ## Use the PostgreSQL chart dependency.
  760. ## Set to false if bringing your own PostgreSQL.
  761. enabled: true
  762. ## Authentication parameters
  763. auth:
  764. ## The name of an existing secret that contains the postgres password.
  765. existingSecret:
  766. ## PostgreSQL name for a custom user to create
  767. username: superset
  768. ## PostgreSQL password for the custom user to create. Ignored if `auth.existingSecret` with key `password` is provided
  769. password: superset
  770. ## PostgreSQL name for a custom database to create
  771. database: superset
  772. image:
  773. tag: "14.6.0-debian-11-r13"
  774. ## PostgreSQL Primary parameters
  775. primary:
  776. ##
  777. ## Persistent Volume Storage configuration.
  778. ## ref: https://kubernetes.io/docs/user-guide/persistent-volumes
  779. persistence:
  780. ##
  781. ## Enable PostgreSQL persistence using Persistent Volume Claims.
  782. enabled: true
  783. ##
  784. ## Persistent class
  785. # storageClass: classname
  786. ##
  787. ## Access modes:
  788. accessModes:
  789. - ReadWriteOnce
  790. ## PostgreSQL port
  791. service:
  792. ports:
  793. postgresql: "5432"
  794. # -- Configuration values for the Redis dependency.
  795. # ref: https://github.com/bitnami/charts/blob/master/bitnami/redis
  796. # More documentation can be found here: https://artifacthub.io/packages/helm/bitnami/redis
  797. # @default -- see `values.yaml`
  798. redis:
  799. ##
  800. ## Use the redis chart dependency.
  801. ##
  802. ## If you are bringing your own redis, you can set the host in supersetNode.connections.redis_host
  803. ##
  804. ## Set to false if bringing your own redis.
  805. enabled: true
  806. ##
  807. ## Set architecture to standalone/replication
  808. architecture: standalone
  809. ##
  810. ## Auth configuration:
  811. ##
  812. auth:
  813. ## Enable password authentication
  814. enabled: false
  815. ## The name of an existing secret that contains the redis password.
  816. existingSecret: ""
  817. ## Name of the key containing the secret.
  818. existingSecretKey: ""
  819. ## Redis password
  820. password: superset
  821. ##
  822. ## Master configuration
  823. ##
  824. master:
  825. ##
  826. ## Image configuration
  827. # image:
  828. ##
  829. ## docker registry secret names (list)
  830. # pullSecrets: nil
  831. ##
  832. ## Configure persistence
  833. persistence:
  834. ##
  835. ## Use a PVC to persist data.
  836. enabled: false
  837. ##
  838. ## Persistent class
  839. # storageClass: classname
  840. ##
  841. ## Access mode:
  842. accessModes:
  843. - ReadWriteOnce
  844. nodeSelector: {}
  845. tolerations: []
  846. affinity: {}
  847. # -- TopologySpreadConstrains to be added to all deployments
  848. topologySpreadConstraints: []
  849. # -- Set priorityClassName for superset pods
  850. priorityClassName: ~