diff --git a/roles/sys-svc-rdbms/tasks/main.yml b/roles/sys-svc-rdbms/tasks/main.yml index 5961544f..4b3fee67 100644 --- a/roles/sys-svc-rdbms/tasks/main.yml +++ b/roles/sys-svc-rdbms/tasks/main.yml @@ -8,10 +8,10 @@ path: "{{ docker_compose.directories.env }}" state: directory mode: "0755" - - name: "For '{{ application_id }}': Create {{database_env}}" + - name: "For '{{ application_id }}': Create {{ database_env }}" template: - src: "env/{{database_type}}.env.j2" - dest: "{{database_env}}" + src: "env/{{ database_type }}.env.j2" + dest: "{{ database_env }}" notify: docker compose up when: not applications | get_app_conf(application_id, 'features.central_database', False) @@ -19,7 +19,7 @@ # I don't know why this includes leads to that the application_id in vars/main.yml of the database role isn't used # This is the behaviour which I want, but I'm still wondering why ;) include_role: - name: "svc-db-{{database_type}}" + name: "svc-db-{{ database_type }}" when: applications | get_app_conf(application_id, 'features.central_database', False) - name: "For '{{ application_id }}': Add Entry for Backup Procedure" diff --git a/roles/sys-svc-rdbms/templates/services/mariadb.yml.j2 b/roles/sys-svc-rdbms/templates/services/mariadb.yml.j2 index 2ab27fb4..3dc62c75 100644 --- a/roles/sys-svc-rdbms/templates/services/mariadb.yml.j2 +++ b/roles/sys-svc-rdbms/templates/services/mariadb.yml.j2 @@ -5,10 +5,10 @@ container_name: {{ application_id | get_entity_name }}-database logging: driver: journald - image: mariadb + image: {{ database_image }}:{{ database_version }} restart: {{ DOCKER_RESTART_POLICY }} env_file: - - {{database_env}} + - {{ database_env }} command: "--transaction-isolation=READ-COMMITTED --binlog-format=ROW" volumes: - database:/var/lib/mysql diff --git a/roles/sys-svc-rdbms/templates/services/postgres.yml.j2 b/roles/sys-svc-rdbms/templates/services/postgres.yml.j2 index efd81466..f12390a2 100644 --- a/roles/sys-svc-rdbms/templates/services/postgres.yml.j2 +++ b/roles/sys-svc-rdbms/templates/services/postgres.yml.j2 @@ -2,13 +2,13 @@ {% if not applications | get_app_conf(application_id, 'features.central_database', False) %} {{ database_host }}: - image: postgres:{{ applications['svc-db-postgres'].version}}-alpine + image: {{ database_image }}:{{ database_version }} container_name: {{ application_id | get_entity_name }}-database env_file: - - {{database_env}} + - {{ database_env }} restart: {{ DOCKER_RESTART_POLICY }} healthcheck: - test: ["CMD-SHELL", "pg_isready -U {{ database_name }}"] + test: ["CMD-SHELL", "pg_isready -U {{ database_user }}"] interval: 10s timeout: 5s retries: 6 diff --git a/roles/sys-svc-rdbms/vars/database.yml b/roles/sys-svc-rdbms/vars/database.yml index a401a28e..84ac16df 100644 --- a/roles/sys-svc-rdbms/vars/database.yml +++ b/roles/sys-svc-rdbms/vars/database.yml @@ -1,20 +1,23 @@ # Helper variables -_dbtype: "{{ (database_type | d('') | trim) }}" -_database_id: "{{ ('svc-db-' ~ _dbtype) if _dbtype else '' }}" -_database_central_name: "{{ (applications | get_app_conf(_database_id, 'docker.services.' ~ _dbtype ~ '.name', False, '')) if _dbtype else '' }}" -_database_consumer_id: "{{ database_application_id | d(application_id) }}" -_database_consumer_entity_name: "{{ _database_consumer_id | get_entity_name }}" -_database_central_enabled: "{{ (applications | get_app_conf(_database_consumer_id, 'features.central_database', False)) if _dbtype else False }}" +_dbtype: "{{ (database_type | d('') | trim) }}" +_database_id: "{{ ('svc-db-' ~ _dbtype) if _dbtype else '' }}" +_database_central_name: "{{ (applications | get_app_conf(_database_id, 'docker.services.' ~ _dbtype ~ '.name', False, '')) if _dbtype else '' }}" +_database_consumer_id: "{{ database_application_id | d(application_id) }}" +_database_consumer_entity_name: "{{ _database_consumer_id | get_entity_name }}" +_database_central_enabled: "{{ (applications | get_app_conf(_database_consumer_id, 'features.central_database', False)) if _dbtype else False }}" +_database_default_version: "{{ applications | get_app_conf(_database_id, 'docker.services.' ~ _dbtype ~ '.version') }}" # Definition -database_name: "{{ _database_consumer_entity_name }}" -database_instance: "{{ _database_central_name if _database_central_enabled else database_name }}" # This could lead to bugs at dedicated database @todo cleanup -database_host: "{{ _database_central_name if _database_central_enabled else 'database' }}" # This could lead to bugs at dedicated database @todo cleanup -database_username: "{{ _database_consumer_entity_name }}" -database_password: "{{ applications | get_app_conf(_database_consumer_id, 'credentials.database_password', true) }}" -database_port: "{{ (ports.localhost.database[_database_id] | d('')) if _dbtype else '' }}" -database_env: "{{ docker_compose.directories.env }}{{ database_type }}.env" -database_url_jdbc: "jdbc:{{ database_type if database_type == 'mariadb' else 'postgresql' }}://{{ database_host }}:{{ database_port }}/{{ database_name }}" -database_url_full: "{{ database_type }}://{{ database_username }}:{{ database_password }}@{{ database_host }}:{{ database_port }}/{{ database_name }}" -database_volume: "{{ _database_consumer_entity_name ~ '_' if not _database_central_enabled }}{{ database_host }}" +database_name: "{{ _database_consumer_entity_name }}" +database_instance: "{{ _database_central_name if _database_central_enabled else database_name }}" # This could lead to bugs at dedicated database @todo cleanup +database_host: "{{ _database_central_name if _database_central_enabled else 'database' }}" # This could lead to bugs at dedicated database @todo cleanup +database_username: "{{ _database_consumer_entity_name }}" +database_password: "{{ applications | get_app_conf(_database_consumer_id, 'credentials.database_password', true) }}" +database_port: "{{ (ports.localhost.database[_database_id] | d('')) if _dbtype else '' }}" +database_env: "{{ docker_compose.directories.env }}{{ database_type }}.env" +database_url_jdbc: "jdbc:{{ database_type if database_type == 'mariadb' else 'postgresql' }}://{{ database_host }}:{{ database_port }}/{{ database_name }}" +database_url_full: "{{ database_type }}://{{ database_username }}:{{ database_password }}@{{ database_host }}:{{ database_port }}/{{ database_name }}" +database_volume: "{{ _database_consumer_entity_name ~ '_' if not _database_central_enabled }}{{ database_host }}" +database_image: "{{ _dbtype }}" +database_version: "{{ applications | get_app_conf( _database_consumer_id, 'docker.services.' ~ _dbtype ~ '.version', False, _database_default_version) }}"