diff --git a/README.md b/README.md index ead3c88a..a53098c2 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ metadata: name: awx ``` -> The metadata.name you provide, will be the name of the resulting AWX deployment. If you deploy more than one to the same namespace, be sure to use unique names. +> The metadata.name you provide, will be the name of the resulting AWX deployment. If you deploy more than one to the same namespace, be sure to use unique names. Finally, use `kubectl` to create the awx instance in your cluster: @@ -287,6 +287,7 @@ If you are attempting to do this on an OpenShift cluster, you will need to grant Again, this is the most relaxed SCC that is provided by OpenShift, so be sure to familiarize yourself with the security concerns that accompany this action. + #### Containers Resource Requirements The resource requirements for both, the task and the web containers are configurable - both the lower end (requests) and the upper end (limits). @@ -318,6 +319,35 @@ spec: memory: 2Gi ``` +#### Assigning AWX pods to specific nodes + +You can constrain the AWX pods created by the operator to run on a certain subset of nodes. `tower_node_selector` constrains +the AWX pods to run only on the nodes that match all the specified key/value pairs. `tower_tolerations` allow the AWX +pods to be scheduled onto nodes with matching taints. + + +| Name | Description | Default | +| ------------------- | ---------------------- | ------- | +| tower_node_selector | AWX pods' nodeSelector | '' | +| tower_tolerations | AWX pods' tolerations | '' | + +Example of customization could be: + +```yaml +--- +spec: + ... + tower_node_selector: | + disktype: ssd + kubernetes.io/arch: amd64 + kubernetes.io/os: linux + tower_tolerations: | + - key: "dedicated" + operator: "Equal" + value: "AWX" + effect: "NoSchedule" +``` + #### LDAP Certificate Authority If the variable `ldap_cacert_secret` is provided, the operator will look for a the data field `ldap-ca.crt` in the specified secret. diff --git a/deploy/olm-catalog/awx-operator/manifests/awx-operator.clusterserviceversion.yaml b/deploy/olm-catalog/awx-operator/manifests/awx-operator.clusterserviceversion.yaml index 6bf2167a..b5eb091d 100644 --- a/deploy/olm-catalog/awx-operator/manifests/awx-operator.clusterserviceversion.yaml +++ b/deploy/olm-catalog/awx-operator/manifests/awx-operator.clusterserviceversion.yaml @@ -311,6 +311,16 @@ spec: x-descriptors: - urn:alm:descriptor:com.tectonic.ui:advanced - urn:alm:descriptor:com.tectonic.ui:hidden + - displayName: Tower Node Selector + path: tower_node_selector + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:advanced + - urn:alm:descriptor:com.tectonic.ui:hidden + - displayName: Tower Tolerations + path: tower_tolerations + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:advanced + - urn:alm:descriptor:com.tectonic.ui:hidden statusDescriptors: - description: Route to access the instance deployed displayName: URL diff --git a/deploy/olm-catalog/awx-operator/manifests/awx.ansible.com_awxs_crd.yaml b/deploy/olm-catalog/awx-operator/manifests/awx.ansible.com_awxs_crd.yaml index 76b7bb7a..6a1a77d0 100644 --- a/deploy/olm-catalog/awx-operator/manifests/awx.ansible.com_awxs_crd.yaml +++ b/deploy/olm-catalog/awx-operator/manifests/awx.ansible.com_awxs_crd.yaml @@ -103,6 +103,9 @@ spec: description: Port to use for the loadbalancer type: number default: 80 + tower_node_selector: + description: nodeSelector for the AWX pods + type: string tower_postgres_configuration_secret: description: Secret where the database configuration can be found type: string @@ -207,6 +210,9 @@ spec: type: string type: object type: object + tower_tolerations: + description: node tolerations for the AWX pods + type: string tower_web_args: items: type: string