summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElizabeth Hunt <me@liz.coffee>2025-05-01 23:10:56 -0700
committerElizabeth Hunt <me@liz.coffee>2025-05-01 23:10:56 -0700
commit2a8a33d28267f84e947834c1374a5e413f6d760e (patch)
tree4f76ad1abfa6e8dff56e78baf0fd4a4879b8c47d
parente5bca60eb98d76b32388a98418ab6fa3e0eff357 (diff)
downloadinfra-2a8a33d28267f84e947834c1374a5e413f6d760e.tar.gz
infra-2a8a33d28267f84e947834c1374a5e413f6d760e.zip
Experiment with hooks.
-rw-r--r--playbooks/roles/src/templates/stacks/docker-compose.yml9
-rwxr-xr-xplaybooks/roles/src/templates/volumes/data/hooks/update37
2 files changed, 41 insertions, 5 deletions
diff --git a/playbooks/roles/src/templates/stacks/docker-compose.yml b/playbooks/roles/src/templates/stacks/docker-compose.yml
index 344dfc5..46f253d 100644
--- a/playbooks/roles/src/templates/stacks/docker-compose.yml
+++ b/playbooks/roles/src/templates/stacks/docker-compose.yml
@@ -20,19 +20,18 @@ services:
networks:
- proxy
healthcheck:
- test: ["CMD-SHELL", "echo hi"] # todo: something more meaningful
+ test: ["CMD-SHELL", "netstat -tuln | grep 2222"]
timeout: 15s
interval: 30s
retries: 3
- start_period: 10s
+ start_period: 5s
deploy:
mode: replicated
update_config:
parallelism: 1
failure_action: rollback
- order: start-first
- delay: 10s
- monitor: 45s
+ order: stop-first
+ monitor: 10s
replicas: 1
labels:
- traefik.enable=true
diff --git a/playbooks/roles/src/templates/volumes/data/hooks/update b/playbooks/roles/src/templates/volumes/data/hooks/update
new file mode 100755
index 0000000..a11d3e5
--- /dev/null
+++ b/playbooks/roles/src/templates/volumes/data/hooks/update
@@ -0,0 +1,37 @@
+#!/bin/sh
+#
+
+refname="$1"
+oldrev="$2"
+newrev="$3"
+
+# Safety check
+if [ -z "$GIT_DIR" ]; then
+ echo "Don't run this script from the command line." >&2
+ echo " (if you want, you could supply GIT_DIR then run" >&2
+ echo " $0 <ref> <oldrev> <newrev>)" >&2
+ exit 1
+fi
+
+if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
+ echo "usage: $0 <ref> <oldrev> <newrev>" >&2
+ exit 1
+fi
+
+# Check types
+# if $newrev is 0000...0000, it's a commit to delete a ref.
+zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
+if [ "$newrev" = "$zero" ]; then
+ newrev_type=delete
+else
+ newrev_type=$(git cat-file -t $newrev)
+fi
+
+echo "Hi from Soft Serve update hook!"
+echo
+echo "RefName: $refname"
+echo "Change Type: $newrev_type"
+echo "Old SHA1: $oldrev"
+echo "New SHA1: $newrev"
+
+exit 0