diff --git a/roles/backup-docker-to-local/tasks/seed-database-to-backup.yml b/roles/backup-docker-to-local/tasks/seed-database-to-backup.yml index 0cd2bb45..3a917503 100644 --- a/roles/backup-docker-to-local/tasks/seed-database-to-backup.yml +++ b/roles/backup-docker-to-local/tasks/seed-database-to-backup.yml @@ -5,6 +5,8 @@ msg: | database_instance: "{{ database_instance | default('undefined') }}" database_name: "{{ database_name | default('undefined') }}" + database_type: "{{ database_type | default('undefined') }}" + database_host: "{{ database_host | default('undefined') }}" database_username: "{{ database_username | default('undefined') }}" database_password: "{{ database_password | default('undefined') }}" when: enable_debug | bool diff --git a/roles/docker-central-database/tasks/main.yml b/roles/docker-central-database/tasks/main.yml index 812f9ec1..6a139eb0 100644 --- a/roles/docker-central-database/tasks/main.yml +++ b/roles/docker-central-database/tasks/main.yml @@ -16,12 +16,12 @@ src: "env/{{database_type}}.env.j2" dest: "{{database_env}}" notify: docker compose project build and setup - when: not applications[application_id].features.database | bool + when: not applications | is_feature_enabled('central_database',application_id) - name: "Create central database" include_role: name: "docker-{{database_type}}" - when: applications[application_id].features.database | bool + when: applications | is_feature_enabled('central_database',application_id) - name: "Add database to backup" include_tasks: "{{ playbook_dir }}/roles/backup-docker-to-local/tasks/seed-database-to-backup.yml" \ No newline at end of file diff --git a/roles/docker-central-database/templates/services/mariadb.yml.j2 b/roles/docker-central-database/templates/services/mariadb.yml.j2 index 04c9e1a6..3ec4a9c1 100644 --- a/roles/docker-central-database/templates/services/mariadb.yml.j2 +++ b/roles/docker-central-database/templates/services/mariadb.yml.j2 @@ -1,5 +1,5 @@ # This template needs to be included in docker-compose.yml, which depend on a mariadb database -{% if not applications[application_id].features.database | bool %} +{% if not applications | is_feature_enabled('central_database',application_id) %} database: container_name: {{application_id}}-database logging: diff --git a/roles/docker-central-database/templates/services/postgres.yml.j2 b/roles/docker-central-database/templates/services/postgres.yml.j2 index 847c05ee..ea1279b8 100644 --- a/roles/docker-central-database/templates/services/postgres.yml.j2 +++ b/roles/docker-central-database/templates/services/postgres.yml.j2 @@ -1,5 +1,5 @@ # This template needs to be included in docker-compose.yml, which depend on a postgres database -{% if not applications[application_id].features.database | bool %} +{% if not applications | is_feature_enabled('central_database',application_id) %} database: image: postgres:{{applications.postgres.version}}-alpine container_name: {{application_id}}-database diff --git a/roles/docker-central-database/vars/database.yml b/roles/docker-central-database/vars/database.yml index 3e066032..e00717b2 100644 --- a/roles/docker-central-database/vars/database.yml +++ b/roles/docker-central-database/vars/database.yml @@ -1,5 +1,5 @@ -database_instance: "{{ 'central-' + database_type if applications[application_id].features.database | bool else application_id }}" -database_host: "{{ 'central-' + database_type if applications[application_id].features.database | bool else 'database' }}" +database_instance: "{{ 'central-' + database_type if applications | is_feature_enabled('central_database',application_id) else application_id }}" +database_host: "{{ 'central-' + database_type if applications | is_feature_enabled('central_database',application_id) else 'database' }}" database_name: "{{ applications[application_id].credentials.database.name | default( application_id ) }}" # The overwritte configuration is needed by bigbluebutton database_username: "{{ applications[application_id].credentials.database.username | default( application_id )}}" # The overwritte configuration is needed by bigbluebutton database_port: "{{ 3306 if database_type == 'mariadb' else 5432 }}" diff --git a/roles/docker-discourse/handlers/main.yml b/roles/docker-discourse/handlers/main.yml index e066721c..3dbb7091 100644 --- a/roles/docker-discourse/handlers/main.yml +++ b/roles/docker-discourse/handlers/main.yml @@ -11,7 +11,7 @@ command: cmd: "docker network connect {{applications.discourse.network}} central-{{ database_type }}" ignore_errors: true - when: applications[application_id].features.database | bool + when: applications | is_feature_enabled('central_database',application_id) listen: recreate discourse - name: rebuild discourse diff --git a/roles/docker-discourse/tasks/main.yml b/roles/docker-discourse/tasks/main.yml index 884e52c7..ec8ce3bd 100644 --- a/roles/docker-discourse/tasks/main.yml +++ b/roles/docker-discourse/tasks/main.yml @@ -83,7 +83,7 @@ cmd: "docker network connect central_postgres {{applications.discourse.container}}" ignore_errors: true when: - - applications[application_id].features.database | bool + - applications | is_feature_enabled('central_database',application_id) - run_once_docker_discourse is not defined - name: "remove central database from {{application_id}}_default" @@ -91,7 +91,7 @@ cmd: "docker network disconnect {{applications.discourse.network}} central-{{ database_type }}" ignore_errors: true when: - - applications[application_id].features.database | bool + - applications | is_feature_enabled('central_database',application_id) - run_once_docker_discourse is not defined - name: run the docker_discourse tasks once diff --git a/roles/docker-discourse/templates/discourse_application.yml.j2 b/roles/docker-discourse/templates/discourse_application.yml.j2 index 4e009bbf..b9ed0ae1 100644 --- a/roles/docker-discourse/templates/discourse_application.yml.j2 +++ b/roles/docker-discourse/templates/discourse_application.yml.j2 @@ -1,5 +1,5 @@ templates: -{% if not applications[application_id].features.database | bool %} +{% if not applications | is_feature_enabled('central_database',application_id) %} - "templates/postgres.template.yml" {% endif %} #- "templates/redis.template.yml" diff --git a/roles/docker-matomo/vars/main.yml b/roles/docker-matomo/vars/main.yml index 6e4a01fc..107e478f 100644 --- a/roles/docker-matomo/vars/main.yml +++ b/roles/docker-matomo/vars/main.yml @@ -1,7 +1,7 @@ --- -application_id: "matomo" +application_id: "matomo" database_type: "mariadb" -database_password: "{{applications.matomo.credentials.database_password}}" +database_password: "{{ applications[application_id].credentials.database_password }}" # I don't know if this is still necessary -domain: "{{domains.matomo}}" \ No newline at end of file +domain: "{{ domains[application_id] }}" \ No newline at end of file diff --git a/roles/docker-matrix-compose/tasks/create-and-seed-database.yml b/roles/docker-matrix-compose/tasks/create-and-seed-database.yml index 36e512c4..b8a16768 100644 --- a/roles/docker-matrix-compose/tasks/create-and-seed-database.yml +++ b/roles/docker-matrix-compose/tasks/create-and-seed-database.yml @@ -7,7 +7,7 @@ - name: "create {{database_name}} database" include_role: name: docker-postgres - when: applications[application_id].features.database | bool + when: applications | is_feature_enabled('central_database',application_id) - name: "include seed-database-to-backup.yml" include_tasks: "{{ playbook_dir }}/roles/backup-docker-to-local/tasks/seed-database-to-backup.yml" \ No newline at end of file diff --git a/roles/docker-pgadmin/vars/main.yml b/roles/docker-pgadmin/vars/main.yml index 98b56d48..714bfed0 100644 --- a/roles/docker-pgadmin/vars/main.yml +++ b/roles/docker-pgadmin/vars/main.yml @@ -1,6 +1,6 @@ application_id: "pgadmin" database_type: "postgres" -database_host: "{{ 'central-' + database_type if applications[application_id].features.database }}" +database_host: "{{ 'central-' + database_type if applications | is_feature_enabled('central_database',application_id)" database_var_file: "{{playbook_dir}}/roles/docker-central-database/vars/database.yml" pgadmin_user: 5050 pgadmin_group: "{{pgadmin_user}}" \ No newline at end of file diff --git a/roles/docker-phpmyadmin/vars/main.yml b/roles/docker-phpmyadmin/vars/main.yml index 73a054d9..e044e087 100644 --- a/roles/docker-phpmyadmin/vars/main.yml +++ b/roles/docker-phpmyadmin/vars/main.yml @@ -1,3 +1,3 @@ application_id: "phpmyadmin" database_type: "mariadb" -database_host: "{{ 'central-' + database_type if applications[application_id].features.database}}" \ No newline at end of file +database_host: "{{ 'central-' + database_type if applications | is_feature_enabled('central_database',application_id)" \ No newline at end of file diff --git a/roles/docker-snipe_it/templates/env.j2 b/roles/docker-snipe_it/templates/env.j2 index c3670720..f609a3e3 100644 --- a/roles/docker-snipe_it/templates/env.j2 +++ b/roles/docker-snipe_it/templates/env.j2 @@ -27,7 +27,7 @@ DB_DATABASE={{database_name}} DB_USERNAME={{database_username}} DB_PASSWORD={{database_password}} -{% if not applications[application_id].features.database | bool %} +{% if not applications | is_feature_enabled('central_database',application_id) %} MYSQL_ROOT_PASSWORD={{database_password}} DB_PREFIX=null DB_DUMP_PATH='/usr/bin' diff --git a/templates/docker/compose/networks.yml.j2 b/templates/docker/compose/networks.yml.j2 index 9bce2262..54086381 100644 --- a/templates/docker/compose/networks.yml.j2 +++ b/templates/docker/compose/networks.yml.j2 @@ -1,10 +1,10 @@ {# This template needs to be included in docker-compose.yml #} networks: -{% if applications | is_feature_enabled('central_database',application_id) | bool and database_type is defined %} +{% if applications | is_feature_enabled('central_database',application_id) and database_type is defined %} central_{{ database_type }}: external: true {% endif %} -{% if applications[application_id].get('features', {}).get('ldap', false) | bool and applications.ldap.network.docker | bool %} +{% if applications[application_id].get('features', {}).get('ldap', false) and applications.ldap.network.docker | bool %} central_ldap: external: true {% endif %} diff --git a/templates/docker/compose/volumes-just-database.yml.j2 b/templates/docker/compose/volumes-just-database.yml.j2 index c7266223..46583df6 100644 --- a/templates/docker/compose/volumes-just-database.yml.j2 +++ b/templates/docker/compose/volumes-just-database.yml.j2 @@ -1,5 +1,5 @@ {# This needs to be included in docker-compose.yml which just contain a database volume #} -{% if not (applications[application_id].features.database | default(false)) | bool %} +{% if not applications | is_feature_enabled('central_database',application_id) %} volumes: database: {% endif %} diff --git a/templates/docker/compose/volumes.yml.j2 b/templates/docker/compose/volumes.yml.j2 index 194063fa..cd9addfc 100644 --- a/templates/docker/compose/volumes.yml.j2 +++ b/templates/docker/compose/volumes.yml.j2 @@ -1,6 +1,6 @@ {# This template needs to be included in docker-compose.yml which contain a database and additional volumes #} volumes: -{% if not (applications[application_id].features.database | default(false)) | bool %} +{% if not applications | is_feature_enabled('central_database',application_id) %} database: {% endif %} {{ "\n" }} \ No newline at end of file diff --git a/templates/docker/container/depends-on-also-database.yml.j2 b/templates/docker/container/depends-on-also-database.yml.j2 index ee93bb2f..1363e8f7 100644 --- a/templates/docker/container/depends-on-also-database.yml.j2 +++ b/templates/docker/container/depends-on-also-database.yml.j2 @@ -1,6 +1,6 @@ {# This template needs to be included in docker-compose.yml containers which depend on a database and additional containers #} depends_on: -{% if not applications[application_id].features.database | bool %} +{% if not applications | is_feature_enabled('central_database',application_id) %} database: condition: service_healthy {% endif %} diff --git a/templates/docker/container/depends-on-database-redis.yml.j2 b/templates/docker/container/depends-on-database-redis.yml.j2 index fd73adb4..16c4aefc 100644 --- a/templates/docker/container/depends-on-database-redis.yml.j2 +++ b/templates/docker/container/depends-on-database-redis.yml.j2 @@ -1,6 +1,6 @@ {# This template needs to be included in docker-compose.yml containers, which depend on a database, redis and optional additional volumes #} depends_on: -{% if not applications[application_id].features.database | bool %} +{% if not applications | is_feature_enabled('central_database',application_id) %} database: condition: service_healthy {% endif %} diff --git a/templates/docker/container/depends-on-just-database.yml.j2 b/templates/docker/container/depends-on-just-database.yml.j2 index 1c9afab0..db43d852 100644 --- a/templates/docker/container/depends-on-just-database.yml.j2 +++ b/templates/docker/container/depends-on-just-database.yml.j2 @@ -1,5 +1,5 @@ {# This template needs to be included in docker-compose.yml containers, which just depend on a database #} -{% if not applications[application_id].features.database | bool %} +{% if not applications | is_feature_enabled('central_database',application_id) %} depends_on: database: condition: service_healthy