View Issue Details

IDProjectCategoryView StatusLast Update
0008874Talersandcastle (containerized demo deployment)public2026-09-19 14:44
ReporterFlorian Dold Assigned ToFlorian Dold Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PriorityhighSeverityminorReproducibilityhave not tried
Status informingResolutionfixed 
Product Versiongit (master) 
Target Version1.6Fixed in Version1.6 
Summary0008874: host systemd service should have health check for successful provisioning inside container
DescriptionThat way we know whether the service started up properly without having to enter the container.
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

dvn

2024-06-24 00:52

reporter   ~0022715

Can you provide some more info on what you mean here Florian?

Specifically what all should we be waiting on to come up before saying it's healthy?

Florian Dold

2024-07-29 10:34

manager   ~0022865

I think there are two aspects to this:

1. Better checks that deployed components are actually working *inside* the setup script. We could just use the wallet here (with values taken from the sandcastle config) and run this:

taler-wallet-cli api --expect-success 'runIntegrationTestV2' '{"exchangeBaseUrl": "https://exchange.demo.taler.net/", "corebankApiBaseUrl": "https://bank.demo.taler.net/", "bankBaseUrl": "https://bank.demo.taler.net/", "merchantBaseUrl": "https://backend.demo.taler.net/", "merchantAuthToken": "secret-token:sandbox" }'

2. *Some* way to expose to the host whether the deployment came up successfully or not. Imagine that I'm updating taler-test@taler. net to the latest component versions. How do I know that it came up successfully without manually having to enter the container and look at the status of the setup-sandcastle.service?

dvn

2024-08-25 16:03

reporter   ~0023061

I have the check running in the setup script based on your taler-wallet-cli API.

For the second goal, I am attempting to configure a sane podman "healthcheck" configuration[0] that will use systemctl to check the status of the taler services, with a reasonable start-up wait time and number of retries.

[0] https://developers.redhat.com/blog/2019/04/18/monitoring-container-vitality-and-availability-with-podman

dvn

2024-11-27 01:53

reporter   ~0023762

Returning to this and the wallet-cli command gets an error response. Snippet from that:
```
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: {
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: "type": "error",
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: "operation": "runIntegrationTestV2",
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: "id": "my-req",
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: "error": {
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: "code": 7005,
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: "when": {
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: "t_ms": 1732670670116
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: },
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: "hint": "Unexpected HTTP status 409 in response",
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: "requestUrl": "https://backend.demo.taler.net/private/orders",
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: "requestMethod": "POST",
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: "httpStatusCode": 409,
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: "errorResponse": {
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: "code": 2509,
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: "hint": "The backend does not trust any exchange that would allow funds to be wired to any bank account of this instance using the wire method specified with the order. Note that right now, we do not support the
 use of exchange bank accounts with mandatory currency conversion.",
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: "detail": "iban"
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: }
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: }
Nov 27 01:24:30 04a2a30b52eb setup-sandcastle.sh[3465]: }
```

dvn

2024-11-27 02:04

reporter   ~0023763

See https://git.taler.net/sandcastle-ng.git/log/?h=dev/devan-carpenter/healthcheck

Florian Dold

2026-08-22 18:32

manager   ~0029561

We have the health check status endpoint and the sandcastle-wait script for this now.

Issue History

Date ModifiedUsernameFieldChange
2024-05-27 18:50Florian DoldNew Issue
2024-05-27 18:50Florian DoldStatusnew => assigned
2024-05-27 18:50Florian DoldAssigned To => dvn
2024-06-24 00:52dvnNote Added: 0022715
2024-06-26 16:07Christian GrothoffTarget Version0.12 => 0.13
2024-07-25 19:31dvnStatusassigned => feedback
2024-07-25 19:31dvnAssigned Todvn => Florian Dold
2024-07-29 10:34Florian DoldNote Added: 0022865
2024-07-29 10:34Florian DoldAssigned ToFlorian Dold => dvn
2024-08-19 12:49dvnStatusfeedback => assigned
2024-08-24 18:38Christian GrothoffPrioritynormal => high
2024-08-24 18:38Christian GrothoffProduct Version => git (master)
2024-08-24 18:38Christian GrothoffTarget Version0.13 => 0.14
2024-08-25 16:03dvnNote Added: 0023061
2024-10-06 22:00Christian GrothoffTarget Version0.14 => 1.0 stretch goals
2024-11-27 01:53dvnNote Added: 0023762
2024-11-27 02:04dvnNote Added: 0023763
2024-11-27 02:05dvnAssigned Todvn => Florian Dold
2024-11-27 02:05dvnStatusassigned => feedback
2025-04-23 23:22Christian GrothoffAssigned ToFlorian Dold =>
2025-04-23 23:22Christian GrothoffStatusfeedback => implementing
2025-04-23 23:22Christian GrothoffTarget Version1.0 stretch goals => post-1.0
2026-08-22 18:32Florian DoldAssigned To => Florian Dold
2026-08-22 18:32Florian DoldStatusimplementing => informing
2026-08-22 18:32Florian DoldResolutionopen => fixed
2026-08-22 18:32Florian DoldNote Added: 0029561
2026-09-19 14:40Christian GrothoffFixed in Version => 1.6
2026-09-19 14:44Christian GrothoffTarget Versionpost-1.0 => 1.6