Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deploy web and task component in independent deployment #1218

Merged
merged 25 commits into from
Mar 30, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
19461fa
Split web and task containers into separate deployments
shanemcd Aug 30, 2022
6477468
drop awx-web container from awx-task deployment
relrod Nov 30, 2022
12e51ad
add $MY_POD_IP back to web deployment
relrod Nov 30, 2022
ebc040f
scale web/task replicas separately
relrod Dec 11, 2022
d9f3a42
[web/task split] split web and task deployment + a few supporting bit…
thedoubl3j Feb 6, 2023
c1bbd85
add nodeSelector work (#1219)
thedoubl3j Feb 6, 2023
6192cab
fix affinity duplicate (#1225)
thedoubl3j Feb 7, 2023
918e487
Add web and task replicas to the CRD (#1227)
TheRealHaoLiu Feb 8, 2023
d40683c
add topology constraint for each deployment (#1234)
thedoubl3j Feb 13, 2023
41e84be
added descriptors for new fields (#1238)
jessicamack Feb 13, 2023
84b766a
update auto_upgrade logic (#1241)
TheRealHaoLiu Feb 14, 2023
3c0ea07
update documentation for the new fields added
thedoubl3j Feb 14, 2023
5894a4a
remove old deployment during upgrade
thedoubl3j Feb 23, 2023
a0fdf65
enable web container to be restarted when configmap/secret change
TheRealHaoLiu Mar 2, 2023
c2f0c21
rename tower_pod to awx_task_pod
TheRealHaoLiu Mar 2, 2023
942cce0
resolve merge error
TheRealHaoLiu Mar 2, 2023
6fd5ca9
remove any reference to project persistance in web deployment
thedoubl3j Mar 9, 2023
1106ef5
add AWX_COMPONENT env var
TheRealHaoLiu Mar 22, 2023
25dfc97
Updated task deployment to fix receptor certs issue.
djyasin Mar 22, 2023
7218e42
[web/task split] fix scale down bug (#1295)
thedoubl3j Mar 23, 2023
b7e6987
Removed errant quotes in main.yml.
djyasin Mar 29, 2023
4bec3f7
Removed extra space.
djyasin Mar 29, 2023
0232807
Update arg for launching web container
TheRealHaoLiu Mar 29, 2023
cd3bfbe
Rename SUPERVISOR_WEB_CONFIG_PATH
TheRealHaoLiu Mar 30, 2023
4a6d185
remove disktype key from example
thedoubl3j Mar 30, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 34 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -716,7 +716,14 @@ spec:
control_plane_priority_class: awx-demo-high-priority
postgres_priority_class: awx-demo-medium-priority
```
#### 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:

- 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.

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 below in the [Assigning AWX pods to specific nodes](#assigning-awx-pods-to-specific-nodes) section.
#### Assigning AWX pods to specific nodes

You can constrain the AWX pods created by the operator to run on a certain subset of nodes. `node_selector` and `postgres_selector` constrains
Expand All @@ -725,18 +732,28 @@ pods to be scheduled onto nodes with matching taints.
The ability to specify topologySpreadConstraints is also allowed through `topology_spread_constraints`
If you want to use affinity rules for your AWX pod you can use the `affinity` option.


| Name | Description | Default |
| --------------------------- | ----------------------------------- | ------- |
| postgres_image | Path of the image to pull | postgres |
| postgres_image_version | Image version to pull | 13 |
| node_selector | AWX pods' nodeSelector | '' |
| topology_spread_constraints | AWX pods' topologySpreadConstraints | '' |
| affinity | AWX pods' affinity rules | '' |
| tolerations | AWX pods' tolerations | '' |
| annotations | AWX pods' annotations | '' |
| postgres_selector | Postgres pods' nodeSelector | '' |
| postgres_tolerations | Postgres pods' tolerations | '' |
If you want to constrain the web and task pods individually, you can do so by specificying the deployment type before the specific setting. For
example, specifying `task_tolerations` will allow the AWX task pod to be scheduled onto nodes with matching taints.

| Name | Description | Default |
| -------------------------------- | ---------------------------------------- | ------- |
| postgres_image | Path of the image to pull | postgres |
| postgres_image_version | Image version to pull | 13 |
| node_selector | AWX pods' nodeSelector | '' |
| web_node_selector | AWX web pods' nodeSelector | '' |
| task_node_selector | AWX task pods' nodeSelector | '' |
| topology_spread_constraints | AWX pods' topologySpreadConstraints | '' |
| web_topology_spread_constraints | AWX web pods' topologySpreadConstraints | '' |
| task_topology_spread_constraints | AWX task pods' topologySpreadConstraints | '' |
| affinity | AWX pods' affinity rules | '' |
| web_affinity | AWX web pods' affinity rules | '' |
| task_affinity | AWX task pods' affinity rules | '' |
| tolerations | AWX pods' tolerations | '' |
| web_tolerations | AWX web pods' tolerations | '' |
| task_tolerations | AWX task pods' tolerations | '' |
| annotations | AWX pods' annotations | '' |
| postgres_selector | Postgres pods' nodeSelector | '' |
| postgres_tolerations | Postgres pods' tolerations | '' |

Example of customization could be:

Expand All @@ -760,6 +777,11 @@ spec:
operator: "Equal"
value: "AWX"
effect: "NoSchedule"
task_tolerations: |
- key: "dedicated"
operator: "Equal"
value: "AWX_task"
effect: "NoSchedule"
postgres_selector: |
disktype: ssd
kubernetes.io/arch: amd64
Expand Down
Loading