43 lines
2.1 KiB
YAML
43 lines
2.1 KiB
YAML
---
|
|
|
|
# This utility aims to determine if there is some existing Postgres version in use or not.
|
|
# If there is, it also tries to detect the Docker image that corresponds to that version.
|
|
|
|
- name: Initialize Postgres version determination variables (default to empty)
|
|
set_fact:
|
|
matrix_backup_borg_postgresql_detection_pg_version_path: "{{ matrix_postgres_data_path }}/PG_VERSION"
|
|
matrix_backup_borg_postgresql_detected_existing: false
|
|
matrix_backup_borg_postgresql_detected_version: ""
|
|
matrix_backup_borg_version: ""
|
|
|
|
- name: Determine existing Postgres version (check PG_VERSION file)
|
|
stat:
|
|
path: "{{ matrix_backup_borg_postgresql_detection_pg_version_path }}"
|
|
register: result_pg_version_stat
|
|
|
|
- set_fact:
|
|
matrix_backup_borg_postgresql_detected_existing: true
|
|
when: "result_pg_version_stat.stat.exists"
|
|
|
|
- name: Determine existing Postgres version (read PG_VERSION file)
|
|
slurp:
|
|
src: "{{ matrix_backup_borg_postgresql_detection_pg_version_path }}"
|
|
register: result_pg_version
|
|
when: matrix_backup_borg_postgresql_detected_existing|bool
|
|
|
|
- name: Determine existing Postgres version (make sense of PG_VERSION file)
|
|
set_fact:
|
|
matrix_backup_borg_postgresql_detected_version: "{{ result_pg_version['content']|b64decode|replace('\n', '') }}"
|
|
when: matrix_backup_borg_postgresql_detected_existing|bool
|
|
|
|
- name: Determine corresponding Docker image version to detected version
|
|
set_fact:
|
|
matrix_backup_borg_version: "{{ matrix_backup_borg_postgresql_detected_version }}"
|
|
when: "matrix_backup_borg_postgresql_detected_version == '12' or matrix_backup_borg_postgresql_detected_version.startswith('12.') or matrix_backup_borg_postgresql_detected_version == '13' or matrix_backup_borg_postgresql_detected_version.startswith('13.') or matrix_backup_borg_postgresql_detected_version == '14' or matrix_backup_borg_postgresql_detected_version.startswith('14.')"
|
|
|
|
- name: Fail if existing Postgres version is not supported by borgmatic docker image
|
|
fail:
|
|
msg: >-
|
|
Your Postgres v{{ matrix_backup_borg_postgresql_detected_version }} is not supported.
|
|
when: "matrix_backup_borg_version == ''"
|