mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-12-09 02:45:17 +00:00
- Replace legacy docker_container-based MariaDB deployment with docker-compose based workflow - Add custom Dockerfile and docker-compose templates for MariaDB - Split MariaDB command into separate arguments to avoid entrypoint parsing errors - Introduce MARIADB_CUSTOM_IMAGE and MARIADB_EXPOSE_LOCAL variables - Add docker_compose_flush_handlers to ensure correct handler execution on first run - Replace utils/once/finalize.yml with utils/once/flag.yml for new run-once semantics - Align variable naming with Infinito.Nexus UPPERCASE conventions - Fix PostgreSQL custom image variable name (POSTGRES_CUSTOM_IMAGE_NAME → POSTGRES_CUSTOM_IMAGE) - Remove obsolete flush_handlers var injection in svc-db-postgres/tasks/main.yml - General cleanup after migration from Ansible 2.18 → 2.20 Conversation reference: https://chatgpt.com/share/69306c81-9934-800f-b317-f53a8f246a73
36 lines
2.7 KiB
YAML
36 lines
2.7 KiB
YAML
# General
|
|
application_id: svc-db-postgres
|
|
entity_name: "{{ application_id | get_entity_name }}"
|
|
|
|
# Docker Compose
|
|
database_type: "{{ entity_name }}"
|
|
|
|
## Postgres
|
|
POSTGRES_VOLUME: "{{ applications | get_app_conf(application_id, 'docker.volumes.data') }}"
|
|
POSTGRES_CONTAINER: "{{ applications | get_app_conf(application_id, 'docker.services.' ~ entity_name ~ '.name') }}"
|
|
POSTGRES_IMAGE: "{{ applications | get_app_conf(application_id, 'docker.services.' ~ entity_name ~ '.image') }}"
|
|
POSTGRES_VERSION: "{{ applications | get_app_conf(application_id, 'docker.services.' ~ entity_name ~ '.version') }}"
|
|
POSTGRES_VERSION_MAJOR: "{{ POSTGRES_VERSION | regex_replace('^([0-9]+).*', '\\1') }}"
|
|
POSTGRES_NETWORK_NAME: "{{ applications | get_app_conf(application_id, 'docker.network') }}"
|
|
POSTGRES_SUBNET: "{{ networks.local['svc-db-postgres'].subnet }}"
|
|
POSTGRES_PASSWORD: "{{ applications | get_app_conf(application_id, 'credentials.POSTGRES_PASSWORD') }}"
|
|
POSTGRES_PORT: "{{ database_port | default(ports.localhost.database[ application_id ]) }}"
|
|
POSTGRES_EXPOSE_LOCAL: True # Exposes the db to localhost, almost everytime neccessary
|
|
POSTGRES_CUSTOM_IMAGE: "postgres_custom"
|
|
POSTGRES_LOCAL_HOST: "127.0.0.1"
|
|
POSTGRES_VECTOR_ENABLED: True # Required by discourse, propably in a later step it makes sense to define this as a configuration option in config/main.yml
|
|
POSTGRES_RETRIES: 5
|
|
|
|
## Performance
|
|
POSTGRES_TOTAL_RAM_MB: "{{ ansible_facts['memtotal_mb'] | int }}"
|
|
POSTGRES_VCPUS: "{{ ansible_facts['processor_vcpus'] | int }}"
|
|
POSTGRES_MAX_CONNECTIONS: "{{ [ ((POSTGRES_VCPUS | int) * 30 + 50), 400 ] | min }}"
|
|
POSTGRES_SUPERUSER_RESERVED_CONNECTIONS: 3
|
|
POSTGRES_SHARED_BUFFERS_MB: "{{ ((POSTGRES_TOTAL_RAM_MB | int) * 25) // 100 }}"
|
|
POSTGRES_SHARED_BUFFERS: "{{ POSTGRES_SHARED_BUFFERS_MB ~ 'MB' }}"
|
|
POSTGRES_WORK_MEM_MB: "{{ [ ( (POSTGRES_TOTAL_RAM_MB | int) // ( [ (POSTGRES_MAX_CONNECTIONS | int), 1 ] | max ) // 2 ), 1 ] | max }}"
|
|
POSTGRES_WORK_MEM: "{{ POSTGRES_WORK_MEM_MB ~ 'MB' }}"
|
|
POSTGRES_MAINTENANCE_WORK_MEM_MB: "{{ [ (((POSTGRES_TOTAL_RAM_MB | int) * 5) // 100), 64 ] | max }}"
|
|
POSTGRES_MAINTENANCE_WORK_MEM: "{{ POSTGRES_MAINTENANCE_WORK_MEM_MB ~ 'MB' }}"
|
|
POSTGRES_DELAY: 2
|