From 928d0fcb60d9abfd3061739f7652533521520805 Mon Sep 17 00:00:00 2001 From: Kacper Donat Date: Sat, 10 Apr 2021 20:28:08 +0200 Subject: [PATCH] Add cojedzie and system services --- services/cojedzie/stack.yml | 61 +++++++++++++++++++++++++++++++++ services/cojedzie/vars/main.yml | 3 ++ services/system/stack.yml | 28 +++++++++++++++ vars/services.yml | 3 ++ 4 files changed, 95 insertions(+) create mode 100644 services/cojedzie/stack.yml create mode 100644 services/cojedzie/vars/main.yml create mode 100644 services/system/stack.yml diff --git a/services/cojedzie/stack.yml b/services/cojedzie/stack.yml new file mode 100644 index 0000000..f43b278 --- /dev/null +++ b/services/cojedzie/stack.yml @@ -0,0 +1,61 @@ +version: '{{ compose_version }}' + +services: + api: + image: cojedzie/api:latest + networks: + - "{{ ingress_network }}" + - default + volumes: + - db_data:/var/db + deploy: + mode: replicated + replicas: 1 + labels: + - traefik.enable=true + - traefik.http.routers.{{ service }}-api.rule=(Host(`{{ service }}.{{ main_domain }}`) || Host(`cojedzie.pl`)) && PathPrefix(`/api/`) + - traefik.http.routers.{{ service }}-api.priority=100 + - traefik.http.services.{{ service }}-api.loadbalancer.server.port=8080 + + update-job: + image: cojedzie/api:latest + command: ["console", "app:update", "--async"] + networks: + - default + volumes: + - db_data:/var/db + deploy: + mode: replicated + replicas: 0 + labels: + - "swarm.cronjob.enable=true" + - "swarm.cronjob.schedule={{ cojedzie_update_cron }}" + restart_policy: + condition: none + + worker: + image: cojedzie/worker:latest + volumes: + - db_data:/var/db + depends_on: + - api + + front: + image: cojedzie/front:latest + networks: + - "{{ ingress_network }}" + - default + depends_on: + - api + environment: + - APP_GTM={{ cojedzie_gtm }} + deploy: + mode: replicated + replicas: 1 + labels: + - traefik.enable=true + - traefik.http.routers.{{ service }}-front.rule=Host(`{{ service }}.{{ main_domain }}`) || Host(`cojedzie.pl`) + - traefik.http.services.{{ service }}-front.loadbalancer.server.port=3000 + +volumes: + db_data: ~ diff --git a/services/cojedzie/vars/main.yml b/services/cojedzie/vars/main.yml new file mode 100644 index 0000000..cc7e1d2 --- /dev/null +++ b/services/cojedzie/vars/main.yml @@ -0,0 +1,3 @@ +--- +cojedzie_update_cron: 0 0 4 * * * +cojedzie_gtm: "" diff --git a/services/system/stack.yml b/services/system/stack.yml new file mode 100644 index 0000000..2f7f3e3 --- /dev/null +++ b/services/system/stack.yml @@ -0,0 +1,28 @@ +version: "{{ compose_version }}" + +services: + cronjob-controller: + image: crazymax/swarm-cronjob + volumes: + - "/var/run/docker.sock:/var/run/docker.sock" + environment: + - "TZ=Europe/Warsaw" + - "LOG_LEVEL=info" + - "LOG_JSON=false" + deploy: + placement: + constraints: + - node.role == manager + + image-cleanup-job: + image: docker + command: ["docker", "image", "prune", "-f"] + volumes: + - "/var/run/docker.sock:/var/run/docker.sock" + deploy: + mode: global + labels: + - "swarm.cronjob.enable=true" + - "swarm.cronjob.schedule=0 0 0 * * sun" + restart_policy: + condition: none diff --git a/vars/services.yml b/vars/services.yml index 2a94ad5..bf6fd5d 100644 --- a/vars/services.yml +++ b/vars/services.yml @@ -38,5 +38,8 @@ service_config: legacy: www_data_users: ["{{ ansible_user }}"] + cojedzie: + cojedzie_gtm: GTM-TQNX386 + www_data_users: - vagrant