The guide to deploy AWX using your existing external PostgreSQL database. The overview of the procedure is almost the same as the main guide, but a few additional files need to be modified.
Prepare your PostgreSQL.
Here, for the simplest example, I prepared it on another host (named postgres.example.internal
) using Docker Compose.
version: "3"
services:
postgres:
image: postgres:13
ports:
- 5432:5432
restart: always
environment:
- POSTGRES_DB=awx
- POSTGRES_USER=awx
- POSTGRES_PASSWORD=SecurePasswordForMyExternalPostgreSQLForAWX123!
volumes:
- "postgres-data:/var/lib/postgresql/data"
volumes:
postgres-data:
In addition to the steps in the main guide (README.md
), here are a few additional files that need to be modified before you deploy AWX.
Comment out following four lines which are unnecessary settings in base/awx.yaml
.
...
spec:
...
postgres_configuration_secret: awx-postgres-configuration
# postgres_storage_class: awx-postgres-volume 👈👈👈
# postgres_storage_requirements: 👈👈👈
# requests: 👈👈👈
# storage: 8Gi 👈👈👈
projects_persistence: true
projects_existing_claim: awx-projects-claim
...
Replace and modify following lines under awx-postgres-configuration
in base/kustomization.yaml
to suit your environment.
secretGenerator:
...
- name: awx-postgres-configuration
type: Opaque
literals:
- host=postgres.example.internal 👈👈👈
- port=5432 👈👈👈
- database=awx 👈👈👈
- username=awx 👈👈👈
- password=SecurePasswordForMyExternalPostgreSQLForAWX123! 👈👈👈
- sslmode=prefer 👈👈👈
- type=unmanaged 👈👈👈
Note that the type=unmanaged
is the important configuration to use external database.
Comment out following unnecessary lines which related to awx-postgres-13-volume
in base/pv.yaml
.
# --- 👈👈👈
# apiVersion: v1 👈👈👈
# kind: PersistentVolume 👈👈👈
# metadata: 👈👈👈
# name: awx-postgres-13-volume 👈👈👈
# spec: 👈👈👈
# accessModes: 👈👈👈
# - ReadWriteOnce 👈👈👈
# persistentVolumeReclaimPolicy: Retain 👈👈👈
# capacity: 👈👈👈
# storage: 8Gi 👈👈👈
# storageClassName: awx-postgres-volume 👈👈👈
# hostPath: 👈👈👈
# path: /data/postgres-13 👈👈👈
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: awx-projects-volume
...
You do not need to create the /data/postgres-13
directory that the main guide instructs you to create.
The other steps are the same as in the main guide (README.md
). Have fun!