Skip to content

Commit

Permalink
Cut v0.11.0 release (#71)
Browse files Browse the repository at this point in the history
  • Loading branch information
jthomperoo committed Jul 23, 2022
1 parent 9872904 commit b284b9e
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 5 deletions.
6 changes: 5 additions & 1 deletion CHANGELOG.md
Expand Up @@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [v0.11.0] - 2022-07-23
### Changed
- See the [migration guide from `v0.10.0` here](https://predictive-horizontal-pod-autoscaler.readthedocs.io/en/latest/user-guide/migration/v0_10_0-to-v0_11_0).
- BREAKING CHANGE: Major rewrite converting this project from a Custom Pod Autoscaler to have its own dedicated CRD
Expand Down Expand Up @@ -117,7 +119,9 @@ Holt-Winters configuration.
- Added the ability to use Linear Regression models to predict future scaling.

[Unreleased]:
https://github.com/jthomperoo/predictive-horizontal-pod-autoscaler/compare/v0.10.0...HEAD
https://github.com/jthomperoo/predictive-horizontal-pod-autoscaler/compare/v0.11.0...HEAD
[v0.11.0]:
https://github.com/jthomperoo/predictive-horizontal-pod-autoscaler/compare/v0.10.0...v0.11.0
[v0.10.0]:
https://github.com/jthomperoo/predictive-horizontal-pod-autoscaler/compare/v0.9.0...v0.10.0
[v0.9.0]:
Expand Down
58 changes: 55 additions & 3 deletions README.md
Expand Up @@ -15,7 +15,7 @@ to gather metrics and to evaluate them as the Kubernetes Horizontal Pod Autoscal

# Why would I use it?

This autoscaler lets you choose models and fine tune them in order to predict how many replicas a resource should have,
PHPAs lets you choose models and fine tune them in order to predict how many replicas a resource should have,
preempting events such as regular, repeated high load. This allows for proactive rather than simply reactive scaling
that can make intelligent ahead of time decisions.

Expand Down Expand Up @@ -45,6 +45,60 @@ This project works by calculating the number of replicas a resource should have,
statistical models against them to produce predictions for the future. These predictions are compared and can be used
instead of the raw replica count calculated by the Horizontal Pod Autoscaler logic.

## What does a Predictive Horizontal Pod Autoscaler look like?

PHPAs are designed to be as similar in configuration to Horizontal Pod Autoscalers as possible, with extra
configuration options.

PHPAs have their own custom resource:

```yaml
apiVersion: jamiethompson.me/v1alpha1
kind: PredictiveHorizontalPodAutoscaler
metadata:
name: simple-linear
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: php-apache
minReplicas: 1
maxReplicas: 10
downscaleStabilization: 0
metrics:
- type: Resource
resource:
name: cpu
target:
averageUtilization: 50
type: Utilization
models:
- type: Linear
name: simple-linear
linear:
lookAhead: 10000
historySize: 6
```

This PHPA acts like a Horizontal Pod Autoscaler and autoscales to try and keep the target resource's CPU utilization at
50%, but with the extra predictive layer of a linear regression model applied to the results.

## Installation

The operator for managing Predictive Horizontal Pod Autoscalers can be installed using Helm:

```bash
VERSION=v0.11.0
HELM_CHART=predictive-horizontal-pod-autoscaler-operator
helm install ${HELM_CHART} https://github.com/jthomperoo/predictive-horizontal-pod-autoscaler/releases/download/${VERSION}/predictive-horizontal-pod-autoscaler-${VERSION}.tgz
```

## Quick start

Check out the [getting started
guide](https://predictive-horizontal-pod-autoscaler.readthedocs.io/en/latest/user-guide/getting-started/) and the
[examples](./examples/) for ways to use Predictive Horizontal Pod Autoscalers.

## More information

See the [wiki for more information, such as guides and
Expand All @@ -54,8 +108,6 @@ See the [`examples/` directory](./examples) for working code samples.

## Developing this project

### Environment

Developing this project requires these dependencies:

* [Go](https://golang.org/doc/install) >= `1.18`
Expand Down
2 changes: 1 addition & 1 deletion helm/templates/NOTES.txt
@@ -1,4 +1,4 @@
Thanks for installing {{ .Chart.Name }}.
Thanks for installing {{ .Chart.Name }} version {{ .Chart.Version }}.

Your release is named {{ .Release.Name }}.

Expand Down

0 comments on commit b284b9e

Please sign in to comment.