github caas-team/GoKubeDownscaler v1.4.1

3 hours ago

๐ŸŽ‰Announcement ๐ŸŽ‰

GoKubeDownscaler is GA and has reached feature parity with py-kube-downscaler! Learn how to migrate from py-kube-downscaler here.

โš ๏ธ Warning: v1.4.1

v1.4.1 is only required if you use GoKubeDownscaler as a Helm dependency. This release does not contain any new features, bug fixes, or security patches compared to v1.4.0. If you are not using GoKubeDownscaler as a Helm dependency, there is no need to upgrade to v1.4.1.

๐Ÿš€ Release Notes ๐Ÿš€

โš ๏ธ Note: v1.4.1

The bug fixes and behavioral improvements listed below were introduced in 1.4.0 and are included here for completeness; they are not part of v1.4.1. There are no changes between v1.4.0 and v.1.4.1 in terms of features, bug fixes or security patches

  • LoadBalancer Scaling: Kubernetes Services of type LoadBalancer, as well as Ingresses and Gateway API resources can now be scaled down along with all other resources! This new feature takes the cost optimization of the cluster to the next level. LoadBalancers from cloud providers are among the most expensive resources in a Kubernetes cluster, and they are often left idle during off-hours. An average LoadBalancer from a cloud provider costs around $20 per month. Considering a 40-hour work week, users can now save up to 70% of the cost of a single LoadBalancer by scaling it down during off-hours. We recommend combining GoKubeDownscaler with ExternalDNS to enable seamless scale-down automation while automatically handling DNS changes, so users donโ€™t have to worry about restoring DNS records when LoadBalancers are scaled back up. You can find more information about the feature in the DNS Aware Load Balancing Scaling guide.
  • Directional Timespan: this new timespan allows users to specify a target point in time relative to a specific timestamp, either before or after it. A common example would be downscaler/downtime: from 2026-09-01T08:30:00Z or downscaler/exclude: until 2026-09-01T08:30:00Z
  • Improved Logging: the logging system has been improved to provide more detailed information about the scaling process. This includes information about the resources being scaled, the reason for scaling or exclusion, initial and final state of the resources, the scope that decided the scaling, and any errors that may occur during the process. Log levels have been restructured and rebalanced to provide more relevant information at each level. More information about the logging system can be found on the logging documentation page.
  • New Resources: New resources have been added to the list of scalable resources, including Strimzi Kafka CRDs (KafkaBridges, KafkaConnects, KafkaMirrorMakers), PostgreSQLs from Zalando, and Kruise CRDs (AdvancedCronJobs, AdvancedStatefulSets, AdvancedDaemonSets, CloneSets, BroadcastJobs, ImagePullJobs). As mentioned in the first bullet point also Services, Ingresses, and Gateway API resources can now be scaled down.
  • New Argument: added the possibility to specify a custom --timeout value for API calls made by GoKubeDownscaler. A default timeout of 30 seconds is used and applied to every API Call if no value is specified. To disable the timeout, users can set the value to 0

Along with these features, we have also introduced several bug fixes and improvements to key behaviors:

  • Fixed the GetChildrenWorkloads behavior to correctly handle and identify child workloads.
  • Fixed the DEFAULT_TIMEZONE configuration so the configured timezone is correctly applied.
  • Fixed scanner mode to avoid scaling KEDA ScaledObject targets when the workload's TypeMeta is missing.
  • Fixed the algorithm to continue processing when a broken annotation is encountered instead of stopping.
  • Updated owner-reference handling to consider owner references only for scalable resources.
  • Updated the behavior of downscaler/exclude-until annotations. Past dates are no longer considered valid and will not be taken into account when populating scopes.
  • Fixed a bug that prevented --json-logs from displaying debug level logs when --debug was specified.

๐Ÿท๏ธ What's Changed ๐Ÿท๏ธ

  • chore(deps-dev): bump the version-bump group in /website with 2 updates by @dependabot[bot] in #550
  • chore(deps): bump the version-bump group with 8 updates by @dependabot[bot] in #551
  • fix: allow helm injected global and enabled keys in chart schema by @sangeetprasad in #553
  • Feat: Allow Releasing From Release Branches (release/major.minor) by @samuel-esp in #555

๐ŸŽ‰ New Contributors ๐ŸŽ‰

Full Changelog: v1.4.0...v1.4.1

Don't miss a new GoKubeDownscaler release

NewReleases is sending notifications on new releases.