diff --git a/docker-compose-non-dev.yml b/docker-compose-non-dev.yml index 070a1bb12c6..0ce96e00baf 100644 --- a/docker-compose-non-dev.yml +++ b/docker-compose-non-dev.yml @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # -x-superset-image: &superset-image apache/superset:${TAG:-latest-dev} +x-superset-image: &superset-image apachesuperset.docker.scarf.sh/apache/superset:${TAG:-latest-dev} x-superset-depends-on: &superset-depends-on - db - redis diff --git a/docker-compose.yml b/docker-compose.yml index c6af8e54f39..bd965f156af 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # -x-superset-image: &superset-image apache/superset:${TAG:-latest-dev} +x-superset-image: &superset-image apachesuperset.docker.scarf.sh/apache/superset:${TAG:-latest-dev} x-superset-user: &superset-user root x-superset-depends-on: &superset-depends-on - db diff --git a/docs/.gitignore b/docs/.gitignore index b2d6de30624..9f2d3dbb1c8 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -18,3 +18,5 @@ npm-debug.log* yarn-debug.log* yarn-error.log* + +docs/.zshrc diff --git a/docs/docs/frequently-asked-questions.mdx b/docs/docs/frequently-asked-questions.mdx index 381746e6504..bbb94d617b9 100644 --- a/docs/docs/frequently-asked-questions.mdx +++ b/docs/docs/frequently-asked-questions.mdx @@ -282,3 +282,9 @@ guarantees and are not recommended but may fit your use case temporarily: In the Edit Dataset view, you can specify a time offset. This field lets you configure the number of hours to be added or subtracted from the time column. This can be used, for example, to convert UTC time to local time. + +### Does Superset collect any telemetry data? + +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, and the [scarf-js](https://about.scarf.sh/package-sdks) package to track `npm` installations. +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). Additional opt-out instructions for Docker users are available on the [Docker Installation](https://superset.apache.org/docs/installation/installing-superset-using-docker-compose) page. diff --git a/docs/docs/installation/installing-superset-using-docker-compose.mdx b/docs/docs/installation/installing-superset-using-docker-compose.mdx index 7cfb76fce1b..981fca8147d 100644 --- a/docs/docs/installation/installing-superset-using-docker-compose.mdx +++ b/docs/docs/installation/installing-superset-using-docker-compose.mdx @@ -96,7 +96,14 @@ You can configure the Docker Compose environment varirables for dev and non-dev One important variable is `SUPERSET_LOAD_EXAMPLES` which determines whether the `superset_init` container will load example data and visualizations into the database and Superset. These examples are quite helpful for most people, but probably unnecessary for experienced users. The loading process can sometimes take a few minutes and a good amount of CPU, so you may want to disable it on a resource-constrained device. -**Note:** Users often want to connect to other databases from Superset. Currently, the easiest way to do this is to modify the `docker-compose-non-dev.yml` file and add your database as a service that the other services depend on (via `x-superset-depends-on`). Others have attempted to set `network_mode: host` on the Superset services, but these generally break the installation, because the configuration requires use of the Docker Compose DNS resolver for the service names. If you have a good solution for this, let us know! + +:::note +Users often want to connect to other databases from Superset. Currently, the easiest way to do this is to modify the `docker-compose-non-dev.yml` file and add your database as a service that the other services depend on (via `x-superset-depends-on`). Others have attempted to set `network_mode: host` on the Superset services, but these generally break the installation, because the configuration requires use of the Docker Compose DNS resolver for the service names. If you have a good solution for this, let us know! +::: + +:::note +Superset uses [Scarf Gateway](https://about.scarf.sh/scarf-gateway) to collect telmetry data to better understand and support the need for patch versions of Sueprset. 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). However, if you wish to opt-out of this in your Docker-based installation, you can simply edit your `docker-compose.yml` or `docker-compose-non-dev.yml` file and remove `apachesuperset.docker.scarf.sh/` from the `x-superset-image` setting, so that it's simply pulling `apache/superset:${TAG:-latest-dev}` +::: ### 4. Log in to Superset diff --git a/docs/docs/installation/running-on-kubernetes.mdx b/docs/docs/installation/running-on-kubernetes.mdx index 17b884aeeab..2a63de9b46a 100644 --- a/docs/docs/installation/running-on-kubernetes.mdx +++ b/docs/docs/installation/running-on-kubernetes.mdx @@ -121,6 +121,10 @@ init: . {{ .Values.configMountPath }}/superset_init.sh ``` +:::note +Superset uses [Scarf Gateway](https://about.scarf.sh/scarf-gateway) to collect telmetry data to better understand and support the need for patch versions of Sueprset. 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). However, if you wish to opt-out of this in your Helm-based installation, you can simply edit your `helm/superset/values.yaml` file and remove `apachesuperset.docker.scarf.sh/` from the `repository` field, so that it's simply pulling `apache/superset` +::: + #### Dependencies Install additional packages and do any other bootstrap configuration in the bootstrap script. diff --git a/helm/superset/Chart.yaml b/helm/superset/Chart.yaml index 7a700075fc7..7582c560c48 100644 --- a/helm/superset/Chart.yaml +++ b/helm/superset/Chart.yaml @@ -29,7 +29,7 @@ maintainers: - name: craig-rueda email: craig@craigrueda.com url: https://github.com/craig-rueda -version: 0.10.3 +version: 0.10.5 dependencies: - name: postgresql version: 12.1.6 diff --git a/helm/superset/README.md b/helm/superset/README.md index e75c65dc282..6b3bd07f14e 100644 --- a/helm/superset/README.md +++ b/helm/superset/README.md @@ -23,7 +23,7 @@ NOTE: This file is generated by helm-docs: https://github.com/norwoodj/helm-docs # superset -![Version: 0.10.3](https://img.shields.io/badge/Version-0.10.3-informational?style=flat-square) +![Version: 0.10.5](https://img.shields.io/badge/Version-0.10.5-informational?style=flat-square) Apache Superset is a modern, enterprise-ready business intelligence web application @@ -31,7 +31,7 @@ Apache Superset is a modern, enterprise-ready business intelligence web applicat ## Source Code -* +- ## TL;DR @@ -42,242 +42,242 @@ helm install my-superset superset/superset ## Requirements -| Repository | Name | Version | -|------------|------|---------| -| https://charts.bitnami.com/bitnami | postgresql | 12.1.6 | -| https://charts.bitnami.com/bitnami | redis | 17.9.4 | +| Repository | Name | Version | +| ---------------------------------- | ---------- | ------- | +| https://charts.bitnami.com/bitnami | postgresql | 12.1.6 | +| https://charts.bitnami.com/bitnami | redis | 17.9.4 | ## Values -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| bootstrapScript | string | see `values.yaml` | Install additional packages and do any other bootstrap configuration in this script For production clusters it's recommended to build own image with this step done in CI | -| configFromSecret | string | `"{{ template \"superset.fullname\" . }}-config"` | The name of the secret which we will use to generate a superset_config.py file Note: this secret must have the key superset_config.py in it and can include other files as well | -| configMountPath | string | `"/app/pythonpath"` | | -| configOverrides | object | `{}` | A dictionary of overrides to append at the end of superset_config.py - the name does not matter WARNING: the order is not guaranteed Files can be passed as helm --set-file configOverrides.my-override=my-file.py | -| configOverridesFiles | object | `{}` | Same as above but the values are files | -| envFromSecret | string | `"{{ template \"superset.fullname\" . }}-env"` | The name of the secret which we will use to populate env vars in deployed pods This can be useful for secret keys, etc. | -| envFromSecrets | list | `[]` | This can be a list of templated strings | -| extraConfigMountPath | string | `"/app/configs"` | | -| extraConfigs | object | `{}` | Extra files to mount on `/app/pythonpath` | -| extraEnv | object | `{}` | Extra environment variables that will be passed into pods | -| extraEnvRaw | list | `[]` | Extra environment variables in RAW format that will be passed into pods | -| extraSecretEnv | object | `{}` | Extra environment variables to pass as secrets | -| extraSecrets | object | `{}` | Extra files to mount on `/app/pythonpath` as secrets | -| extraVolumeMounts | list | `[]` | | -| extraVolumes | list | `[]` | | -| fullnameOverride | string | `nil` | Provide a name to override the full names of resources | -| hostAliases | list | `[]` | Custom hostAliases for all superset pods # https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/ | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"apache/superset"` | | -| image.tag | string | `""` | | -| imagePullSecrets | list | `[]` | | -| ingress.annotations | object | `{}` | | -| ingress.enabled | bool | `false` | | -| ingress.extraHostsRaw | list | `[]` | | -| ingress.hosts[0] | string | `"chart-example.local"` | | -| ingress.ingressClassName | string | `nil` | | -| ingress.path | string | `"/"` | | -| ingress.pathType | string | `"ImplementationSpecific"` | | -| ingress.tls | list | `[]` | | -| init.adminUser.email | string | `"admin@superset.com"` | | -| init.adminUser.firstname | string | `"Superset"` | | -| init.adminUser.lastname | string | `"Admin"` | | -| init.adminUser.password | string | `"admin"` | | -| init.adminUser.username | string | `"admin"` | | -| init.affinity | object | `{}` | | -| init.command | list | a `superset_init.sh` command | Command | -| init.containerSecurityContext | object | `{}` | | -| init.createAdmin | bool | `true` | | -| init.enabled | bool | `true` | | -| init.initContainers | list | a container waiting for postgres | List of initContainers | -| init.initscript | string | a script to create admin user and initailize roles | A Superset init script | -| init.jobAnnotations."helm.sh/hook" | string | `"post-install,post-upgrade"` | | -| init.jobAnnotations."helm.sh/hook-delete-policy" | string | `"before-hook-creation"` | | -| init.loadExamples | bool | `false` | | -| init.podAnnotations | object | `{}` | | -| init.podSecurityContext | object | `{}` | | -| init.resources | object | `{}` | | -| init.tolerations | list | `[]` | | -| init.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to init job | -| initImage.pullPolicy | string | `"IfNotPresent"` | | -| initImage.repository | string | `"apache/superset"` | | -| initImage.tag | string | `"dockerize"` | | -| nameOverride | string | `nil` | Provide a name to override the name of the chart | -| nodeSelector | object | `{}` | | -| postgresql | object | see `values.yaml` | Configuration values for the postgresql dependency. ref: https://github.com/kubernetes/charts/blob/master/stable/postgresql/README.md | -| redis | object | see `values.yaml` | Configuration values for the Redis dependency. ref: https://github.com/bitnami/charts/blob/master/bitnami/redis More documentation can be found here: https://artifacthub.io/packages/helm/bitnami/redis | -| resources | object | `{}` | | -| runAsUser | int | `0` | User ID directive. This user must have enough permissions to run the bootstrap script Running containers as root is not recommended in production. Change this to another UID - e.g. 1000 to be more secure | -| service.annotations | object | `{}` | | -| service.loadBalancerIP | string | `nil` | | -| service.nodePort.http | int | `"nil"` | | -| service.port | int | `8088` | | -| service.type | string | `"ClusterIP"` | | -| serviceAccount.annotations | object | `{}` | | -| serviceAccount.create | bool | `false` | Create custom service account for Superset. If create: true and serviceAccountName is not provided, `superset.fullname` will be used. | -| serviceAccountName | string | `nil` | Specify service account name to be used | -| supersetCeleryBeat.affinity | object | `{}` | Affinity to be added to supersetCeleryBeat deployment | -| supersetCeleryBeat.command | list | a `celery beat` command | Command | -| supersetCeleryBeat.containerSecurityContext | object | `{}` | | -| supersetCeleryBeat.deploymentAnnotations | object | `{}` | Annotations to be added to supersetCeleryBeat deployment | -| supersetCeleryBeat.enabled | bool | `false` | This is only required if you intend to use alerts and reports | -| supersetCeleryBeat.forceReload | bool | `false` | If true, forces deployment to reload on each upgrade | -| supersetCeleryBeat.initContainers | list | a container waiting for postgres | List of init containers | -| supersetCeleryBeat.podAnnotations | object | `{}` | Annotations to be added to supersetCeleryBeat pods | -| supersetCeleryBeat.podLabels | object | `{}` | Labels to be added to supersetCeleryBeat pods | -| supersetCeleryBeat.podSecurityContext | object | `{}` | | -| supersetCeleryBeat.resources | object | `{}` | Resource settings for the CeleryBeat pods - these settings overwrite might existing values from the global resources object defined above. | -| supersetCeleryBeat.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetCeleryBeat deployments | -| supersetCeleryFlower.affinity | object | `{}` | Affinity to be added to supersetCeleryFlower deployment | -| supersetCeleryFlower.command | list | a `celery flower` command | Command | -| supersetCeleryFlower.containerSecurityContext | object | `{}` | | -| supersetCeleryFlower.deploymentAnnotations | object | `{}` | Annotations to be added to supersetCeleryFlower deployment | -| supersetCeleryFlower.enabled | bool | `false` | Enables a Celery flower deployment (management UI to monitor celery jobs) 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) flower>=1.0.0 requires Celery 5+ which Superset 1.5 does not support | -| supersetCeleryFlower.initContainers | list | a container waiting for postgres and redis | List of init containers | -| supersetCeleryFlower.livenessProbe.failureThreshold | int | `3` | | -| supersetCeleryFlower.livenessProbe.httpGet.path | string | `"/api/workers"` | | -| supersetCeleryFlower.livenessProbe.httpGet.port | string | `"flower"` | | -| supersetCeleryFlower.livenessProbe.initialDelaySeconds | int | `5` | | -| supersetCeleryFlower.livenessProbe.periodSeconds | int | `5` | | -| supersetCeleryFlower.livenessProbe.successThreshold | int | `1` | | -| supersetCeleryFlower.livenessProbe.timeoutSeconds | int | `1` | | -| supersetCeleryFlower.podAnnotations | object | `{}` | Annotations to be added to supersetCeleryFlower pods | -| supersetCeleryFlower.podLabels | object | `{}` | Labels to be added to supersetCeleryFlower pods | -| supersetCeleryFlower.podSecurityContext | object | `{}` | | -| supersetCeleryFlower.readinessProbe.failureThreshold | int | `3` | | -| supersetCeleryFlower.readinessProbe.httpGet.path | string | `"/api/workers"` | | -| supersetCeleryFlower.readinessProbe.httpGet.port | string | `"flower"` | | -| supersetCeleryFlower.readinessProbe.initialDelaySeconds | int | `5` | | -| supersetCeleryFlower.readinessProbe.periodSeconds | int | `5` | | -| supersetCeleryFlower.readinessProbe.successThreshold | int | `1` | | -| supersetCeleryFlower.readinessProbe.timeoutSeconds | int | `1` | | -| supersetCeleryFlower.replicaCount | int | `1` | | -| supersetCeleryFlower.resources | object | `{}` | Resource settings for the CeleryBeat pods - these settings overwrite might existing values from the global resources object defined above. | -| supersetCeleryFlower.service.annotations | object | `{}` | | -| supersetCeleryFlower.service.loadBalancerIP | string | `nil` | | -| supersetCeleryFlower.service.nodePort.http | int | `"nil"` | | -| supersetCeleryFlower.service.port | int | `5555` | | -| supersetCeleryFlower.service.type | string | `"ClusterIP"` | | -| supersetCeleryFlower.startupProbe.failureThreshold | int | `60` | | -| supersetCeleryFlower.startupProbe.httpGet.path | string | `"/api/workers"` | | -| supersetCeleryFlower.startupProbe.httpGet.port | string | `"flower"` | | -| supersetCeleryFlower.startupProbe.initialDelaySeconds | int | `5` | | -| supersetCeleryFlower.startupProbe.periodSeconds | int | `5` | | -| supersetCeleryFlower.startupProbe.successThreshold | int | `1` | | -| supersetCeleryFlower.startupProbe.timeoutSeconds | int | `1` | | -| supersetCeleryFlower.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetCeleryFlower deployments | -| supersetNode.affinity | object | `{}` | Affinity to be added to supersetNode deployment | -| supersetNode.command | list | See `values.yaml` | Startup command | -| supersetNode.connections.db_host | string | `"{{ .Release.Name }}-postgresql"` | | -| supersetNode.connections.db_name | string | `"superset"` | | -| supersetNode.connections.db_pass | string | `"superset"` | | -| supersetNode.connections.db_port | string | `"5432"` | | -| supersetNode.connections.db_user | string | `"superset"` | | -| supersetNode.connections.redis_host | string | `"{{ .Release.Name }}-redis-headless"` | Change in case of bringing your own redis and then also set redis.enabled:false | -| supersetNode.connections.redis_port | string | `"6379"` | | -| supersetNode.containerSecurityContext | object | `{}` | | -| supersetNode.deploymentAnnotations | object | `{}` | Annotations to be added to supersetNode deployment | -| supersetNode.deploymentLabels | object | `{}` | Labels to be added to supersetNode deployment | -| supersetNode.env | object | `{}` | | -| supersetNode.extraContainers | list | `[]` | Launch additional containers into supersetNode pod | -| supersetNode.forceReload | bool | `false` | If true, forces deployment to reload on each upgrade | -| supersetNode.initContainers | list | a container waiting for postgres | Init containers | -| supersetNode.livenessProbe.failureThreshold | int | `3` | | -| supersetNode.livenessProbe.httpGet.path | string | `"/health"` | | -| supersetNode.livenessProbe.httpGet.port | string | `"http"` | | -| supersetNode.livenessProbe.initialDelaySeconds | int | `15` | | -| supersetNode.livenessProbe.periodSeconds | int | `15` | | -| supersetNode.livenessProbe.successThreshold | int | `1` | | -| supersetNode.livenessProbe.timeoutSeconds | int | `1` | | -| supersetNode.podAnnotations | object | `{}` | Annotations to be added to supersetNode pods | -| supersetNode.podLabels | object | `{}` | Labels to be added to supersetNode pods | -| supersetNode.podSecurityContext | object | `{}` | | -| supersetNode.readinessProbe.failureThreshold | int | `3` | | -| supersetNode.readinessProbe.httpGet.path | string | `"/health"` | | -| supersetNode.readinessProbe.httpGet.port | string | `"http"` | | -| supersetNode.readinessProbe.initialDelaySeconds | int | `15` | | -| supersetNode.readinessProbe.periodSeconds | int | `15` | | -| supersetNode.readinessProbe.successThreshold | int | `1` | | -| supersetNode.readinessProbe.timeoutSeconds | int | `1` | | -| supersetNode.replicaCount | int | `1` | | -| supersetNode.resources | object | `{}` | Resource settings for the supersetNode pods - these settings overwrite might existing values from the global resources object defined above. | -| supersetNode.startupProbe.failureThreshold | int | `60` | | -| supersetNode.startupProbe.httpGet.path | string | `"/health"` | | -| supersetNode.startupProbe.httpGet.port | string | `"http"` | | -| supersetNode.startupProbe.initialDelaySeconds | int | `15` | | -| supersetNode.startupProbe.periodSeconds | int | `5` | | -| supersetNode.startupProbe.successThreshold | int | `1` | | -| supersetNode.startupProbe.timeoutSeconds | int | `1` | | -| supersetNode.strategy | object | `{}` | | -| supersetNode.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetNode deployments | -| supersetWebsockets.affinity | object | `{}` | Affinity to be added to supersetWebsockets deployment | -| supersetWebsockets.command | list | `[]` | | -| supersetWebsockets.config | object | see `values.yaml` | The config.json to pass to the server, see https://github.com/apache/superset/tree/master/superset-websocket 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 | -| supersetWebsockets.containerSecurityContext | object | `{}` | | -| supersetWebsockets.deploymentAnnotations | object | `{}` | | -| supersetWebsockets.enabled | bool | `false` | This is only required if you intend to use `GLOBAL_ASYNC_QUERIES` in `ws` mode see https://github.com/apache/superset/blob/master/CONTRIBUTING.md#async-chart-queries | -| supersetWebsockets.image.pullPolicy | string | `"IfNotPresent"` | | -| supersetWebsockets.image.repository | string | `"oneacrefund/superset-websocket"` | There is no official image (yet), this one is community-supported | -| supersetWebsockets.image.tag | string | `"latest"` | | -| supersetWebsockets.ingress.path | string | `"/ws"` | | -| supersetWebsockets.ingress.pathType | string | `"Prefix"` | | -| supersetWebsockets.livenessProbe.failureThreshold | int | `3` | | -| supersetWebsockets.livenessProbe.httpGet.path | string | `"/health"` | | -| supersetWebsockets.livenessProbe.httpGet.port | string | `"ws"` | | -| supersetWebsockets.livenessProbe.initialDelaySeconds | int | `5` | | -| supersetWebsockets.livenessProbe.periodSeconds | int | `5` | | -| supersetWebsockets.livenessProbe.successThreshold | int | `1` | | -| supersetWebsockets.livenessProbe.timeoutSeconds | int | `1` | | -| supersetWebsockets.podAnnotations | object | `{}` | | -| supersetWebsockets.podLabels | object | `{}` | | -| supersetWebsockets.podSecurityContext | object | `{}` | | -| supersetWebsockets.readinessProbe.failureThreshold | int | `3` | | -| supersetWebsockets.readinessProbe.httpGet.path | string | `"/health"` | | -| supersetWebsockets.readinessProbe.httpGet.port | string | `"ws"` | | -| supersetWebsockets.readinessProbe.initialDelaySeconds | int | `5` | | -| supersetWebsockets.readinessProbe.periodSeconds | int | `5` | | -| supersetWebsockets.readinessProbe.successThreshold | int | `1` | | -| supersetWebsockets.readinessProbe.timeoutSeconds | int | `1` | | -| supersetWebsockets.replicaCount | int | `1` | | -| supersetWebsockets.resources | object | `{}` | | -| supersetWebsockets.service.annotations | object | `{}` | | -| supersetWebsockets.service.loadBalancerIP | string | `nil` | | -| supersetWebsockets.service.nodePort.http | int | `"nil"` | | -| supersetWebsockets.service.port | int | `8080` | | -| supersetWebsockets.service.type | string | `"ClusterIP"` | | -| supersetWebsockets.startupProbe.failureThreshold | int | `60` | | -| supersetWebsockets.startupProbe.httpGet.path | string | `"/health"` | | -| supersetWebsockets.startupProbe.httpGet.port | string | `"ws"` | | -| supersetWebsockets.startupProbe.initialDelaySeconds | int | `5` | | -| supersetWebsockets.startupProbe.periodSeconds | int | `5` | | -| supersetWebsockets.startupProbe.successThreshold | int | `1` | | -| supersetWebsockets.startupProbe.timeoutSeconds | int | `1` | | -| supersetWebsockets.strategy | object | `{}` | | -| supersetWebsockets.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetWebsockets deployments | -| supersetWorker.affinity | object | `{}` | Affinity to be added to supersetWorker deployment | -| supersetWorker.command | list | a `celery worker` command | Worker startup command | -| supersetWorker.containerSecurityContext | object | `{}` | | -| supersetWorker.deploymentAnnotations | object | `{}` | Annotations to be added to supersetWorker deployment | -| supersetWorker.deploymentLabels | object | `{}` | Labels to be added to supersetWorker deployment | -| supersetWorker.extraContainers | list | `[]` | Launch additional containers into supersetWorker pod | -| supersetWorker.forceReload | bool | `false` | If true, forces deployment to reload on each upgrade | -| supersetWorker.initContainers | list | a container waiting for postgres and redis | Init container | -| supersetWorker.livenessProbe.exec.command | list | a `celery inspect ping` command | Liveness probe command | -| supersetWorker.livenessProbe.failureThreshold | int | `3` | | -| supersetWorker.livenessProbe.initialDelaySeconds | int | `120` | | -| supersetWorker.livenessProbe.periodSeconds | int | `60` | | -| supersetWorker.livenessProbe.successThreshold | int | `1` | | -| supersetWorker.livenessProbe.timeoutSeconds | int | `60` | | -| supersetWorker.podAnnotations | object | `{}` | Annotations to be added to supersetWorker pods | -| supersetWorker.podLabels | object | `{}` | Labels to be added to supersetWorker pods | -| supersetWorker.podSecurityContext | object | `{}` | | -| supersetWorker.readinessProbe | object | `{}` | No startup/readiness probes by default since we don't really care about its startup time (it doesn't serve traffic) | -| supersetWorker.replicaCount | int | `1` | | -| supersetWorker.resources | object | `{}` | Resource settings for the supersetWorker pods - these settings overwrite might existing values from the global resources object defined above. | -| supersetWorker.startupProbe | object | `{}` | No startup/readiness probes by default since we don't really care about its startup time (it doesn't serve traffic) | -| supersetWorker.strategy | object | `{}` | | -| supersetWorker.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetWorker deployments | -| tolerations | list | `[]` | | -| topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to all deployments | +| Key | Type | Default | Description | +| ------------------------------------------------------- | ------ | -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| affinity | object | `{}` | | +| bootstrapScript | string | see `values.yaml` | Install additional packages and do any other bootstrap configuration in this script For production clusters it's recommended to build own image with this step done in CI | +| configFromSecret | string | `"{{ template \"superset.fullname\" . }}-config"` | The name of the secret which we will use to generate a superset_config.py file Note: this secret must have the key superset_config.py in it and can include other files as well | +| configMountPath | string | `"/app/pythonpath"` | | +| configOverrides | object | `{}` | A dictionary of overrides to append at the end of superset_config.py - the name does not matter WARNING: the order is not guaranteed Files can be passed as helm --set-file configOverrides.my-override=my-file.py | +| configOverridesFiles | object | `{}` | Same as above but the values are files | +| envFromSecret | string | `"{{ template \"superset.fullname\" . }}-env"` | The name of the secret which we will use to populate env vars in deployed pods This can be useful for secret keys, etc. | +| envFromSecrets | list | `[]` | This can be a list of templated strings | +| extraConfigMountPath | string | `"/app/configs"` | | +| extraConfigs | object | `{}` | Extra files to mount on `/app/pythonpath` | +| extraEnv | object | `{}` | Extra environment variables that will be passed into pods | +| extraEnvRaw | list | `[]` | Extra environment variables in RAW format that will be passed into pods | +| extraSecretEnv | object | `{}` | Extra environment variables to pass as secrets | +| extraSecrets | object | `{}` | Extra files to mount on `/app/pythonpath` as secrets | +| extraVolumeMounts | list | `[]` | | +| extraVolumes | list | `[]` | | +| fullnameOverride | string | `nil` | Provide a name to override the full names of resources | +| hostAliases | list | `[]` | Custom hostAliases for all superset pods # https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/ | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"apachesuperset.docker.scarf.sh/apache/superset"` | | +| image.tag | string | `""` | | +| imagePullSecrets | list | `[]` | | +| ingress.annotations | object | `{}` | | +| ingress.enabled | bool | `false` | | +| ingress.extraHostsRaw | list | `[]` | | +| ingress.hosts[0] | string | `"chart-example.local"` | | +| ingress.ingressClassName | string | `nil` | | +| ingress.path | string | `"/"` | | +| ingress.pathType | string | `"ImplementationSpecific"` | | +| ingress.tls | list | `[]` | | +| init.adminUser.email | string | `"admin@superset.com"` | | +| init.adminUser.firstname | string | `"Superset"` | | +| init.adminUser.lastname | string | `"Admin"` | | +| init.adminUser.password | string | `"admin"` | | +| init.adminUser.username | string | `"admin"` | | +| init.affinity | object | `{}` | | +| init.command | list | a `superset_init.sh` command | Command | +| init.containerSecurityContext | object | `{}` | | +| init.createAdmin | bool | `true` | | +| init.enabled | bool | `true` | | +| init.initContainers | list | a container waiting for postgres | List of initContainers | +| init.initscript | string | a script to create admin user and initailize roles | A Superset init script | +| init.jobAnnotations."helm.sh/hook" | string | `"post-install,post-upgrade"` | | +| init.jobAnnotations."helm.sh/hook-delete-policy" | string | `"before-hook-creation"` | | +| init.loadExamples | bool | `false` | | +| init.podAnnotations | object | `{}` | | +| init.podSecurityContext | object | `{}` | | +| init.resources | object | `{}` | | +| init.tolerations | list | `[]` | | +| init.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to init job | +| initImage.pullPolicy | string | `"IfNotPresent"` | | +| initImage.repository | string | `"apache/superset"` | | +| initImage.tag | string | `"dockerize"` | | +| nameOverride | string | `nil` | Provide a name to override the name of the chart | +| nodeSelector | object | `{}` | | +| postgresql | object | see `values.yaml` | Configuration values for the postgresql dependency. ref: https://github.com/kubernetes/charts/blob/master/stable/postgresql/README.md | +| redis | object | see `values.yaml` | Configuration values for the Redis dependency. ref: https://github.com/bitnami/charts/blob/master/bitnami/redis More documentation can be found here: https://artifacthub.io/packages/helm/bitnami/redis | +| resources | object | `{}` | | +| runAsUser | int | `0` | User ID directive. This user must have enough permissions to run the bootstrap script Running containers as root is not recommended in production. Change this to another UID - e.g. 1000 to be more secure | +| service.annotations | object | `{}` | | +| service.loadBalancerIP | string | `nil` | | +| service.nodePort.http | int | `"nil"` | | +| service.port | int | `8088` | | +| service.type | string | `"ClusterIP"` | | +| serviceAccount.annotations | object | `{}` | | +| serviceAccount.create | bool | `false` | Create custom service account for Superset. If create: true and serviceAccountName is not provided, `superset.fullname` will be used. | +| serviceAccountName | string | `nil` | Specify service account name to be used | +| supersetCeleryBeat.affinity | object | `{}` | Affinity to be added to supersetCeleryBeat deployment | +| supersetCeleryBeat.command | list | a `celery beat` command | Command | +| supersetCeleryBeat.containerSecurityContext | object | `{}` | | +| supersetCeleryBeat.deploymentAnnotations | object | `{}` | Annotations to be added to supersetCeleryBeat deployment | +| supersetCeleryBeat.enabled | bool | `false` | This is only required if you intend to use alerts and reports | +| supersetCeleryBeat.forceReload | bool | `false` | If true, forces deployment to reload on each upgrade | +| supersetCeleryBeat.initContainers | list | a container waiting for postgres | List of init containers | +| supersetCeleryBeat.podAnnotations | object | `{}` | Annotations to be added to supersetCeleryBeat pods | +| supersetCeleryBeat.podLabels | object | `{}` | Labels to be added to supersetCeleryBeat pods | +| supersetCeleryBeat.podSecurityContext | object | `{}` | | +| supersetCeleryBeat.resources | object | `{}` | Resource settings for the CeleryBeat pods - these settings overwrite might existing values from the global resources object defined above. | +| supersetCeleryBeat.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetCeleryBeat deployments | +| supersetCeleryFlower.affinity | object | `{}` | Affinity to be added to supersetCeleryFlower deployment | +| supersetCeleryFlower.command | list | a `celery flower` command | Command | +| supersetCeleryFlower.containerSecurityContext | object | `{}` | | +| supersetCeleryFlower.deploymentAnnotations | object | `{}` | Annotations to be added to supersetCeleryFlower deployment | +| supersetCeleryFlower.enabled | bool | `false` | Enables a Celery flower deployment (management UI to monitor celery jobs) 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) flower>=1.0.0 requires Celery 5+ which Superset 1.5 does not support | +| supersetCeleryFlower.initContainers | list | a container waiting for postgres and redis | List of init containers | +| supersetCeleryFlower.livenessProbe.failureThreshold | int | `3` | | +| supersetCeleryFlower.livenessProbe.httpGet.path | string | `"/api/workers"` | | +| supersetCeleryFlower.livenessProbe.httpGet.port | string | `"flower"` | | +| supersetCeleryFlower.livenessProbe.initialDelaySeconds | int | `5` | | +| supersetCeleryFlower.livenessProbe.periodSeconds | int | `5` | | +| supersetCeleryFlower.livenessProbe.successThreshold | int | `1` | | +| supersetCeleryFlower.livenessProbe.timeoutSeconds | int | `1` | | +| supersetCeleryFlower.podAnnotations | object | `{}` | Annotations to be added to supersetCeleryFlower pods | +| supersetCeleryFlower.podLabels | object | `{}` | Labels to be added to supersetCeleryFlower pods | +| supersetCeleryFlower.podSecurityContext | object | `{}` | | +| supersetCeleryFlower.readinessProbe.failureThreshold | int | `3` | | +| supersetCeleryFlower.readinessProbe.httpGet.path | string | `"/api/workers"` | | +| supersetCeleryFlower.readinessProbe.httpGet.port | string | `"flower"` | | +| supersetCeleryFlower.readinessProbe.initialDelaySeconds | int | `5` | | +| supersetCeleryFlower.readinessProbe.periodSeconds | int | `5` | | +| supersetCeleryFlower.readinessProbe.successThreshold | int | `1` | | +| supersetCeleryFlower.readinessProbe.timeoutSeconds | int | `1` | | +| supersetCeleryFlower.replicaCount | int | `1` | | +| supersetCeleryFlower.resources | object | `{}` | Resource settings for the CeleryBeat pods - these settings overwrite might existing values from the global resources object defined above. | +| supersetCeleryFlower.service.annotations | object | `{}` | | +| supersetCeleryFlower.service.loadBalancerIP | string | `nil` | | +| supersetCeleryFlower.service.nodePort.http | int | `"nil"` | | +| supersetCeleryFlower.service.port | int | `5555` | | +| supersetCeleryFlower.service.type | string | `"ClusterIP"` | | +| supersetCeleryFlower.startupProbe.failureThreshold | int | `60` | | +| supersetCeleryFlower.startupProbe.httpGet.path | string | `"/api/workers"` | | +| supersetCeleryFlower.startupProbe.httpGet.port | string | `"flower"` | | +| supersetCeleryFlower.startupProbe.initialDelaySeconds | int | `5` | | +| supersetCeleryFlower.startupProbe.periodSeconds | int | `5` | | +| supersetCeleryFlower.startupProbe.successThreshold | int | `1` | | +| supersetCeleryFlower.startupProbe.timeoutSeconds | int | `1` | | +| supersetCeleryFlower.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetCeleryFlower deployments | +| supersetNode.affinity | object | `{}` | Affinity to be added to supersetNode deployment | +| supersetNode.command | list | See `values.yaml` | Startup command | +| supersetNode.connections.db_host | string | `"{{ .Release.Name }}-postgresql"` | | +| supersetNode.connections.db_name | string | `"superset"` | | +| supersetNode.connections.db_pass | string | `"superset"` | | +| supersetNode.connections.db_port | string | `"5432"` | | +| supersetNode.connections.db_user | string | `"superset"` | | +| supersetNode.connections.redis_host | string | `"{{ .Release.Name }}-redis-headless"` | Change in case of bringing your own redis and then also set redis.enabled:false | +| supersetNode.connections.redis_port | string | `"6379"` | | +| supersetNode.containerSecurityContext | object | `{}` | | +| supersetNode.deploymentAnnotations | object | `{}` | Annotations to be added to supersetNode deployment | +| supersetNode.deploymentLabels | object | `{}` | Labels to be added to supersetNode deployment | +| supersetNode.env | object | `{}` | | +| supersetNode.extraContainers | list | `[]` | Launch additional containers into supersetNode pod | +| supersetNode.forceReload | bool | `false` | If true, forces deployment to reload on each upgrade | +| supersetNode.initContainers | list | a container waiting for postgres | Init containers | +| supersetNode.livenessProbe.failureThreshold | int | `3` | | +| supersetNode.livenessProbe.httpGet.path | string | `"/health"` | | +| supersetNode.livenessProbe.httpGet.port | string | `"http"` | | +| supersetNode.livenessProbe.initialDelaySeconds | int | `15` | | +| supersetNode.livenessProbe.periodSeconds | int | `15` | | +| supersetNode.livenessProbe.successThreshold | int | `1` | | +| supersetNode.livenessProbe.timeoutSeconds | int | `1` | | +| supersetNode.podAnnotations | object | `{}` | Annotations to be added to supersetNode pods | +| supersetNode.podLabels | object | `{}` | Labels to be added to supersetNode pods | +| supersetNode.podSecurityContext | object | `{}` | | +| supersetNode.readinessProbe.failureThreshold | int | `3` | | +| supersetNode.readinessProbe.httpGet.path | string | `"/health"` | | +| supersetNode.readinessProbe.httpGet.port | string | `"http"` | | +| supersetNode.readinessProbe.initialDelaySeconds | int | `15` | | +| supersetNode.readinessProbe.periodSeconds | int | `15` | | +| supersetNode.readinessProbe.successThreshold | int | `1` | | +| supersetNode.readinessProbe.timeoutSeconds | int | `1` | | +| supersetNode.replicaCount | int | `1` | | +| supersetNode.resources | object | `{}` | Resource settings for the supersetNode pods - these settings overwrite might existing values from the global resources object defined above. | +| supersetNode.startupProbe.failureThreshold | int | `60` | | +| supersetNode.startupProbe.httpGet.path | string | `"/health"` | | +| supersetNode.startupProbe.httpGet.port | string | `"http"` | | +| supersetNode.startupProbe.initialDelaySeconds | int | `15` | | +| supersetNode.startupProbe.periodSeconds | int | `5` | | +| supersetNode.startupProbe.successThreshold | int | `1` | | +| supersetNode.startupProbe.timeoutSeconds | int | `1` | | +| supersetNode.strategy | object | `{}` | | +| supersetNode.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetNode deployments | +| supersetWebsockets.affinity | object | `{}` | Affinity to be added to supersetWebsockets deployment | +| supersetWebsockets.command | list | `[]` | | +| supersetWebsockets.config | object | see `values.yaml` | The config.json to pass to the server, see https://github.com/apache/superset/tree/master/superset-websocket 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 | +| supersetWebsockets.containerSecurityContext | object | `{}` | | +| supersetWebsockets.deploymentAnnotations | object | `{}` | | +| supersetWebsockets.enabled | bool | `false` | This is only required if you intend to use `GLOBAL_ASYNC_QUERIES` in `ws` mode see https://github.com/apache/superset/blob/master/CONTRIBUTING.md#async-chart-queries | +| supersetWebsockets.image.pullPolicy | string | `"IfNotPresent"` | | +| supersetWebsockets.image.repository | string | `"oneacrefund/superset-websocket"` | There is no official image (yet), this one is community-supported | +| supersetWebsockets.image.tag | string | `"latest"` | | +| supersetWebsockets.ingress.path | string | `"/ws"` | | +| supersetWebsockets.ingress.pathType | string | `"Prefix"` | | +| supersetWebsockets.livenessProbe.failureThreshold | int | `3` | | +| supersetWebsockets.livenessProbe.httpGet.path | string | `"/health"` | | +| supersetWebsockets.livenessProbe.httpGet.port | string | `"ws"` | | +| supersetWebsockets.livenessProbe.initialDelaySeconds | int | `5` | | +| supersetWebsockets.livenessProbe.periodSeconds | int | `5` | | +| supersetWebsockets.livenessProbe.successThreshold | int | `1` | | +| supersetWebsockets.livenessProbe.timeoutSeconds | int | `1` | | +| supersetWebsockets.podAnnotations | object | `{}` | | +| supersetWebsockets.podLabels | object | `{}` | | +| supersetWebsockets.podSecurityContext | object | `{}` | | +| supersetWebsockets.readinessProbe.failureThreshold | int | `3` | | +| supersetWebsockets.readinessProbe.httpGet.path | string | `"/health"` | | +| supersetWebsockets.readinessProbe.httpGet.port | string | `"ws"` | | +| supersetWebsockets.readinessProbe.initialDelaySeconds | int | `5` | | +| supersetWebsockets.readinessProbe.periodSeconds | int | `5` | | +| supersetWebsockets.readinessProbe.successThreshold | int | `1` | | +| supersetWebsockets.readinessProbe.timeoutSeconds | int | `1` | | +| supersetWebsockets.replicaCount | int | `1` | | +| supersetWebsockets.resources | object | `{}` | | +| supersetWebsockets.service.annotations | object | `{}` | | +| supersetWebsockets.service.loadBalancerIP | string | `nil` | | +| supersetWebsockets.service.nodePort.http | int | `"nil"` | | +| supersetWebsockets.service.port | int | `8080` | | +| supersetWebsockets.service.type | string | `"ClusterIP"` | | +| supersetWebsockets.startupProbe.failureThreshold | int | `60` | | +| supersetWebsockets.startupProbe.httpGet.path | string | `"/health"` | | +| supersetWebsockets.startupProbe.httpGet.port | string | `"ws"` | | +| supersetWebsockets.startupProbe.initialDelaySeconds | int | `5` | | +| supersetWebsockets.startupProbe.periodSeconds | int | `5` | | +| supersetWebsockets.startupProbe.successThreshold | int | `1` | | +| supersetWebsockets.startupProbe.timeoutSeconds | int | `1` | | +| supersetWebsockets.strategy | object | `{}` | | +| supersetWebsockets.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetWebsockets deployments | +| supersetWorker.affinity | object | `{}` | Affinity to be added to supersetWorker deployment | +| supersetWorker.command | list | a `celery worker` command | Worker startup command | +| supersetWorker.containerSecurityContext | object | `{}` | | +| supersetWorker.deploymentAnnotations | object | `{}` | Annotations to be added to supersetWorker deployment | +| supersetWorker.deploymentLabels | object | `{}` | Labels to be added to supersetWorker deployment | +| supersetWorker.extraContainers | list | `[]` | Launch additional containers into supersetWorker pod | +| supersetWorker.forceReload | bool | `false` | If true, forces deployment to reload on each upgrade | +| supersetWorker.initContainers | list | a container waiting for postgres and redis | Init container | +| supersetWorker.livenessProbe.exec.command | list | a `celery inspect ping` command | Liveness probe command | +| supersetWorker.livenessProbe.failureThreshold | int | `3` | | +| supersetWorker.livenessProbe.initialDelaySeconds | int | `120` | | +| supersetWorker.livenessProbe.periodSeconds | int | `60` | | +| supersetWorker.livenessProbe.successThreshold | int | `1` | | +| supersetWorker.livenessProbe.timeoutSeconds | int | `60` | | +| supersetWorker.podAnnotations | object | `{}` | Annotations to be added to supersetWorker pods | +| supersetWorker.podLabels | object | `{}` | Labels to be added to supersetWorker pods | +| supersetWorker.podSecurityContext | object | `{}` | | +| supersetWorker.readinessProbe | object | `{}` | No startup/readiness probes by default since we don't really care about its startup time (it doesn't serve traffic) | +| supersetWorker.replicaCount | int | `1` | | +| supersetWorker.resources | object | `{}` | Resource settings for the supersetWorker pods - these settings overwrite might existing values from the global resources object defined above. | +| supersetWorker.startupProbe | object | `{}` | No startup/readiness probes by default since we don't really care about its startup time (it doesn't serve traffic) | +| supersetWorker.strategy | object | `{}` | | +| supersetWorker.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetWorker deployments | +| tolerations | list | `[]` | | +| topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to all deployments | diff --git a/helm/superset/values.yaml b/helm/superset/values.yaml index fa2180aa607..7fe7e754120 100644 --- a/helm/superset/values.yaml +++ b/helm/superset/values.yaml @@ -176,7 +176,7 @@ configMountPath: "/app/pythonpath" extraConfigMountPath: "/app/configs" image: - repository: apache/superset + repository: apachesuperset.docker.scarf.sh/apache/superset tag: "" pullPolicy: IfNotPresent