v6.0.12
Hardened the descheduler eviction policy, added retries for storage and certificate failures, and improved intake handling of token_list: null in stream settings.
This release contains bug fixes to Hydrolix v6.0. Refer to the release notes to see other notable feature announcements and information for this version.
Upgrade instructions⚓︎
Install the latest Hydrolix v6.0 patch release.
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, moving to every intermediate minor release in turn rather than jumping directly from the starting version to the target.
Point releases are safe to skip. Upgrade through each minor version, using the latest point release of each one. Don't install every point release along the way.
For example, to go from v5.10 to v6.1, upgrade sequentially to v5.11.10 -> v6.0.19 -> v6.1.10. Downgrading works the same way, in reverse.
Apply the new Hydrolix operator⚓︎
If you have a self-managed installation, apply the new operator directly with the kubectl command examples. If you're using Hydrolix-supplied tools to manage your installation, follow the procedure prescribed by those tools.
Monitor the upgrade process⚓︎
Kubernetes jobs named init-cluster and init-turbine-api will automatically run to upgrade your entire installation to match the new operator's version number. This will take a few minutes, during which time you can observe your pods' restarts with your Kubernetes monitor tool.
Ensure both the init-cluster and init-turbine-api jobs have completed successfully and that the turbine-api pod has restarted without errors. After that, view the UI and use the API of your new installation as a final check.
If the turbine-api pod doesn't restart successfully, or other functionality is missing, check the logs of the init-cluster and init-turbine-api jobs for details about failures. This can be done using the k9s utility or with the kubectl command:
If you still need help, contact Hydrolix support.
Post-upgrade instructions⚓︎
This one-time post-upgrade step removes the orphaned objects, if they still exist.
The operator reconciliation logic can't delete the role and binding which become unnecessary after upgrade to v6.0.21 or later.
Downgrade restrictions⚓︎
If you create service accounts with names longer than 64 characters in v6.0, you must remove or rename those service accounts before downgrading to v5.11.
Service account names are limited to 64 characters in v5.11, so the downgrade migration will fail if any longer names exist.
If you need to downgrade from v6.0 to v5.11, run the schema rollback before applying the v5.11 operator:
- Connect to the Kubernetes cluster using k9s and select the namespace holding the Hydrolix cluster.
- Select the
turbine-apipod andturbine-apicontainer. - Invoke a shell by pressing s.
-
Run the following command, which produces STDERR to the terminal and must exit cleanly:
-
Exit
k9sby pressing Ctrl+c.
Then apply the v5.11 operator using the standard kubectl apply procedure shown above, substituting the v5.11 operator URL.
Changelog⚓︎
Improvements⚓︎
Cluster operations improvements⚓︎
- Updates to the descheduler eviction policy so it never evicts the descheduler or operator pods, and never causes involuntary downtime for single-replica workloads. The descheduler and operator pods are now protected from self-eviction through the
DefaultEvictorlabel selector instead of amaxUnavailable: 0Pod Disruption Budget (PDB). Nodes running descheduler or operator pods no longer blockkubectl drainor cluster autoscaler scale-down. Single-replica workloads are never evicted. A newdescheduler.min_replicastunable (default2) ensures pods whose owning workload has fewer than two replicas are skipped by descheduler runs. Set it to0to consider all pods regardless of replica count.
Bug fixes⚓︎
Cluster operations bug fixes⚓︎
- Fixed an issue where a transient failure during initial certificate issuance on a freshly provisioned cluster could leave Traefik serving its self-signed default certificate for up to 24 hours. After a failed certificate check, the ACME client now retries after 15 minutes instead of waiting for the next daily check. Once a check succeeds, it returns to the configured interval.
Intake bug fixes⚓︎
-
Fixed a bug where a
token_list: nullvalue in stream settings failed to deserialize and aborted the entire configuration parse.token_list: nullnow matches the behavior of an empty list value. -
Improved handling of Azure DNS responses for a removed storage error. It's now treated as a transient error and retried. Corrected error reporting for Azure DNS resolution failures and Google Cloud Storage no-such-bucket responses.