From a10bf366e68e350e2eb4d5ec18f074faf0baa111 Mon Sep 17 00:00:00 2001 From: uumas Date: Fri, 27 Jun 2025 00:03:30 +0300 Subject: [PATCH] service: Allow custom postgres image --- roles/service/defaults/main.yaml | 1 + roles/service/meta/argument_specs.yaml | 6 ++++++ roles/service/tasks/database.yaml | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/roles/service/defaults/main.yaml b/roles/service/defaults/main.yaml index 586a1ab..970d4a0 100644 --- a/roles/service/defaults/main.yaml +++ b/roles/service/defaults/main.yaml @@ -11,6 +11,7 @@ service_container_secrets: [] service_container_env: {} service_database_type: none +service_postgres_image: docker.io/library/postgres service_redis: false service_additional_containers: [] diff --git a/roles/service/meta/argument_specs.yaml b/roles/service/meta/argument_specs.yaml index 21fa08f..c3bbba9 100644 --- a/roles/service/meta/argument_specs.yaml +++ b/roles/service/meta/argument_specs.yaml @@ -182,11 +182,17 @@ argument_specs: - postgres - none default: none + service_postgres_image: + description: Postgresql image to use. + type: str + required: false + default: docker.io/library/postgres service_postgres_tag: description: - Postgresql version to use. - Can be debian (n) or alpine-based (n-alpine), where n can be major version like 14 or minor like 14.13. - Required if service_database_type is postgres, does nothing otherwise + - If a custom postgres image is specified, see that image documentation for supported tags. type: str required: false service_redis: diff --git a/roles/service/tasks/database.yaml b/roles/service/tasks/database.yaml index 18ae880..6d4cd05 100644 --- a/roles/service/tasks/database.yaml +++ b/roles/service/tasks/database.yaml @@ -4,7 +4,7 @@ name: container vars: container_name: "{{ service_name }}-{{ service_database_type }}" # This doesn't use _service_database_name to allow container role handlers to work - container_image: "docker.io/library/postgres:{{ service_postgres_tag }}" + container_image: "{{ service_postgres_image }}:{{ service_postgres_tag }}" container_mounts: - type: volume source: "{{ _service_database_name }}"