- Document Helm deployed RBAC permissions and remove unnecessary permissions (#717).
- BREAKING:
configOverridesnow only accepts the supported config file namesuperset_config.py. Previously arbitrary keys were silently accepted but ignored (#719). - Bump
stackable-operatorto 0.110.0 andkubeto 3.1.0 (#719). - Support setting
clientAuthenticationMethodfor OIDC authentication. The value is passed through to the Flask-AppBuilder config astoken_endpoint_auth_method(#719).
- Add conversion webhook (#702).
- Add support for Superset 6.0.0 (#680, #695).
- Support objectOverrides using
.spec.objectOverrides. See objectOverrides concepts page for details (#693).
- Bump stackable-operator to 0.108.0, snafu to 0.9, strum to 0.28 (#706, #708).
- Gracefully shutdown all concurrent tasks by forwarding the SIGTERM signal (#699).
- Bump testing-tools to
0.3.0-stackable0.0.0-dev(#691).
- Remove support for Superset 4.0.2 and 4.1.2 (#695).
- Fix "404 page not found" error for the initial object list (#708).
- Add end-of-support checker which can be controlled with environment variables and CLI arguments (#670).
EOS_CHECK_MODE(--eos-check-mode) to set the EoS check mode. Currently, only "offline" is supported.EOS_INTERVAL(--eos-interval) to set the interval in which the operator checks if it is EoS.EOS_DISABLED(--eos-disabled) to disable the EoS checker completely.
- Helm: Allow Pod
priorityClassNameto be configured (#664). - Add version
4.1.4(#669). - Add
prometheus.io/path|port|schemeannotations to metrics service (#671).
- Fix container not starting because Superset was starting too slow and was killed because a failing liveness probe. We now add a proper startup probe, which allows Superset to take longer to start up (#654, #663).
- Adds new telemetry CLI arguments and environment variables (#623).
- Use
--file-log-max-files(orFILE_LOG_MAX_FILES) to limit the number of log files kept. - Use
--file-log-rotation-period(orFILE_LOG_ROTATION_PERIOD) to configure the frequency of rotation. - Use
--console-log-format(orCONSOLE_LOG_FORMAT) to set the format toplain(default) orjson.
- Use
- BREAKING: Added listener support for Superset (#625).
- Add internal headless service in addition to the metrics service and move listener logic to listener.rs (#644)
- Add RBAC rule to helm template for automatic cluster domain detection (#646).
- BREAKING: Replace stackable-operator
initialize_loggingwith stackable-telemetryTracing(#610, #617, #623).- The console log level was set by
SUPERSET_OPERATOR_LOG, and is now set byCONSOLE_LOG_LEVEL. - The file log level was set by
SUPERSET_OPERATOR_LOG, and is now set byFILE_LOG_LEVEL. - The file log directory was set by
SUPERSET_OPERATOR_LOG_DIRECTORY, and is now set byFILE_LOG_DIRECTORY(or via--file-log-directory <DIRECTORY>). - Replace stackable-operator
print_startup_stringwithtracing::info!with fields.
- The console log level was set by
- BREAKING: Inject the vector aggregator address into the vector config using the env var
VECTOR_AGGREGATOR_ADDRESSinstead of having the operator write it to the vector config (#609). - test: Bump to Vector
0.46.1(#628). - test: Bump OPA to
1.4.2(#631). - Use versioned common structs (#635).
- BREAKING: Previously this operator would hardcode the UID and GID of the Pods being created to 1000/0, this has changed now (#637)
- The
runAsUserandrunAsGroupfields will not be set anymore by the operator - The defaults from the docker images itself will now apply, which will be different from 1000/0 going forward
- This is marked as breaking because tools and policies might exist, which require these fields to be set
- The
- Changed listener class to be role-only (#643).
- BREAKING: Bump stackable-operator to 0.94.0 and update other dependencies (#646).
- The default Kubernetes cluster domain name is now fetched from the kubelet API unless explicitly configured.
- This requires operators to have the RBAC permission to get nodes/proxy in the apiGroup "". The helm-chart takes care of this.
- The CLI argument
--kubernetes-node-nameor env variableKUBERNETES_NODE_NAMEneeds to be set. The helm-chart takes care of this.
- The operator helm-chart now grants RBAC
patchpermissions onevents.k8s.io/events, so events can be aggregated (e.g. "error happened 10 times over the last 5 minutes") (#649).
- Use
jsonfile extension for log files (#615). - Fix a bug where changes to ConfigMaps that are referenced in the SupersetCluster spec didn't trigger a reconciliation (#609).
- Allow uppercase characters in domain names (#646).
- Remove the
lastUpdateTimefield from the stacklet status (#646). - Remove role binding to legacy service accounts (#646).
- Run a
containerdebugprocess in the background of each Superset container to collect debugging information (#578). - Aggregate emitted Kubernetes events on the CustomResources (#585).
- Support OPA role mapping as optional custom security manager for Superset (#582).
- Support for version
4.1.1(#595).
- Bump
stackable-operatorto 0.87.0 (#602). - Default to OCI for image metadata and product image selection (#586).
- Fix OIDC endpoint construction in case the
rootPathdoes have a trailing slash (#569). - BREAKING: Use distinct ServiceAccounts for the Stacklets, so that multiple Stacklets can be deployed in one namespace. Existing Stacklets will use the newly created ServiceAccounts after restart (#568).
- Allowing arbitrary python code as EXPERIMENTAL_FILE_HEADER and EXPERIMENTAL_FILE_FOOTER in superset_config.py (#530).
- The operator can now run on Kubernetes clusters using a non-default cluster domain.
Use the env var
KUBERNETES_CLUSTER_DOMAINor the operator Helm chart propertykubernetesClusterDomainto set a non-default cluster domain (#549).
- Reduce CRD size from
472KBto45KBby accepting arbitrary YAML input instead of the underlying schema for the following fields (#528):podOverridesaffinity
- Invalid
SupersetCluster,DruidConnectionorAuthenticationClassobjects don't stop the operator from reconciling (#551).
- Support for versions
3.1.3and4.0.2(#509).
- Bump
stackable-operatorto 0.70.0,product-configto 0.7.0, and other dependencies (#511).
- Don't print Superset admin credentials during startup (#483).
- Fix entrypoint to not throw
prepare_signal_handlers: command not foundin case DB initialization fails (#485). - Processing of corrupted log events fixed; If errors occur, the error messages are added to the log event (#502).
- Removed unsupported versions
2.1.1,3.0.1and3.0.3(#509).
- Improved CRD docs (#431).
- Helm: support labels in values.yaml (#448).
- Add support for OpenID Connect (#423).
- Support versions
2.1.3,3.0.3,3.1.0(#457).
- Raise memory requests and limits for Superset pods to 2Gi (#468).
- BREAKING: Fixed various issues in the CRD structure.
clusterConfig.credentialsSecretis now mandatory (#429).
- Removed support for version
2.1.0(#457).
- Default stackableVersion to operator version (#390).
- Support PodDisruptionBudgets (#407).
- Added support for versions 2.1.1, 3.0.1 (#415).
- Support graceful shutdown (#422).
vector0.26.0->0.33.0(#391, #415).operator-rs0.44.0->0.55.0(#390, #407, #415).- BREAKING: Removed SupersetDB object, since it created some problems when reinstalling or upgrading a Superset cluster. Instead, the initialization of the database was moved to the startup phase of each Superset pod. To make sure the initialization does not run in parallel, the
PodManagementPolicywas set toOrderedReadyand liveness/readiness probes were added. The.spec.clusterConfig.loadExamplesOnInitoption was removed from the CRD, because loading the examples at every startup caused problems in certain scenarios, e.g. after an upgrade from Superset 1.5.3 to 2.1.0 (#396).
- BREAKING: Rename Service port name from
supersettohttpfor consistency reasons. This change should normally not be breaking, as we only change the name, not the port. However, there might be some e.g. Ingresses that rely on the port name and need to be updated (#394). - Fixed config override support (#415).
- Removed support for versions 1.3.2, 1.4.1, 1.4.2, 1.5.1, 1.5.3, 2.0.1 (#415).
- Added support for Superset versions
1.4.2,1.5.3,2.0.1and2.1.0(#362). - Generate OLM bundle for Release 23.4.0 (#364).
- Missing CRD defaults for
status.conditionsfield (#367). - Set explicit resources on all containers (#371).
- Support podOverrides (#377).
operator-rs0.40.2->0.44.0(#360, #371, #383).- Use 0.0.0-dev product images for testing (#361).
- Use testing-tools 0.2.0 (#361).
- Added kuttl test suites (#373).
- [BREAKING] Moved all top level config options to
clusterConfig. Authentication is now provided via an array of AuthenticationClasses and additional properties (#379).
- Operator now errors out when
credentialsSecretis missing (#375). - Increase the size limit of the log volume (#383).
- Log aggregation added (#326).
- Deploy default and support custom affinities (#337).
- Extend cluster resources for status and cluster operation (paused, stopped) (#348)
- Cluster status conditions (#349)
- [BREAKING]: Support specifying Service type by moving
serviceType(which was an experimental feature) toclusterConfig.listenerClass. This enables us to later switch non-breaking to usingListenerClassesfor the exposure of Services. This change is breaking, because - for security reasons - we default to thecluster-internalListenerClass. If you need your cluster to be accessible from outside of Kubernetes you need to setclusterConfig.listenerClasstoexternal-unstableorexternal-stable(#350). operator-rs0.31.0->0.35.0->0.40.2(#322, #326, #352).- Bumped stackable image versions to "23.4.0-rc2" (#322, #326).
- Fragmented
SupersetConfig(#323). - Restructured documentation (#344).
- Create
ServiceAccountfor Superset clusters. Usebuild_rbac_resources()from operator-rs (#352)
operator-rs0.27.1->0.31.0(#306, #297, #311)- Fixed the RoleGroup
selector. It was not used before. (#306) - Updated stackable image versions (#295)
- [BREAKING] Use Product image selection instead of version (#304)
spec.versionhas been replaced byspec.imagespec.statsdExporterVersionhas been removed, the statsd-exporter is now part of the images itself
- Refactored LDAP authentication handling to use functionality from the
LdapAuthenticationProvider(#311)
- CPU and memory limits are now configurable (#273).
- Don't run init container as root and avoid chmod and chowning (#300).
- Add temporary attribute to support using ClusterIP instead of NodePort service type (#266).
- Include chart name when installing with a custom release name (#227, #228).
- Orphaned resources are deleted (#255).
operator-rs0.22.0->0.25.0(#255).- Make webserver timeout configurable. Increase default to 5m (#247).
- Configuration option
rowLimitadded (#173). - Configuration and environment overrides enabled (#173).
- Ability to add MAPBOX_API_KEY from secret added (#178).
- Update SupersetConfigOptions to include explicit config for MapboxApiKey (#179)
- Add support for LDAP authentication (#180)
- [BREAKING] Specifying the product version has been changed to adhere to
ADR018
instead of just specifying the product version you will now have to add the
Stackable image version as well, so
version: 1.4.1becomes (for example)version: 1.4.1-stackable2.1.0(#207) - Add support for Superset 1.5.1 (#222).
- Required product image version changed to 2 (#182).
- DruidConnection namespace properties are optional now (#187).
- A DruidConnection was not established if the Druid instance was started after the Superset instance, this was fixed (#187).
- The correct secret key is used when upgrading the Superset database. This issue was introduced in #173 (#190).
- Reconciliation errors are now reported as Kubernetes events (#132).
- Add support for Superset 1.4.1 (#135).
- Use cli argument
watch-namespace/ env varWATCH_NAMESPACEto specify a single namespace to watch (#138).
- Druid DB connections can now be configured in a custom resource (#71).
- BREAKING: Prometheus metrics enabled (#128); The
statsdExporterVersionmust be set in the cluster specification.
- Shut down gracefully (#70).
- All dependencies upgraded. The upgrade to operator-rs 0.8.0 does not force the credentials secret to be set anymore in the custom resource but it is still required (#82).
operator-rs0.8.0→0.9.0(#71)
- Migrated to StatefulSet rather than direct Pod management (#45).