v6.0.17
Added query-peer liveness probe options and external identity provider support, made hdx-scaler globally configurable, bumped in-cluster Grafana to version 13.0.3, and fixed late-arriving storage credentials and request signing on GET requests without a body.
This release contains bug fixes to Hydrolix v6.0. This changelog covers changes from v6.0.13 to v6.0.17. Refer to the release notes to see other notable feature announcements and information for this version.
Upgrade⚓︎
Don't skip minor versions when upgrading or downgrading
Skipping versions when upgrading or downgrading Hydrolix can result in database schema inconsistencies and cluster instability. Always upgrade or downgrade sequentially through each minor version.
Example:
Upgrade from 5.10.10 → 5.11.9 → 6.0.8, not 5.10.10 → 6.0.8.
Upgrade on GKE⚓︎
| Upgrade on GKE | |
|---|---|
Upgrade on EKS⚓︎
| Upgrade on EKS | |
|---|---|
Upgrade on LKE⚓︎
| Upgrade on LKE | |
|---|---|
Changelog⚓︎
Improvements⚓︎
Cluster operations improvements⚓︎
-
Added the tunable
query_peer_liveness_modewhich selects a liveness probe:exec(the ClickHouse-native check),http(the legacy SQL-probe path, and the default),tcp(socket only), ornone. The query-peer liveness probe opens a ClickHouse-native TCP connection to the local peer and runsselect 1, exercising the query path that query-head uses rather than only the HTTP path. Distinct exit codes letkubectl describedistinguish failure modes. -
HDX Scaler: Added cluster-wide
enginefield as an alternative to setting per-service scalers. -
Bumped the operator-managed Grafana from
grafana/grafana-enterprise:12.4.2to13.0.3, with several quality-of-life improvements. Authentication is now required for Grafana image rendering, custom Grafana URLs are recognized by Keycloak and consolidated in Traefik routing, and the provisioned Prometheus datasource is removed when it's disabled.
Config API improvements⚓︎
-
The Config API can trust tokens signed by external issuers. The tunable
turbine_api_trusted_token_issuersspecifies the trusted issuers. -
Added direct user creation. Create users without going through the invitation flow.
Bug fixes⚓︎
Cluster operations fixes⚓︎
- Hardened protections for important pods during autoscaling. The operator now emits a PodDisruptionBudget (PDB) for every pool instead of only when the descheduler is enabled, so the cluster autoscaler no longer drains a node in a way that takes all of a service's pods to zero. Protected services are expressed through the
descheduler.protected_servicestunable and honored only when the descheduler is enabled, so the default PDBs don't blockkubectl drainor autoscaler scale-down on clusters that don't run the descheduler.
Config API fixes⚓︎
- Resolved an issue that prevented Keycloak-issued tokens from being accepted on clusters where the
hydrolix_urlisn't publicly accessible. This release also includes an operator fix that prevents JSON serialization errors.
Core fixes⚓︎
-
Fixed request-signing failures on GET requests that don't contain a body.
-
Fixed a bug where a storage filesystem was never rebuilt when its credential arrived late in the config.
-
Removed ZooKeeper I/O from the query execution path. A background poller now refreshes the ZooKeeper peer list so the query path reads a cached snapshot instead of blocking on ZooKeeper. These changes addressed a query-peer connection reset, a ZooKeeper async-handler context leak, segfaults, and a race condition bug.