Solved database feature naming bug

This commit is contained in:
Kevin Veen-Birkenbach 2025-05-09 19:00:01 +02:00
parent e7c193f409
commit 27bfee2438
No known key found for this signature in database
GPG Key ID: 44D8F11FD62F878E
19 changed files with 26 additions and 24 deletions

View File

@ -5,6 +5,8 @@
msg: | msg: |
database_instance: "{{ database_instance | default('undefined') }}" database_instance: "{{ database_instance | default('undefined') }}"
database_name: "{{ database_name | 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_username: "{{ database_username | default('undefined') }}"
database_password: "{{ database_password | default('undefined') }}" database_password: "{{ database_password | default('undefined') }}"
when: enable_debug | bool when: enable_debug | bool

View File

@ -16,12 +16,12 @@
src: "env/{{database_type}}.env.j2" src: "env/{{database_type}}.env.j2"
dest: "{{database_env}}" dest: "{{database_env}}"
notify: docker compose project build and setup 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" - name: "Create central database"
include_role: include_role:
name: "docker-{{database_type}}" 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" - name: "Add database to backup"
include_tasks: "{{ playbook_dir }}/roles/backup-docker-to-local/tasks/seed-database-to-backup.yml" include_tasks: "{{ playbook_dir }}/roles/backup-docker-to-local/tasks/seed-database-to-backup.yml"

View File

@ -1,5 +1,5 @@
# This template needs to be included in docker-compose.yml, which depend on a mariadb database # 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: database:
container_name: {{application_id}}-database container_name: {{application_id}}-database
logging: logging:

View File

@ -1,5 +1,5 @@
# This template needs to be included in docker-compose.yml, which depend on a postgres database # 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: database:
image: postgres:{{applications.postgres.version}}-alpine image: postgres:{{applications.postgres.version}}-alpine
container_name: {{application_id}}-database container_name: {{application_id}}-database

View File

@ -1,5 +1,5 @@
database_instance: "{{ 'central-' + database_type if applications[application_id].features.database | bool else application_id }}" database_instance: "{{ 'central-' + database_type if applications | is_feature_enabled('central_database',application_id) else application_id }}"
database_host: "{{ 'central-' + database_type if applications[application_id].features.database | bool else 'database' }}" 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_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_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 }}" database_port: "{{ 3306 if database_type == 'mariadb' else 5432 }}"

View File

@ -11,7 +11,7 @@
command: command:
cmd: "docker network connect {{applications.discourse.network}} central-{{ database_type }}" cmd: "docker network connect {{applications.discourse.network}} central-{{ database_type }}"
ignore_errors: true ignore_errors: true
when: applications[application_id].features.database | bool when: applications | is_feature_enabled('central_database',application_id)
listen: recreate discourse listen: recreate discourse
- name: rebuild discourse - name: rebuild discourse

View File

@ -83,7 +83,7 @@
cmd: "docker network connect central_postgres {{applications.discourse.container}}" cmd: "docker network connect central_postgres {{applications.discourse.container}}"
ignore_errors: true ignore_errors: true
when: when:
- applications[application_id].features.database | bool - applications | is_feature_enabled('central_database',application_id)
- run_once_docker_discourse is not defined - run_once_docker_discourse is not defined
- name: "remove central database from {{application_id}}_default" - name: "remove central database from {{application_id}}_default"
@ -91,7 +91,7 @@
cmd: "docker network disconnect {{applications.discourse.network}} central-{{ database_type }}" cmd: "docker network disconnect {{applications.discourse.network}} central-{{ database_type }}"
ignore_errors: true ignore_errors: true
when: when:
- applications[application_id].features.database | bool - applications | is_feature_enabled('central_database',application_id)
- run_once_docker_discourse is not defined - run_once_docker_discourse is not defined
- name: run the docker_discourse tasks once - name: run the docker_discourse tasks once

View File

