diff --git a/ansible/templates/crd.yml.j2 b/ansible/templates/crd.yml.j2 index beec0b25..f91d7e48 100644 --- a/ansible/templates/crd.yml.j2 +++ b/ansible/templates/crd.yml.j2 @@ -224,6 +224,12 @@ spec: tower_postgres_image: description: Registry path to the PostgreSQL container to use type: string + tower_postgres_selector: + description: nodeSelector for the Postgres pods + type: string + tower_postgres_tolerations: + description: node tolerations for the Postgres pods + type: string tower_postgres_resource_requirements: description: Resource requirements for the PostgreSQL container properties: diff --git a/deploy/awx-operator.yaml b/deploy/awx-operator.yaml index 60d4b34c..d3d1c250 100644 --- a/deploy/awx-operator.yaml +++ b/deploy/awx-operator.yaml @@ -226,6 +226,12 @@ spec: tower_postgres_image: description: Registry path to the PostgreSQL container to use type: string + tower_postgres_selector: + description: nodeSelector for the Postgres pods + type: string + tower_postgres_tolerations: + description: node tolerations for the Postgres pods + type: string tower_postgres_resource_requirements: description: Resource requirements for the PostgreSQL container properties: diff --git a/deploy/crds/awx_v1beta1_crd.yaml b/deploy/crds/awx_v1beta1_crd.yaml index beec0b25..f91d7e48 100644 --- a/deploy/crds/awx_v1beta1_crd.yaml +++ b/deploy/crds/awx_v1beta1_crd.yaml @@ -224,6 +224,12 @@ spec: tower_postgres_image: description: Registry path to the PostgreSQL container to use type: string + tower_postgres_selector: + description: nodeSelector for the Postgres pods + type: string + tower_postgres_tolerations: + description: node tolerations for the Postgres pods + type: string tower_postgres_resource_requirements: description: Resource requirements for the PostgreSQL container properties: 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 5755c63e..1e2d12a9 100644 --- a/deploy/olm-catalog/awx-operator/manifests/awx-operator.clusterserviceversion.yaml +++ b/deploy/olm-catalog/awx-operator/manifests/awx-operator.clusterserviceversion.yaml @@ -214,6 +214,16 @@ spec: x-descriptors: - urn:alm:descriptor:com.tectonic.ui:advanced - urn:alm:descriptor:com.tectonic.ui:hidden + - displayName: Tower Postgres Selector + path: tower_postgres_selector + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:advanced + - urn:alm:descriptor:com.tectonic.ui:hidden + - displayName: Tower Postgres Tolerations + path: tower_postgres_tolerations + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:advanced + - urn:alm:descriptor:com.tectonic.ui:hidden - displayName: Tower Postgres Storage Class path: tower_postgres_storage_class x-descriptors: 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 00bf9aed..d33dc3cf 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 @@ -134,6 +134,12 @@ spec: tower_postgres_image: description: Registry path to the PostgreSQL container to use type: string + tower_postgres_selector: + description: nodeSelector for the Postgres pods + type: string + tower_postgres_tolerations: + description: node tolerations for the Postgres pods + type: string tower_postgres_resource_requirements: description: Resource requirements for the PostgreSQL container properties: diff --git a/roles/installer/defaults/main.yml b/roles/installer/defaults/main.yml index 108bee84..151b6317 100644 --- a/roles/installer/defaults/main.yml +++ b/roles/installer/defaults/main.yml @@ -130,6 +130,25 @@ tower_web_extra_volume_mounts: '' tower_redis_image: redis:latest tower_postgres_image: postgres:12 + +# Add a nodeSelector for the Postgres pods. +# It must match a node's labels for the pod to be scheduled on that node. +# Specify as literal block. E.g.: +# tower_postgres_selector: | +# disktype: ssd +# kubernetes.io/arch: amd64 +# kubernetes.io/os: linux +tower_postgres_selector: '' + +# Add node tolerations for the Postgres pods. +#Specify as literal block. E.g.: +# tower_postgres_tolerations: | +# - key: "dedicated" +# operator: "Equal" +# value: "AWX" +# effect: "NoSchedule" +tower_postgres_tolerations: '' + tower_postgres_resource_requirements: requests: storage: 8Gi diff --git a/roles/installer/templates/tower_postgres.yaml.j2 b/roles/installer/templates/tower_postgres.yaml.j2 index 009f7b02..cf7fc232 100644 --- a/roles/installer/templates/tower_postgres.yaml.j2 +++ b/roles/installer/templates/tower_postgres.yaml.j2 @@ -60,6 +60,14 @@ spec: - name: postgres mountPath: '{{ tower_postgres_data_path | dirname }}' subPath: '{{ tower_postgres_data_path | dirname | basename }}' +{% if tower_node_selector %} + nodeSelector: + {{ tower_node_selector | indent(width=8) }} +{% endif %} +{% if tower_tolerations %} + tolerations: + {{ tower_tolerations | indent(width=8) }} +{% endif %} volumeClaimTemplates: - metadata: name: postgres