From 2b9ff3c22f81a8d846bbc52aaa6f6524fec3bf77 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Thu, 1 May 2025 00:27:42 -0700 Subject: initial src stuff --- playbooks/roles/src/tasks/main.yml | 8 +++++ .../roles/src/templates/stacks/docker-compose.yml | 42 ++++++++++++++++++++++ .../roles/src/templates/volumes/data/.gitkeep | 0 3 files changed, 50 insertions(+) create mode 100644 playbooks/roles/src/tasks/main.yml create mode 100644 playbooks/roles/src/templates/stacks/docker-compose.yml create mode 100644 playbooks/roles/src/templates/volumes/data/.gitkeep (limited to 'playbooks/roles/src') diff --git a/playbooks/roles/src/tasks/main.yml b/playbooks/roles/src/tasks/main.yml new file mode 100644 index 0000000..a18b2c1 --- /dev/null +++ b/playbooks/roles/src/tasks/main.yml @@ -0,0 +1,8 @@ +--- + +- name: Deploy src + ansible.builtin.import_tasks: manage-docker-swarm-service.yml + vars: + service_name: src + template_render_dir: "../templates" + service_destination_dir: "{{ src_base }}" diff --git a/playbooks/roles/src/templates/stacks/docker-compose.yml b/playbooks/roles/src/templates/stacks/docker-compose.yml new file mode 100644 index 0000000..11d95e6 --- /dev/null +++ b/playbooks/roles/src/templates/stacks/docker-compose.yml @@ -0,0 +1,42 @@ +services: + src: + image: charmcli/soft-serve + volumes: + - {{ src_base }}/volumes/data:/soft-serve + ports: + - "23231:23231" + environment: + - TZ={{ timezone }} + - DEPLOYMENT_TIME={{ now() }} + - SOFT_SERVE_NAME={{ src_domain }} + - SOFT_SERVE_HTTP_PUBLIC_URL=https://{{ src_domain }} + - SOFT_SERVE_INITIAL_ADMIN_KEYS={{ src_admin_keys }} + networks: + - proxy + healthcheck: + test: ["CMD-SHELL", "echo hi"] # todo: something more meaningful + timeout: 15s + interval: 30s + retries: 3 + start_period: 10s + deploy: + mode: replicated + update_config: + parallelism: 1 + failure_action: rollback + order: start-first + delay: 10s + monitor: 45s + replicas: 1 + labels: + - traefik.enable=true + - traefik.swarm.network=proxy + - traefik.http.routers.src.tls=true + - traefik.http.routers.src.tls.certResolver=letsencrypt + - traefik.http.routers.src.rule=Host(`{{ src_domain }}`) + - traefik.http.routers.src.entrypoints=websecure + - traefik.http.services.src.loadbalancer.server.port=23232 + +networks: + proxy: + external: true diff --git a/playbooks/roles/src/templates/volumes/data/.gitkeep b/playbooks/roles/src/templates/volumes/data/.gitkeep new file mode 100644 index 0000000..e69de29 -- cgit v1.2.3-70-g09d2