commit 4f133f3a273daa863c3f638a99ad2851e4734bde
parent 20099ef394c2d2da2b5dd141e78bcea12f2495b0
Author: Florian Dold <dold@taler.net>
Date: Sat, 5 Sep 2026 20:12:49 +0200
Readiness: allow time for initial denomination key generation
Give HTTP readiness checks a separate retry budget so cold exchange
startup can finish generating keys without extending failed-unit checks.
Diffstat:
3 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/README b/README
@@ -341,6 +341,9 @@ service actions and delegates other actions to the existing administrator policy
(or permits them if none existed). Application package tasks use policy_rc_d: 101.
The original policy is restored even on failure. PostgreSQL and nginx are started
as needed during provisioning.
+Cold exchange startup may spend several minutes generating denomination keys.
+post_deployment_http_retries defaults to 60 (with a five-second request timeout
+and one-second retry delay); systemd unit checks retain their shorter retry limit.
A failed deployment leaves applications stopped without removing their boot
enablement. Inspect the failed task, correct the problem, then rerun deploy.sh.
diff --git a/roles/post_deployment_checks/defaults/main.yml b/roles/post_deployment_checks/defaults/main.yml
@@ -2,6 +2,9 @@
post_deployment_check_retries: 10
post_deployment_check_delay: 1
post_deployment_http_timeout: 5
+# Cold exchange startup generates a year of RSA keys before serving requests.
+# Allow up to roughly six minutes without extending failed-unit checks.
+post_deployment_http_retries: 60
post_deployment_systemd_checks:
# Exchange
diff --git a/roles/post_deployment_checks/tasks/main.yml b/roles/post_deployment_checks/tasks/main.yml
@@ -35,7 +35,7 @@
changed_when: false
check_mode: false
failed_when: false
- retries: "{{ post_deployment_check_retries }}"
+ retries: "{{ post_deployment_http_retries }}"
delay: "{{ post_deployment_check_delay }}"
until: post_deployment_http_check.status | default(-1) == 200
when: item.enabled | bool