Autoscaling is the home for any autoscaling functionality used on the RPK platform. Currently, it includes the Vertical Pod Autoscaler (VPA). In order to use, create a VerticalPodAutoscaler resource to configure vertical autoscaling behavior for your workload. An example manifest can be found here.
The following variables are defaulted at common/vars/main.yaml and are included via meta/main.yaml. They
do not need to be explicitly specified.
| Variable Name | Description | Default Value | Variable Type | Required |
|---|---|---|---|---|
| tanzu_autoscaling.namespace | Defines the name for the autoscaling namespace | "tanzu-autoscaling" | string | yes |
| tanzu_autoscaling.demo_namespace | Defines the name for the autoscaling namespace used by make demo.role |
"tanzu-demo" | string | yes |
| tanzu_autoscaling.staging_dir | Local directory to write the staging manfiests to | "{{ rpk_staging_dir }}/tanzu-autoscaling" | string | yes |
| tanzu_workload_tenancy.vpa.version | Version of the Vertical Pod Autoscaler to use | "0.9.0" | string | yes |
The following variables are required for proper role operation and should be specified as part of the global inventory, or other mechanism.
| Variable Name | Description | Default Value | Variable Type | Required |
|---|---|---|---|---|
| tanzu_kubectl_context | Name of context to use for connection to Kubernetes | - | string | yes |
Also see meta/main.yaml to view role dependencies which are run when running the role
independently.
- security
- monitoring
NOTE: roles from meta/main.yaml are also deployed.
In order to deploy the role from a versioned image:
ROLE=autoscaling make deploy.roleIf you've made changes to the role and need to verify your changes:
ROLE=autoscaling make deploy.test.roleFor a module that has validation tests, run them with:
$ ROLE=autoscaling make validate.role
To view the status of the validation test:
$ make validate.status
Once status is complete, If test result is passed, clean up the sonobuoy
assets as follows:
$ make validate.clean
See docs/VALIDATION.md for further info regarding validation tests.
Once the role has run successfully, you should be able to demonstrate the role. This demo simply does the following:
- Creates a TanzuNamespace resource, which in turn creates:
- Namespace
- LimitRange in the Namespace
- ResourceQuota in the Namespace
- Creates a sample nginx Deployment and Service
- Creates a VerticalPodAutoscaler in
Initialmode for the nginx sample workload
ROLE=autoscaling make demo.roleTo remove the role, from the root of the repo:
ROLE=autoscaling make clean.role