Skip to content

Releases: jthomperoo/custom-pod-autoscaler

v2.2.0

14 Aug 17:31
bb473af
Compare
Choose a tag to compare

[v2.2.0] - 2021-08-14

Added

  • New openjdk-11 image which includes Java 11 runtime.

v2.1.0

16 Jun 22:32
59a6352
Compare
Choose a tag to compare

[v2.1.0] - 2021-06-16

Added

  • New logStderr option for shell methods, intended to help debugging by printing out the stderr of a successful
    shell method execution - default value false.

Changed

  • Error returned when parsing invalid JSON for an evaluation improved to help debugging.

v2.0.0

14 Apr 23:33
8651462
Compare
Choose a tag to compare

[v2.0.0] - 2021-04-15

Changed

  • BREAKING CHANGE Project's Go code restructured, limited exposed packages. See the migration
    guide
    for full details.
  • BREAKING CHANGE Pre-scaling hook moved to after the downscale stabilization value has been calculated.
  • k8smetric package now exposed to allow easy Go dependency marshal/unmarshal of K8s metrics.

Fixed

  • targetReplicas value now set properly, set to the pre-stabilized target replica value.

Added

  • The Custom Pod Autoscaler version is now printed to the log on autoscaler startup.

v1.1.0

07 Apr 23:53
d735139
Compare
Choose a tag to compare

[v1.1.0] - 2021-04-08

Added

  • Feature to provide standard K8s metrics to the metric gathering stage of the autoscaler
    • Can now provide a list of Metric Specs (similar to the Horizontal Pod Autoscaler) to choose which metrics to
      include in the data sent to the metric gathering stage with the kubernetesMetricSpecs configuration option.
    • Can provide the requireKubernetesMetrics option to fail if the metrics server query fails.
    • Can provide initialReadinessDelay and cpuInitializationPeriod values for use when querying the metrics server.

Changed

  • Switched docs theme to material theme.

v1.0.1

11 Sep 23:20
d00bb5f
Compare
Choose a tag to compare

[v1.0.1] - 2020-09-12

Added

  • Three new Python images:
    • custompodautoscaler/python-3-6 tracks latest stable Python 3.6.x release.
    • custompodautoscaler/python-3-7 tracks latest stable Python 3.7.x release.
    • custompodautoscaler/python-3-8 tracks latest stable Python 3.8.x release.

Changed

  • The custompodautoscaler/python image now tracks the latest stable Python 3.x release.

v1.0.0

19 Jul 11:27
bb0b206
Compare
Choose a tag to compare

[v1.0.0] - 2020-07-19

v0.13.0

18 Jul 20:47
e2c45e8
Compare
Choose a tag to compare
v0.13.0 Pre-release
Pre-release

[v0.13.0] - 2020-07-18

Added

  • HTTP method, allows specifying an HTTP request to make as a method - for
    example querying an external API as part of the metric gathering stage.
  • Extra error checking for shell method, will no longer throw nil pointer if
    no shell configuration is provided, more useful error is raised instead.

v0.12.0

25 Apr 10:35
edc4574
Compare
Choose a tag to compare
v0.12.0 Pre-release
Pre-release

[v0.12.0] - 2020-04-25

Changed

  • Support scaling to and from zero, matching misimplemented functionality from
    Horizontal Pod Autoscaler.

v0.11.0

28 Feb 14:21
facbdf1
Compare
Choose a tag to compare
v0.11.0 Pre-release
Pre-release

[v0.11.0] - 2020-02-28

Added

  • Series of hooks for injecting user logic throughout the execution process.
    • preMetric - Runs before metric gathering, given metric gathering input.
    • postMetric - Runs after metric gathering, given metric gathering input and result.
    • preEvaluate - Runs before evaluation, given evaluation input.
    • postEvaluate - Runs after evaluation, given evaluation input and result.
    • preScale - Runs before scaling decision, given min and max replicas, current replicas, target replicas, and resource being scaled.
    • postScale - Runs before scaling decision, given min and max replicas, current replicas, target replicas, and resource being scaled.
  • New downscaleStabilization option, based on the Horizontal Pod Autoscaler downscale stabilization, operates by taking the maximum target replica count over the stabilization window.

Changed

  • Metrics from API now returns the entire resource definition as JSON rather than just the resource name.
  • Changed JSON generated to be in camelCase rather than snake_case for consistency with the Kubernetes API.
    • Evaluation now uses targetReplicas over target_replicas.
    • ResourceMetric now uses runType over run_type.
    • Scale hook now provided with minReplicas, maxReplicas, currentReplicas and targetReplicas rather than their snakecase equivalents.
  • Metric gathering and hooks have access to dryRun field, allowing them to determine if they are called as part of a dry run.
  • Standardised input to metric gatherer, evaluator and scaler to take specs rather than lists of parameters, allowing easier serialisation for hooks.
  • Endpoint /api/v1/metrics now accepts the optional dry_run parameter for marking metric gathering as in dry run mode.
  • ResourceMetrics replaced with a list of Metric and a Resource.
  • /api/v1/metrics now simply returns a list of Metrics rather than a ResourceMetrics.

Removed

  • ResourceMetrics struct removed as it was redundant.

v0.10.0

22 Jan 22:50
a41057f
Compare
Choose a tag to compare
v0.10.0 Pre-release
Pre-release

[v0.10.0] - 2020-01-22

Added

  • Set up API to be versioned, starting with v1.
  • Can now manually trigger scaling through the API.
  • Added extra run_type flag, api_dry_run, for evaluations through the API in dry_run mode.
  • Added apiConfig to hold configuration for the REST API.
  • Added extra configuration options within apiConfig.
    • enabled - allows enabling or disabling the API, default enabled (true).
    • useHTTPS - allows enabling or disabling HTTPS for the API, default off (false).
    • certFile - cert file to be used if HTTPS is enabled.
    • keyFile - key file to be used if HTTPS is enabled.

Changed

  • The command for shell methods is now an array of arguments, rather than a string.
  • The /api/v1/evaluation endpoint now requires POST rather than GET.
  • The /api/v1/evaluation endpoint now accepts an optional parameter, dry_run. If dry_run is true the evaluation will be retrieved in a read-only manner, the scaling will not occur. If it is false, or not provided, the evaluation will be retrieved and then used to apply scaling to the target.
  • Moved port and host configuration options into the apiConfig settings.