3.4 KiB
Deploy AWX using external PostgreSQL database
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.
Table of Contents
Prepare PostgreSQL
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:12
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:
Prepare required files
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.
Modify base/awx.yaml
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: 2Gi 👈👈👈
projects_persistence: true
projects_existing_claim: awx-projects-claim
...
Modify base/kustomization.yaml
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.
Modify base/pv.yaml
Comment out following unnecessary lines which related to awx-postgres-volume in base/pv.yaml.
# --- 👈👈👈
# apiVersion: v1 👈👈👈
# kind: PersistentVolume 👈👈👈
# metadata: 👈👈👈
# name: awx-postgres-volume 👈👈👈
# spec: 👈👈👈
# accessModes: 👈👈👈
# - ReadWriteOnce 👈👈👈
# persistentVolumeReclaimPolicy: Retain 👈👈👈
# capacity: 👈👈👈
# storage: 2Gi 👈👈👈
# storageClassName: awx-postgres-volume 👈👈👈
# hostPath: 👈👈👈
# path: /data/postgres 👈👈👈
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: awx-projects-volume
...
Prepare directories
You do not need to create the /data/postgres directory that the main guide instructs you to create.
The next steps
The other steps are the same as in the main guide (README.md). Have fun!