From 69ae1687b7c29464c05b001da66b4576a261d6ad Mon Sep 17 00:00:00 2001 From: uumas Date: Thu, 12 Mar 2026 00:35:42 +0200 Subject: [PATCH] service: Add support for mongodb --- roles/service/meta/argument_specs.yaml | 1 + roles/service/tasks/database.yaml | 6 ++---- roles/service/vars/database/mariadb.yaml | 1 + roles/service/vars/database/mongo.yaml | 6 ++++++ roles/service/vars/database/postgres.yaml | 1 + roles/service/vars/main/database.yaml | 5 +++++ 6 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 roles/service/vars/database/mongo.yaml diff --git a/roles/service/meta/argument_specs.yaml b/roles/service/meta/argument_specs.yaml index e78f25f..eaa5bc9 100644 --- a/roles/service/meta/argument_specs.yaml +++ b/roles/service/meta/argument_specs.yaml @@ -292,6 +292,7 @@ argument_specs: choices: - postgres - mariadb + - mongo - none required: false default: none diff --git a/roles/service/tasks/database.yaml b/roles/service/tasks/database.yaml index 6628839..1ab6488 100644 --- a/roles/service/tasks/database.yaml +++ b/roles/service/tasks/database.yaml @@ -1,5 +1,5 @@ --- -- name: Incude variables for database {{ service_database_type }} +- name: Include variables for database {{ service_database_type }} ansible.builtin.include_vars: file: database/{{ service_database_type }}.yaml @@ -17,8 +17,6 @@ container_hostname: "{{ service_database_type }}" container_ip: >- {{ service_container_ip | ansible.utils.ipmath(1) if _service_static_ip else '' }} - container_secrets: - - name: "{{ _service_database_name }}" - target: "{{ service_database_type }}" + container_secrets: "{{ _service_database_secrets }}" container_env: "{{ _service_database_env }}" container_auto_update: "{{ service_auto_update }}" diff --git a/roles/service/vars/database/mariadb.yaml b/roles/service/vars/database/mariadb.yaml index 1586af5..9a3588f 100644 --- a/roles/service/vars/database/mariadb.yaml +++ b/roles/service/vars/database/mariadb.yaml @@ -1,6 +1,7 @@ --- _service_database_image: docker.io/library/mariadb:lts _service_database_mount_destination: /var/lib/mysql +_service_database_authenticated: true _service_database_env: MARIADB_RANDOM_ROOT_PASSWORD: "1" MARIADB_USER: "{{ service_name | replace('-', '_') }}" diff --git a/roles/service/vars/database/mongo.yaml b/roles/service/vars/database/mongo.yaml new file mode 100644 index 0000000..d3c9d34 --- /dev/null +++ b/roles/service/vars/database/mongo.yaml @@ -0,0 +1,6 @@ +--- +_service_database_image: docker.io/library/mongo:latest +_service_database_mount_destination: /data/db +_service_database_authenticated: false +_service_database_env: + MONGO_INITDB_DATABASE: "{{ service_name | replace('-', '_') }}" diff --git a/roles/service/vars/database/postgres.yaml b/roles/service/vars/database/postgres.yaml index a88f6ed..6b937d0 100644 --- a/roles/service/vars/database/postgres.yaml +++ b/roles/service/vars/database/postgres.yaml @@ -7,6 +7,7 @@ _service_database_mount_destination: >- and (service_postgres_tag | split('-') | first) is version('18', '<') else '/var/lib/postgresql' }} +_service_database_authenticated: true _service_database_env: POSTGRES_USER: "{{ service_name | replace('-', '_') }}" POSTGRES_PASSWORD_FILE: "/run/secrets/{{ service_database_type }}" diff --git a/roles/service/vars/main/database.yaml b/roles/service/vars/main/database.yaml index 4197755..7271524 100644 --- a/roles/service/vars/main/database.yaml +++ b/roles/service/vars/main/database.yaml @@ -6,3 +6,8 @@ _service_database_networks: >- [service_name] + service_database_additional_networks }} + +_service_database_secret: + name: "{{ _service_database_name }}" + target: "{{ service_database_type }}" +_service_database_secrets: "{{ [_service_database_secret] if _service_database_authenticated else [] }}"