View Issue Details

IDProjectCategoryView StatusLast Update
0008874Talersandcastle (containerized demo deployment)public2024-11-27 03:05
ReporterFlorian Dold Assigned ToFlorian Dold  
PriorityhighSeverityminorReproducibilityhave not tried
Status feedbackResolutionopen 
Product Versiongit (master) 
Target Version1.0 stretch goals 
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.

Activities

dvn

2024-06-24 02:52

developer   ~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 12: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 18:03

developer   ~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 02:53

developer   ~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 03:04

developer   ~0023763

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

Issue History

Date Modified Username Field Change
2024-05-27 20:50 Florian Dold New Issue
2024-05-27 20:50 Florian Dold Status new => assigned
2024-05-27 20:50 Florian Dold Assigned To => dvn
2024-06-24 02:52 dvn Note Added: 0022715
2024-06-26 18:07 Christian Grothoff Target Version 0.12 => 0.13
2024-07-25 21:31 dvn Status assigned => feedback
2024-07-25 21:31 dvn Assigned To dvn => Florian Dold
2024-07-29 12:34 Florian Dold Note Added: 0022865
2024-07-29 12:34 Florian Dold Assigned To Florian Dold => dvn
2024-08-19 14:49 dvn Status feedback => assigned
2024-08-24 20:38 Christian Grothoff Priority normal => high
2024-08-24 20:38 Christian Grothoff Product Version => git (master)
2024-08-24 20:38 Christian Grothoff Target Version 0.13 => 0.14
2024-08-25 18:03 dvn Note Added: 0023061
2024-10-07 00:00 Christian Grothoff Target Version 0.14 => 1.0 stretch goals
2024-11-27 02:53 dvn Note Added: 0023762
2024-11-27 03:04 dvn Note Added: 0023763
2024-11-27 03:05 dvn Assigned To dvn => Florian Dold
2024-11-27 03:05 dvn Status assigned => feedback