Skip to content

Latest commit

 

History

History
122 lines (94 loc) · 3.97 KB

external-db.md

File metadata and controls

122 lines (94 loc) · 3.97 KB

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: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:

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: 8Gi                              👈👈👈

  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-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
...

Prepare directories

You do not need to create the /data/postgres-13 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!