From 8d65b84b89f33c77f95c79d5734f159dcb10c7a7 Mon Sep 17 00:00:00 2001 From: Gabe Muniz Date: Wed, 14 Apr 2021 14:16:04 -0400 Subject: [PATCH] expose settings to use custom volumes and volume mounts --- README.md | 60 +++++++++++++++++++ ansible/templates/crd.yml.j2 | 2 + .../awx-operator.clusterserviceversion.yaml | 7 ++- .../manifests/awx.ansible.com_awxs_crd.yaml | 2 + 4 files changed, 69 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1be5b2e9..c28460d7 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ An [Ansible AWX](https://github.com/ansible/awx) operator for Kubernetes built w * [Containers Resource Requirements](#containers-resource-requirements) * [LDAP Certificate Authority](#ldap-certificate-authority) * [Persisting Projects Directory](#persisting-projects-directory) + * [Custom Volume and Volume Mount Options](#custom-volume-volumemount-options) * [Development](#development) * [Testing](#testing) * [Testing in Docker](#testing-in-docker) @@ -410,6 +411,65 @@ spec: tower_projects_storage_size: 20Gi ``` +#### Custom Volume and Volume Mount Options + +In a scenario where custom volumes and volume mounts are required to either overwrite defaults or mount configuration files. + +| Name | Description | Default | +| ------------------------------ | -------------------------------------------------------- | ------- | +| tower_extra_volumes | Specify extra volumes to add to the application pod | '' | +| tower_web_extra_volume_mounts | Specify volume mounts to be added to Web container | '' | +| tower_task_extra_volume_mounts | Specify volume mounts to be added to Task container | '' | + +Example configuration for ConfigMap + +```yaml +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: -extra-config + namespace: +data: + ansible.cfg: | + [defaults] + remote_tmp = /tmp + [ssh_connection] + ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s + custom.py: | + INSIGHTS_URL_BASE = "example.org" + AWX_CLEANUP_PATHS = True +``` +Example spec file for volumes and volume mounts + +```yaml +--- + tower_task_extra_volume_mounts: | + - name: ansible_cfg + mountPath: /etc/ansible/ansible.cfg + subPath: ansible.cfg + - name: custom_py + mountPath: /etc/tower/conf.d/custom.py + subPath: custom.py + + tower_extra_volumes: | + - name: ansible_cfg + configMap: + defaultMode: 420 + items: + - key: ansible.cfg + path: ansible.cfg + name: -extra-config + - name: custom_py + configMap: + defaultMode: 420 + items: + - key: custom.py + path: custom.py + name: -extra-config + +``` + ## Development ### Testing diff --git a/ansible/templates/crd.yml.j2 b/ansible/templates/crd.yml.j2 index f91d7e48..b9e1fe46 100644 --- a/ansible/templates/crd.yml.j2 +++ b/ansible/templates/crd.yml.j2 @@ -215,8 +215,10 @@ spec: tower_web_extra_env: type: string tower_task_extra_volume_mounts: + description: Specify volume mounts to be added to Task container type: string tower_web_extra_volume_mounts: + description: Specify volume mounts to be added to the Web container type: string tower_redis_image: description: Registry path to the redis container to use 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 1e2d12a9..5868be56 100644 --- a/deploy/olm-catalog/awx-operator/manifests/awx-operator.clusterserviceversion.yaml +++ b/deploy/olm-catalog/awx-operator/manifests/awx-operator.clusterserviceversion.yaml @@ -300,10 +300,11 @@ spec: - urn:alm:descriptor:com.tectonic.ui:advanced - urn:alm:descriptor:com.tectonic.ui:hidden - displayName: Tower Task Extra Volume Mounts + description: Specify volume mounts to be added to Task container path: tower_task_extra_volume_mounts x-descriptors: - urn:alm:descriptor:com.tectonic.ui:advanced - - urn:alm:descriptor:com.tectonic.ui:hidden + - urn:alm:descriptor:com.tectonic.ui:text - displayName: Tower Web Args path: tower_web_args x-descriptors: @@ -320,11 +321,13 @@ spec: - urn:alm:descriptor:com.tectonic.ui:advanced - urn:alm:descriptor:com.tectonic.ui:hidden - displayName: Tower Web Extra Volume Mounts + description: Specify volume mounts to be added to Web container path: tower_web_extra_volume_mounts x-descriptors: - urn:alm:descriptor:com.tectonic.ui:advanced - - urn:alm:descriptor:com.tectonic.ui:hidden + - urn:alm:descriptor:com.tectonic.ui:text - displayName: Tower Extra Volumes + description: Specify extra volumes to add to the application pod path: tower_extra_volumes x-descriptors: - urn:alm:descriptor:com.tectonic.ui:advanced 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 d33dc3cf..9124d98b 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 @@ -227,6 +227,7 @@ spec: tower_task_extra_env: type: string tower_task_extra_volume_mounts: + description: Specify volume mounts to be added to Task container type: string tower_task_privileged: default: false @@ -268,6 +269,7 @@ spec: tower_web_extra_env: type: string tower_web_extra_volume_mounts: + description: Specify volume mounts to be added to web container type: string tower_web_resource_requirements: description: Resource requirements for the web container