Releases: jthomperoo/custom-pod-autoscaler
Releases · jthomperoo/custom-pod-autoscaler
v2.2.0
[v2.2.0] - 2021-08-14
Added
- New
openjdk-11
image which includes Java 11 runtime.
v2.1.0
[v2.1.0] - 2021-06-16
Added
- New
logStderr
option forshell
methods, intended to help debugging by printing out the stderr of a successful
shell
method execution - default valuefalse
.
Changed
- Error returned when parsing invalid JSON for an evaluation improved to help debugging.
v2.0.0
[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
[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 thekubernetesMetricSpecs
configuration option. - Can provide the
requireKubernetesMetrics
option to fail if the metrics server query fails. - Can provide
initialReadinessDelay
andcpuInitializationPeriod
values for use when querying the metrics server.
- Can now provide a list of Metric Specs (similar to the Horizontal Pod Autoscaler) to choose which metrics to
Changed
- Switched docs theme to material theme.
v1.0.1
[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
[v1.0.0] - 2020-07-19
v0.13.0
[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
[v0.12.0] - 2020-04-25
Changed
- Support scaling to and from zero, matching misimplemented functionality from
Horizontal Pod Autoscaler.
v0.11.0
[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 thansnake_case
for consistency with the Kubernetes API.- Evaluation now uses
targetReplicas
overtarget_replicas
. - ResourceMetric now uses
runType
overrun_type
. - Scale hook now provided with
minReplicas
,maxReplicas
,currentReplicas
andtargetReplicas
rather than their snakecase equivalents.
- Evaluation now uses
- 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 optionaldry_run
parameter for marking metric gathering as in dry run mode. ResourceMetrics
replaced with a list ofMetric
and aResource
./api/v1/metrics
now simply returns a list ofMetrics
rather than aResourceMetrics
.
Removed
ResourceMetrics
struct removed as it was redundant.
v0.10.0
[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 indry_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
forshell
methods is now an array of arguments, rather than a string. - The
/api/v1/evaluation
endpoint now requiresPOST
rather thanGET
. - The
/api/v1/evaluation
endpoint now accepts an optional parameter,dry_run
. Ifdry_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
andhost
configuration options into theapiConfig
settings.