diff --git a/defaults/main.yml b/defaults/main.yml index d13fcbe..ee277f8 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -11,7 +11,10 @@ open_asfa_docker_db_node: False open_asfa_behind_haproxy: True open_asfa_haproxy_public_net: 'haproxy-public' # DB +open_asfa_db_as_container: True open_asfa_db_image: 'postgres:12-alpine' +open_asfa_db_host: 'pg' +open_asfa_db_port: 5432 #open_asfa_db_pwd: 'set it in a vault file' open_asfa_db_name: 'asfadb' open_asfa_db_user: 'asfadb_user' diff --git a/tasks/main.yml b/tasks/main.yml index 08fcca9..9fd35d4 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -8,7 +8,9 @@ template: src=pg-create-user-db.sh.j2 dest={{ open_asfa_compose_dir }}/pg-create-user-db.sh owner=root group=root mode='0555' run_once: True - when: open_asfa_docker_db_node is defined and open_asfa_docker_db_node + when: + - open_asfa_docker_db_node is defined and open_asfa_docker_db_node + - open_asfa_db_as_container tags: [ 'open_asfa', 'open_asfa_swarm', 'open_asfa_db' ] - name: Manage the installation of the OpenASFA configuration of the swarm service @@ -23,14 +25,6 @@ compose: - '{{ open_asfa_compose_dir }}/docker-open-asfa-stack.yml' - - name: Connect the OpenASFA service to the haproxy-public network - command: docker service update --network-add {{ open_asfa_haproxy_public_net }} {{ item }} --update-delay 30s --update-parallelism 1 - with_items: - - '{{ open_asfa_docker_stack_name }}_{{ open_asfa_docker_service_server_name }}' - - '{{ open_asfa_docker_stack_name }}_{{ open_asfa_docker_service_client_name }}' - ignore_errors: True - when: open_asfa_behind_haproxy - run_once: True when: docker_swarm_manager_main_node is defined and docker_swarm_manager_main_node | bool tags: [ 'open_asfa', 'open_asfa_swarm' ] diff --git a/templates/open-asfa-docker-compose.yml.j2 b/templates/open-asfa-docker-compose.yml.j2 index 4cb7405..b438597 100644 --- a/templates/open-asfa-docker-compose.yml.j2 +++ b/templates/open-asfa-docker-compose.yml.j2 @@ -1,17 +1,28 @@ version: '3.6' +networks: +{% if open_asfa_behind_haproxy %} + haproxy-public: + external: true +{% endif %} + {{ open_asfa_docker_network }}: + +volumes: + {{ open_asfa_db_volume }}: + services: {{ open_asfa_docker_service_server_name }}: image: {{ open_asfa_docker_server_image }} networks: - {{ open_asfa_docker_network }} - depends_on: - - pg +{% if open_asfa_behind_haproxy %} + - haproxy-public +{% endif %} environment: SERVER_PORT: 8080 #DB_HOST: {{ open_asfa_docker_service_server_name }}_pg - DB_HOST: pg - DB_PORT: 5432 + DB_HOST: {{ open_asfa_db_host }} + DB_PORT: {{ open_asfa_db_port }} SCHEMA: {{ open_asfa_db_name }} DB_USER: {{ open_asfa_db_user }} DB_PASSWORD: {{ open_asfa_db_pwd }} @@ -32,6 +43,9 @@ services: image: {{ open_asfa_docker_client_image }} networks: - {{ open_asfa_docker_network }} +{% if open_asfa_behind_haproxy %} + - haproxy-public +{% endif %} environment: API_BASE_URL: http://{{ open_asfa_docker_service_server_name }}:8080 deploy: @@ -47,12 +61,13 @@ services: window: 120s logging: driver: 'journald' +{% if open_asfa_db_as_container %} pg: image: {{ open_asfa_db_image }} networks: - {{ open_asfa_docker_network }} # ports: -# - 5432 +# - {{ open_asfa_db_port }} volumes: - {{ open_asfa_db_volume }}:/var/lib/postgresql/data/pg_data - {{ open_asfa_compose_dir }}/pg-create-user-db.sh:/docker-entrypoint-initdb.d/pg-create-user-db.sh:ro @@ -60,7 +75,7 @@ services: POSTGRES_PASSWORD: {{ open_asfa_db_pwd }} POSTGRES_DB: postgres POSTGRES_USER: postgres - POSTGRES_PORT: 5432 + POSTGRES_PORT: {{ open_asfa_db_port }} PGDATA: /var/lib/postgresql/data/pg_data deploy: placement: @@ -72,9 +87,4 @@ services: window: 120s logging: driver: 'journald' - -networks: - {{ open_asfa_docker_network }}: - -volumes: - {{ open_asfa_db_volume }}: +{% endif %}