@ -1,5 +1,5 @@
templates: templates:
{% if not applications[application_id].features.database | bool %} {% if not applications | is_feature_enabled('central_database',application_id) %}
- "templates/postgres.template.yml" - "templates/postgres.template.yml"
{% endif %} {% endif %}
#- "templates/redis.template.yml" #- "templates/redis.template.yml"

View File

@ -1,7 +1,7 @@
--- ---
application_id: "matomo" application_id: "matomo"
database_type: "mariadb" 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 # I don't know if this is still necessary
domain: "{{domains.matomo}}" domain: "{{ domains[application_id] }}"

View File

@ -7,7 +7,7 @@
- name: "create {{database_name}} database" - name: "create {{database_name}} database"
include_role: include_role:
name: docker-postgres 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" - name: "include seed-database-to-backup.yml"
include_tasks: "{{ playbook_dir }}/roles/backup-docker-to-local/tasks/seed-database-to-backup.yml" include_tasks: "{{ playbook_dir }}/roles/backup-docker-to-local/tasks/seed-database-to-backup.yml"

View File

@ -1,6 +1,6 @@
application_id: "pgadmin" application_id: "pgadmin"
database_type: "postgres" 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" database_var_file: "{{playbook_dir}}/roles/docker-central-database/vars/database.yml"
pgadmin_user: 5050 pgadmin_user: 5050
pgadmin_group: "{{pgadmin_user}}" pgadmin_group: "{{pgadmin_user}}"

View File

@ -1,3 +1,3 @@
application_id: "phpmyadmin" application_id: "phpmyadmin"
database_type: "mariadb" database_type: "mariadb"
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)"

View File

@ -27,7 +27,7 @@ DB_DATABASE={{database_name}}
DB_USERNAME={{database_username}} DB_USERNAME={{database_username}}
DB_PASSWORD={{database_password}} 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}} MYSQL_ROOT_PASSWORD={{database_password}}
DB_PREFIX=null DB_PREFIX=null
DB_DUMP_PATH='/usr/bin' DB_DUMP_PATH='/usr/bin'

View File

@ -1,10 +1,10 @@
{# This template needs to be included in docker-compose.yml #} {# This template needs to be included in docker-compose.yml #}
networks: 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 }}: central_{{ database_type }}:
external: true external: true
{% endif %} {% 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: central_ldap:
external: true external: true
{% endif %} {% endif %}

View File

@ -1,5 +1,5 @@
{# This needs to be included in docker-compose.yml which just contain a database volume #} {# 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: volumes:
database: database:
{% endif %} {% endif %}

View File

@ -1,6 +1,6 @@
{# This template needs to be included in docker-compose.yml which contain a database and additional volumes #} {# This template needs to be included in docker-compose.yml which contain a database and additional volumes #}
volumes: volumes:
{% if not (applications[application_id].features.database | default(false)) | bool %} {% if not applications | is_feature_enabled('central_database',application_id) %}
database: database:
{% endif %} {% endif %}
{{ "\n" }} {{ "\n" }}

View File

@ -1,6 +1,6 @@
{# This template needs to be included in docker-compose.yml containers which depend on a database and additional containers #} {# This template needs to be included in docker-compose.yml containers which depend on a database and additional containers #}
depends_on: depends_on:
{% if not applications[application_id].features.database | bool %} {% if not applications | is_feature_enabled('central_database',application_id) %}
database: database:
condition: service_healthy condition: service_healthy
{% endif %} {% endif %}

View File

@ -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 #} {# This template needs to be included in docker-compose.yml containers, which depend on a database, redis and optional additional volumes #}
depends_on: depends_on:
{% if not applications[application_id].features.database | bool %} {% if not applications | is_feature_enabled('central_database',application_id) %}
database: database:
condition: service_healthy condition: service_healthy
{% endif %} {% endif %}

View File

@ -1,5 +1,5 @@
{# This template needs to be included in docker-compose.yml containers, which just depend on a database #} {# 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: depends_on:
database: database:
condition: service_healthy condition: service_healthy