Skip to content

Releases: traas-stack/kapacity

v0.3.0

19 Apr 06:44
1a33534
Compare
Choose a tag to compare

✨ Highlight

This release introduces external generator mechanism to HorizontalPortrait which enables user to build their own portrait generator logic and integrate with the other parts of Kapacity. This brings possibility for custom algorithm system integrations, without the limitation of the built-in CronJob implementation.

Remember to also check the algorithm update along with this release ;)

📝 What's Changed

  • HorizontalPortrait: Introduce external generator mechanism by @zqzten in #82
  • Introduce kube api qps & burst flags by @zqzten in #83

Full Changelog: v0.2.0...v0.3.0

algorithm-v0.2.0

19 Apr 06:31
1a33534
Compare
Choose a tag to compare

✨ Highlight

This release includes important improvements and fixes to the algorithms, and introduces model estimation threshold control to replicas estimation algorithm which enables user to control the expected accuracy of the model based on their own needs.

🚩 Flag Changes

  • Removed --tsf-freq as it can be implied from the time series forecasting model
  • Added --re-min-correlation-allowed and --re-max-mse-allowed to control the expected accuracy of the model, check the FAQ page for its typical use case.

📝 What's Changed

  • Algo: Make replicas estimator use resource total instead of average as resource history input by @zqzten in #84
  • Algo: Introduce support for pods metric query as workload external query & other tweaks by @zqzten in #85
  • Algo: time series forecasting tweaks by @zqzten in #86
  • Algo: Remove invalid code lines by @itonyli in #88
  • Algo: Introduce estimation threshold control to replicas estimation by @zqzten in #89

🌱 New Contributors

Full Changelog: algorithm-v0.1.0...algorithm-v0.2.0

v0.2.0

30 Oct 14:14
e01015f
Compare
Choose a tag to compare

🚩 This is a HUGE milestone release that fully supports predictive scaling and custom metrics!

✨ Highlight

  • Introduce predictive scaling based on the "Traffic-Driven Replicas Prediction" algorithm which has been used on a large scale in production at Ant Group. Try predictive scaling or learn more about the algorithm.
  • Fully supports custom metrics for autoscaling with a configuration that is fully compatible with the one used by Prometheus Adapter. Learn more.

📝 What's Changed

  • HorizontalPortrait: fix float64 field parse issue by @zqzten in #33
  • Update issue templates by @zqzten in #34
  • Fix github issue template config file name extension by @zqzten in #35
  • HorizontalPortrait: introduce external algorithm job apis and mechanism by @zqzten in #36
  • Make util.BuildControllerOwnerRef behave the same as metav1.NewControllerRef by @zqzten in #40
  • HorizontalPortrait: Support Kubernetes CronJob as external horizontal portrait algorithm job by @dayko2019 in #41
  • Use SSA (Server-Side Apply) in Makefile by @dayko2019 in #44
  • Add unit tests for util/common.go file by @dayko2019 in #45
  • Introduce complete metric query support to Prometheus metric provider by @zqzten in #46
  • Add a flag to disable admission webhooks by @zqzten in #47
  • Remove redundant examples dir by @zqzten in #48
  • Introduce general gRPC server by @zqzten in #51
  • Enhancements of prometheus metric provider: query range sharding & more client configs by @zqzten in #52
  • Expose the unified metric provider interface as a service by @dayko2019 in #43
  • chore: simplify referral license by @zqzten in #53
  • HorizontalPortrait: Introduce fully functional k8s HPA reactive scaling by @zqzten in #54
  • Utilize k8s code dep to reduce code dup by @zqzten in #55
  • Introduce workload external metric query with prom provider support by @zqzten in #56
  • HorizontalPortrait: Introduce ConfigMap horizontal result fetcher by @zqzten in #58
  • Introduce object selector to restrict controller list watch by @zqzten in #59
  • Update manifests by @zqzten in #60
  • Algo: Introduce algorithms for predictive scaling by @zqzten in #62
  • Algo: Introduce replicas prediction job by @dayko2019 in #63
  • Algo: Introduce grpc proto by @dayko2019 in #64
  • Algo: support test dataset size config for replica estimation & other tweaks by @zqzten in #65
  • Introduce ready pods only filtering to workload resource query by @zqzten in #66
  • Algo: enable ReadyPodsOnly feature filtering for resource metrics query by @dayko2019 in #67
  • HorizontalPortrait: Unify algorithm job namespace & introduce template defaulting by @zqzten in #69
  • HorizontalPortrait: Support service account defaulting for algorithm job by @zqzten in #70
  • Algo: Support custom worker num of data loader of TSF & improve error handling of RE by @zqzten in #71
  • Algo: optimize algorithm code structure & add model training scripts by @dayko2019 in #72
  • Algo: Introduce conda env file and dockerfile for horizontal predictive by @zqzten in #73
  • Update manifests for v0.2 by @zqzten in #74
  • Algo: No splitting error messages by @zqzten in #75
  • Update docs by @zqzten in #76
  • Update CI by @zqzten in #77
  • CI: Fix duplicate release workflow name by @zqzten in #78
  • algo: fix metric name fetching by @dayko2019 in #79
  • Algo: Make tsf model train script more general by @zqzten in #80

Full Changelog: v0.1.0...v0.2.0

algorithm-v0.1.0

30 Oct 14:31
e01015f
Compare
Choose a tag to compare

This is the first release of the algorithm part of Kapacity, along with the main v0.2.0 release.

It currently contains the "Traffic-Driven Replicas Prediction" algorithm which contains a runnable horizontal predictive portrait generating job and a script for training the model of the deep learning algorithm that does general time series forecasting for metrics.

Follow the predictive scaling quick start to learn how to use this algorithm in practice, or read this doc if you want to learn the principles of this algorithm in depth.

v0.1.0

05 Jun 03:04
b4de0b6
Compare
Choose a tag to compare

This is the first release of Kapacity which focused on initial framework and basic features of IHPA. Currently supported IHPA features are listed below:

  • Multiple combinable scaling algorithms with priority rules

    • Kubernetes HPA like ratio reactive algorithm
    • Cron-based rules
    • Custom static value
  • Multiple metrics provider support

    • Prometheus
    • Kubernetes Metrics API
  • Enhanced autoscaling mechanism with multiple risk mitigation means

    • Fine-grained pod state control which enables a multi-stage scale down
      • Supported intermediate state: Cutoff (Offline)
      • Supported workload: Deployment, ReplicaSet, StatefulSet
    • Customizable gray change for both scale up and scale down
    • Support preview mode (dry-run)
    • Support pause and resume