mesh-grants moves to the same mesh-sdk (3203358c), so its shadow user list grants the checker and the builder the DEAD_LETTERS reads the controller's list will, and the take-over is not blocked by a difference. The checker and the builder hear DEAD_LETTERS through buildrun.DeadLetterHearing: in the background, again at every reconnect and every ask waited for while deaf, and keep whether they hear it in their new state hearing, which checker_status and builder_stuck say as dead_letters. checker_try says that a try ended by the not-taken bound leaves its ask in the stream. Not done as asked: a module health tool. The catalogue refuses a tool check on a module with no runtime of its own and no other check beside it (ADR 0227 rule 8, ADR 0366 §1), so the deaf state is said in the status tools and the log.
118 lines
2.7 KiB
JSON
118 lines
2.7 KiB
JSON
{
|
|
"module": "mesh-delivery-checker",
|
|
"version": "1",
|
|
"slug": "checker",
|
|
"consumes": [
|
|
"mesh-build-go.toolchain.reported",
|
|
"mesh-build-node.toolchain.reported"
|
|
],
|
|
"streams": [
|
|
{ "name": "checks", "events": ["preview.**", "owed.**"] }
|
|
],
|
|
"state": [
|
|
{ "name": "hearing", "history": 1 },
|
|
{ "name": "kept", "history": 1 },
|
|
{ "name": "owed", "history": 5 },
|
|
{ "name": "previews", "history": 5 },
|
|
{ "name": "tries", "history": 1 },
|
|
{ "name": "verdicts", "history": 5 }
|
|
],
|
|
"reads": [
|
|
"mesh-build-go.steps",
|
|
"mesh-build-go.toolchains",
|
|
"mesh-build-node.steps",
|
|
"mesh-build-node.toolchains",
|
|
"mesh-controller.assignments",
|
|
"mesh-delivery-assigner.compositions",
|
|
"mesh-delivery-builder.builds",
|
|
"mesh-delivery-gate.source",
|
|
"mesh-delivery-gate.turns",
|
|
"mesh-delivery-indexer.candidates",
|
|
"mesh-delivery-indexer.manifests",
|
|
"mesh-delivery-indexer.modules",
|
|
"mesh-delivery-watchman.presence",
|
|
"node-engine.have"
|
|
],
|
|
"uses": [
|
|
"node-build-go",
|
|
"node-build-node"
|
|
],
|
|
"tools": [
|
|
"checker_kept",
|
|
"checker_previews",
|
|
"checker_pull",
|
|
"checker_status",
|
|
"checker_try",
|
|
"checker_try_end",
|
|
"checker_try_read",
|
|
"checker_verdicts"
|
|
],
|
|
"invokes": [
|
|
"gitea.gitea_commits",
|
|
"gitea.gitea_compare",
|
|
"gitea.gitea_get_file",
|
|
"gitea.gitea_list_branches"
|
|
],
|
|
|
|
"own-secrets": {
|
|
"broker": "${dir:state}/broker"
|
|
},
|
|
"secrets-owner": "mesh-delivery-checker",
|
|
"resources": [
|
|
{
|
|
"id": "account",
|
|
"type": "user",
|
|
"name": "mesh-delivery-checker",
|
|
"shell": "/usr/bin/nologin",
|
|
"home": "/var/lib/mesh-delivery-checker"
|
|
},
|
|
{
|
|
"id": "state",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"owner": "mesh-delivery-checker",
|
|
"place": ".",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "checker",
|
|
"type": "process",
|
|
"name": "mesh-delivery-checker",
|
|
"artifact": "program",
|
|
"run": [
|
|
"./mesh-delivery-checker"
|
|
],
|
|
"env": {
|
|
"MESH_BROKER_FILE": "${dir:state}/broker"
|
|
},
|
|
"user": "mesh-delivery-checker",
|
|
"health": {
|
|
"kind": "unit"
|
|
}
|
|
}
|
|
],
|
|
"build": {
|
|
"artifacts": [
|
|
{
|
|
"name": "program",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/mesh-delivery-checker",
|
|
"binary": "mesh-delivery-checker"
|
|
},
|
|
{
|
|
"name": "tools",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/mesh-delivery-checker-tools",
|
|
"binary": "mesh-delivery-checker-tools",
|
|
"loads": [
|
|
"mesh-delivery-checker-tools"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|