backup-postgres-config.yaml 1.1 KB

123456789101112131415161718192021222324
  1. apiVersion: v1
  2. kind: ConfigMap
  3. metadata:
  4. name: "postgres-backup-hook-config-map"
  5. annotations:
  6. rollme: {{ randAlphaNum 5 | quote }}
  7. data:
  8. entrypoint.sh: |-
  9. #!/bin/bash
  10. echo "Fetching password from config.php"
  11. # sed removes ' , => spaces and db* from the string
  12. DBUSER=$(cat /nc-config/config.php | grep "dbuser" | sed "s/dbuser\| \|'\|,\|=>//g")
  13. DBPASS=$(cat /nc-config/config.php | grep "dbpassword" | sed "s/dbpassword\| \|'\|,\|=>//g")
  14. DBNAME=$(cat /nc-config/config.php | grep "dbname" | sed "s/dbname\| \|'\|,\|=>//g")
  15. [ -n "$DBUSER" ] && [ -n "$DBPASS" ] && [ -n "$DBNAME" ] && echo "User, Database and password fetched from config.php"
  16. until pg_isready -U ${POSTGRES_USER} -h ${POSTGRES_HOST}; do sleep 2; done
  17. # pg_dump will automatically use the password from the PGPASSWORD environment variable
  18. echo "Creating backup of ${DBNAME} database as ${DBUSER}"
  19. PGPASSWORD=${DBPASS} pg_dump -U $DBUSER -d $DBNAME --host=${POSTGRES_HOST} > /postgres_backups/$BACKUP_NAME \
  20. && echo "Backup created successfully" \
  21. || echo "Backup failed"