Say which provision five consumers' checks exercise, so a database down is one condition (hq issue 145)
mesh/merge-gate out of date: judged against trunk ebf7f3773dc7, the trunk is now e846c289c878; judged again on a recheck or when it is merged
mesh/repo-check out of date: judged against trunk ebf7f3773dc7, the trunk is now e846c289c878; judged again on a recheck or when it is merged
mesh/delivery-group group fix/145-a-consumer-is-held-under-its-provider checking: composed check out of date: novox/mesh-catalog@b62bb158398d was judged agains…
mesh/delivery superseded: a newer head of the same pull request
mesh/merge-gate out of date: judged against trunk ebf7f3773dc7, the trunk is now e846c289c878; judged again on a recheck or when it is merged
mesh/repo-check out of date: judged against trunk ebf7f3773dc7, the trunk is now e846c289c878; judged again on a recheck or when it is merged
mesh/delivery-group group fix/145-a-consumer-is-held-under-its-provider checking: composed check out of date: novox/mesh-catalog@b62bb158398d was judged agains…
mesh/delivery superseded: a newer head of the same pull request
gitea, nextcloud, umami and n8n gain an http check that reaches their database through their own endpoint; mesh-knowledge's watch already asks the database and now names it. While postgres is unhealthy, their findings are held under its condition instead of raising one each.
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
66
|
62
|
||||||
The long-running resources of this catalogue that do not say how they are ready (`health`, novox/hq ADR 0240
|
The long-running resources of this catalogue that do not say how they are ready (`health`, novox/hq ADR 0240
|
||||||
rule 8), as `module check` counts them. It may only go down: merge-check.sh fails a change that raises it, and
|
rule 8), as `module check` counts them. It may only go down: merge-check.sh fails a change that raises it, and
|
||||||
one that lowers it writes the new number on the first line. From 2026-11-18, or once it is 0, a long-running
|
one that lowers it writes the new number on the first line. From 2026-11-18, or once it is 0, a long-running
|
||||||
|
|||||||
@@ -149,6 +149,13 @@
|
|||||||
{
|
{
|
||||||
"id": "server",
|
"id": "server",
|
||||||
"type": "container",
|
"type": "container",
|
||||||
|
"health": {
|
||||||
|
"kind": "http",
|
||||||
|
"endpoint": "web",
|
||||||
|
"path": "/api/healthz",
|
||||||
|
"status": 200,
|
||||||
|
"needs": "postgres-database"
|
||||||
|
},
|
||||||
"name": "gitea",
|
"name": "gitea",
|
||||||
"image": "gitea/gitea@sha256:87a67ee09d3ae0d1df5fda5dcda3e2a1f9236a45b0a59025d6e00e46adc43bef",
|
"image": "gitea/gitea@sha256:87a67ee09d3ae0d1df5fda5dcda3e2a1f9236a45b0a59025d6e00e46adc43bef",
|
||||||
"env": {
|
"env": {
|
||||||
|
|||||||
@@ -121,6 +121,12 @@ func TestItsProcessesAreThePreparationTheActAndTheJudge(t *testing.T) {
|
|||||||
!reflect.DeepEqual(m.Tools, []string{HealthTool, HighestTool}) {
|
!reflect.DeepEqual(m.Tools, []string{HealthTool, HighestTool}) {
|
||||||
t.Fatalf("watch %v, tools %v", watch, m.Tools)
|
t.Fatalf("watch %v, tools %v", watch, m.Tools)
|
||||||
}
|
}
|
||||||
|
// The watch's verdict is whether the database serves, so its check names the provision it exercises: while the
|
||||||
|
// database's provider is unhealthy, this finding is held under the provider's condition (hq ADR 0240 rule 5,
|
||||||
|
// issue 145).
|
||||||
|
if h["needs"] != "postgres-database" {
|
||||||
|
t.Fatalf("watch's check needs %v; it exercises postgres-database", h["needs"])
|
||||||
|
}
|
||||||
if watch["env"].(map[string]any)["MESH_KNOWLEDGE_STATUS"] != m.Build.Artifacts[0].Env["MESH_KNOWLEDGE_STATUS"] {
|
if watch["env"].(map[string]any)["MESH_KNOWLEDGE_STATUS"] != m.Build.Artifacts[0].Env["MESH_KNOWLEDGE_STATUS"] {
|
||||||
t.Fatal("watch writes another status file than the health tool reads")
|
t.Fatal("watch writes another status file than the health tool reads")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -156,6 +156,7 @@
|
|||||||
"health": {
|
"health": {
|
||||||
"kind": "tool",
|
"kind": "tool",
|
||||||
"tool": "knowledge_health",
|
"tool": "knowledge_health",
|
||||||
|
"needs": "postgres-database",
|
||||||
"interval": "60s",
|
"interval": "60s",
|
||||||
"timeout": "10s",
|
"timeout": "10s",
|
||||||
"looks": 2,
|
"looks": 2,
|
||||||
|
|||||||
@@ -97,6 +97,13 @@
|
|||||||
{
|
{
|
||||||
"id": "server",
|
"id": "server",
|
||||||
"type": "container",
|
"type": "container",
|
||||||
|
"health": {
|
||||||
|
"kind": "http",
|
||||||
|
"endpoint": "web",
|
||||||
|
"path": "/healthz/readiness",
|
||||||
|
"status": 200,
|
||||||
|
"needs": "postgres-database"
|
||||||
|
},
|
||||||
"name": "n8n",
|
"name": "n8n",
|
||||||
"artifact": "server",
|
"artifact": "server",
|
||||||
"network": "n8n",
|
"network": "n8n",
|
||||||
|
|||||||
@@ -83,6 +83,14 @@
|
|||||||
{
|
{
|
||||||
"id": "server",
|
"id": "server",
|
||||||
"type": "container",
|
"type": "container",
|
||||||
|
"health": {
|
||||||
|
"kind": "http",
|
||||||
|
"endpoint": "web",
|
||||||
|
"path": "/status.php",
|
||||||
|
"status": 200,
|
||||||
|
"body": "\"installed\":true",
|
||||||
|
"needs": "postgres-database"
|
||||||
|
},
|
||||||
"name": "nextcloud",
|
"name": "nextcloud",
|
||||||
"image": "nextcloud@sha256:fb966733647ea03f0446b0c22eac9733c8eb616d37b960caca9d4c3010e14a08",
|
"image": "nextcloud@sha256:fb966733647ea03f0446b0c22eac9733c8eb616d37b960caca9d4c3010e14a08",
|
||||||
"env-file": [
|
"env-file": [
|
||||||
|
|||||||
@@ -89,6 +89,14 @@
|
|||||||
{
|
{
|
||||||
"id": "server",
|
"id": "server",
|
||||||
"type": "container",
|
"type": "container",
|
||||||
|
"health": {
|
||||||
|
"kind": "http",
|
||||||
|
"endpoint": "web",
|
||||||
|
"path": "/api/share/mesh-health",
|
||||||
|
"status": 404,
|
||||||
|
"timeout": "10s",
|
||||||
|
"needs": "postgres-database"
|
||||||
|
},
|
||||||
"name": "umami",
|
"name": "umami",
|
||||||
"image": "ghcr.io/umami-software/umami@sha256:85909afc45bdcda1917394594a087421fdbb05610fded0fa9f6fb861abb2f367",
|
"image": "ghcr.io/umami-software/umami@sha256:85909afc45bdcda1917394594a087421fdbb05610fded0fa9f6fb861abb2f367",
|
||||||
"network": "umami",
|
"network": "umami",
|
||||||
|
|||||||
Reference in New Issue
Block a user