mirror of
https://github.com/ansible/awx-operator.git
synced 2026-05-08 14:22:49 +00:00
Add support for horizontal pod autoscaling (#1676)
This commit is contained in:
@@ -1574,10 +1574,18 @@ spec:
|
|||||||
description: Number of web instance replicas
|
description: Number of web instance replicas
|
||||||
type: integer
|
type: integer
|
||||||
format: int32
|
format: int32
|
||||||
|
web_manage_replicas:
|
||||||
|
description: Enables operator control of replicas count for the web deployment when set to 'true'
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
task_replicas:
|
task_replicas:
|
||||||
description: Number of task instance replicas
|
description: Number of task instance replicas
|
||||||
type: integer
|
type: integer
|
||||||
format: int32
|
format: int32
|
||||||
|
task_manage_replicas:
|
||||||
|
description: Enables operator control of replicas count for the task deployment when set to 'true'
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
web_liveness_initial_delay:
|
web_liveness_initial_delay:
|
||||||
description: Initial delay before starting liveness checks on web pod
|
description: Initial delay before starting liveness checks on web pod
|
||||||
type: integer
|
type: integer
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
### Horizontal Pod Autoscaler (HPA)
|
||||||
|
|
||||||
|
Horizontal Pod Autoscaler allows Kubernetes to scale the number of replicas of
|
||||||
|
deployments in response to configured metrics.
|
||||||
|
|
||||||
|
This feature conflicts with the operators ability to manage the number of static
|
||||||
|
replicas to create for each deployment.
|
||||||
|
|
||||||
|
The use of the settings below will tell the operator to not manage the replicas
|
||||||
|
field on the identified deployments even if a replicas count has been set for those
|
||||||
|
properties in the operator resource.
|
||||||
|
|
||||||
|
| Name | Description | Default |
|
||||||
|
| -----------------------| ----------------------------------------- | ------- |
|
||||||
|
| web_manage_replicas | Indicates operator should control the | true |
|
||||||
|
| | replicas count for the web deployment. | |
|
||||||
|
| | | |
|
||||||
|
| task_manage_replicas | Indicates operator should control the | true |
|
||||||
|
| | replicas count for the task deployment. | |
|
||||||
|
|
||||||
|
#### Recommended Settings for HPA
|
||||||
|
|
||||||
|
Please see the Kubernetes documentation on how to configure the horizontal pod
|
||||||
|
autoscaler.
|
||||||
|
|
||||||
|
The values for optimal HPA are cluster and need specific so general guidelines
|
||||||
|
are not available at this time.
|
||||||
@@ -1,8 +1,13 @@
|
|||||||
#### Scaling the Web and Task Pods independently
|
#### Scaling the Web and Task Pods independently
|
||||||
|
|
||||||
You can scale replicas up or down for each deployment by using the `web_replicas` or `task_replicas` respectively. You can scale all pods across both deployments by using `replicas` as well. The logic behind these CRD keys acts as such:
|
You can scale replicas up or down for each deployment by using the `web_replicas` or `task_replicas` respectively. You can scale all pods across both deployments by using `replicas` as well. The logic behind these CRD keys acts as such:
|
||||||
|
|
||||||
- If you specify the `replicas` field, the key passed will scale both the `web` and `task` replicas to the same number.
|
- If you specify the `replicas` field, the key passed will scale both the `web` and `task` replicas to the same number.
|
||||||
- If `web_replicas` or `task_replicas` is ever passed, it will override the existing `replicas` field on the specific deployment with the new key value.
|
- If `web_replicas` or `task_replicas` is ever passed, it will override the existing `replicas` field on the specific deployment with the new key value.
|
||||||
|
|
||||||
These new replicas can be constrained in a similar manner to previous single deployments by appending the particular deployment name in front of the constraint used. More about those new constraints can be found in the [Assigning AWX pods to specific nodes](./assigning-awx-pods-to-specific-nodes.md) page.
|
These new replicas can be constrained in a similar manner to previous single deployments by appending the particular deployment name in front of the constraint used. More about those new constraints can be found in the [Assigning AWX pods to specific nodes](./assigning-awx-pods-to-specific-nodes.md) page.
|
||||||
|
|
||||||
|
##### Horizontal Pod Autoscaling
|
||||||
|
|
||||||
|
The operator is capable of working with Kubernete's HPA capabilities. See [Horizontal Pod Autoscaler](./horizontal-pod-autoscaler.md)
|
||||||
|
documentation for more information.
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ metadata:
|
|||||||
{{ lookup("template", "../common/templates/labels/common.yaml.j2") | indent(width=4) | trim }}
|
{{ lookup("template", "../common/templates/labels/common.yaml.j2") | indent(width=4) | trim }}
|
||||||
{{ lookup("template", "../common/templates/labels/version.yaml.j2") | indent(width=4) | trim }}
|
{{ lookup("template", "../common/templates/labels/version.yaml.j2") | indent(width=4) | trim }}
|
||||||
spec:
|
spec:
|
||||||
{% if task_replicas != '' %}
|
{% if task_replicas != '' and task_manage_replicas is true %}
|
||||||
replicas: {{ task_replicas }}
|
replicas: {{ task_replicas }}
|
||||||
{% elif replicas != '' %}
|
{% elif replicas != '' and task_manage_replicas is true %}
|
||||||
replicas: {{ replicas }}
|
replicas: {{ replicas }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
selector:
|
selector:
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ metadata:
|
|||||||
{{ lookup("template", "../common/templates/labels/common.yaml.j2") | indent(width=4) | trim }}
|
{{ lookup("template", "../common/templates/labels/common.yaml.j2") | indent(width=4) | trim }}
|
||||||
{{ lookup("template", "../common/templates/labels/version.yaml.j2") | indent(width=4) | trim }}
|
{{ lookup("template", "../common/templates/labels/version.yaml.j2") | indent(width=4) | trim }}
|
||||||
spec:
|
spec:
|
||||||
{% if web_replicas != '' %}
|
{% if web_replicas != '' and web_manage_replicas is true %}
|
||||||
replicas: {{ web_replicas }}
|
replicas: {{ web_replicas }}
|
||||||
{% elif replicas != '' %}
|
{% elif replicas != '' and web_manage_replicas is true %}
|
||||||
replicas: {{ replicas }}
|
replicas: {{ replicas }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
selector:
|
selector:
|
||||||
|
|||||||
Reference in New Issue
Block a user