Releases: jthomperoo/custom-pod-autoscaler
Releases · jthomperoo/custom-pod-autoscaler
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
downscaleStabilizationoption, 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
camelCaserather thansnake_casefor consistency with the Kubernetes API.- Evaluation now uses
targetReplicasovertarget_replicas. - ResourceMetric now uses
runTypeoverrun_type. - Scale hook now provided with
minReplicas,maxReplicas,currentReplicasandtargetReplicasrather than their snakecase equivalents.
- Evaluation now uses
- Metric gathering and hooks have access to
dryRunfield, 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/metricsnow accepts the optionaldry_runparameter for marking metric gathering as in dry run mode. ResourceMetricsreplaced with a list ofMetricand aResource./api/v1/metricsnow simply returns a list ofMetricsrather than aResourceMetrics.
Removed
ResourceMetricsstruct 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_typeflag,api_dry_run, for evaluations through the API indry_runmode. - Added
apiConfigto 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
commandforshellmethods is now an array of arguments, rather than a string. - The
/api/v1/evaluationendpoint now requiresPOSTrather thanGET. - The
/api/v1/evaluationendpoint now accepts an optional parameter,dry_run. Ifdry_runis 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
portandhostconfiguration options into theapiConfigsettings.
v0.9.0
[v0.9.0] - 2020-01-19
Added
- Support for other entrypoints other than
/bin/sh, can specify an entrypoint for the shell command method. - Add logging library
glogto allow logging at levels of severity and verbosity. - Can specify verbosity level of logs via the
logVerbosityconfiguration option.
Changed
- Can scale ReplicaSets, ReplicationControllers and StatefulSets alongside Deployments.
- ResourceMetrics fields have
resourceNameandresourcerather thandeploymentNameanddeployment. In JSON this means that only the resource name will be exposed via fieldresource. - Uses scaling API rather than manually adjusting replica count on resource.
- Matches using match selector rather than incorrectly using resource labels and building a different selector.
v0.8.0
Cut 0.8.0 release (#81)
v0.7.0
Cut 0.7.0 release (#74)
0.6.0
Cut 0.6.0 release (#70)
0.5.0
Cut 0.5.0 release (#67)
0.4.0
Cut 0.4.0 release (#64)
0.3.0
Cut 0.3.0 release (#40)