summaryrefslogtreecommitdiff
path: root/create.py
diff options
context:
space:
mode:
authorElizabeth Hunt <me@liz.coffee>2025-04-27 21:15:30 -0700
committerElizabeth Hunt <me@liz.coffee>2025-04-27 21:25:52 -0700
commitdaef0cf448af17357b552245f39067a9d340ce3d (patch)
treef65a660f7232f057b0c14e477c166006bfb83f87 /create.py
parent1dcdfe34a74708f88aad68af965f4bb5c79adff1 (diff)
downloadinfra-daef0cf448af17357b552245f39067a9d340ce3d.tar.gz
infra-daef0cf448af17357b552245f39067a9d340ce3d.zip
Waow
Diffstat (limited to 'create.py')
-rwxr-xr-xcreate.py42
1 files changed, 19 insertions, 23 deletions
diff --git a/create.py b/create.py
index a03f3f3..1a0da51 100755
--- a/create.py
+++ b/create.py
@@ -129,29 +129,12 @@ class RoleGenerator:
task_file.write_text(textwrap.dedent(f"""\
---
- - name: Build {self.service} compose dirs
- ansible.builtin.file:
- state: directory
- dest: '{{{{ {self.service}_base }}}}/{{{{ item.path }}}}'
- owner: 1000
- group: 1000
- mode: 0755
- with_filetree: '../templates'
- when: item.state == 'directory'
-
- - name: Build {self.service} compose files
- ansible.builtin.template:
- src: '{{{{ item.src }}}}'
- dest: '{{{{ {self.service}_base }}}}/{{{{ item.path }}}}'
- owner: 1000
- group: 1000
- mode: 0755
- with_filetree: '../templates'
- when: item.state == 'file'
-
- - name: Deploy {self.service} stack
- ansible.builtin.command:
- cmd: 'docker stack deploy -c {{{{ {self.service}_base }}}}/stacks/docker-compose.yml {self.service}'
+ - name: Deploy {self.service}
+ ansible.builtin.import_tasks: manage-docker-swarm-service.yml
+ vars:
+ service_name: {self.service}
+ template_render_dir: "../templates"
+ service_destination_dir: "{{ {self.service}_base }}"
"""))
def create_compose_template(self):
@@ -165,10 +148,23 @@ class RoleGenerator:
- {{{{ {self.service}_base }}}}/volumes/data:/data
environment:
- TZ={{{{ timezone }}}}
+ - DEPLOYMENET_TIME={{{{ now() }}}}
networks:
- proxy
+ healthcheck:
+ test: ["CMD-SHELL", "curl", "--fail", "http://localhost:8000"]
+ timeout: 5s
+ interval: 30s
+ retries: 2
+ start_period: 8s
deploy:
mode: replicated
+ update_config:
+ parallelism: 1
+ failure_action: rollback
+ order: start-first
+ delay: 15s
+ monitor: 10s
replicas: 1
labels:
- traefik.enable=true