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 }}"