A build ask its seat's stream gave up on, dropped or ended with no step was waited for with no end, and on restart taken over and waited for again: no build node would ever answer it, and nothing could ask it again (trunk key of mesh-build-node at 4e7b118e, building since 19:06; seven keys at 18:44). At the step bound, a context's bound and no timer of its own, the builder reads what the bus says of an ask with no step: gone from its stream, or first in line while a node took a later ask. Such an ask is asked again under a new id the key names, logged and said as build.asked-again, at most three askings, then the key fails with why. The bus's max-deliveries advisory would tell it sooner, but the builder is granted neither it nor the workers' information, and the controller is not changed here. builder_stuck reads every waiting key with its asks, askings and steps; builder_ask_again writes the new reasks state, which the builder watches and answers.
104 lines
2.3 KiB
JSON
104 lines
2.3 KiB
JSON
{
|
|
"module": "mesh-delivery-builder",
|
|
"version": "1",
|
|
"slug": "builder",
|
|
"tools": [
|
|
"builder_ask_again",
|
|
"builder_stuck"
|
|
],
|
|
"emits": [
|
|
"build.asked-again"
|
|
],
|
|
"consumes": [
|
|
"mesh-build-go.toolchain.reported",
|
|
"mesh-build-node.toolchain.reported",
|
|
"mesh-controller.artifacts-gone"
|
|
],
|
|
"invokes": [
|
|
"seat:mesh-controller.held"
|
|
],
|
|
"state": [
|
|
{ "name": "builds", "history": 5 },
|
|
{ "name": "instances", "history": 1 },
|
|
{ "name": "reasks", "history": 1 }
|
|
],
|
|
"reads": [
|
|
"mesh-build-go.steps",
|
|
"mesh-build-go.toolchains",
|
|
"mesh-build-image.steps",
|
|
"mesh-build-node.steps",
|
|
"mesh-build-node.toolchains",
|
|
"mesh-controller.assignments",
|
|
"mesh-delivery-gate.source",
|
|
"mesh-delivery-indexer.candidates",
|
|
"mesh-delivery-indexer.manifests",
|
|
"mesh-delivery-indexer.modules"
|
|
],
|
|
"uses": [
|
|
"node-build-go",
|
|
"node-build-image",
|
|
"node-build-node"
|
|
],
|
|
|
|
"own-secrets": {
|
|
"broker": "${dir:state}/broker"
|
|
},
|
|
"secrets-owner": "mesh-delivery-builder",
|
|
"resources": [
|
|
{
|
|
"id": "account",
|
|
"type": "user",
|
|
"name": "mesh-delivery-builder",
|
|
"shell": "/usr/bin/nologin",
|
|
"home": "/var/lib/mesh-delivery-builder"
|
|
},
|
|
{
|
|
"id": "state",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"owner": "mesh-delivery-builder",
|
|
"place": ".",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "builder",
|
|
"type": "process",
|
|
"name": "mesh-delivery-builder",
|
|
"artifact": "program",
|
|
"run": [
|
|
"./mesh-delivery-builder"
|
|
],
|
|
"env": {
|
|
"MESH_BROKER_FILE": "${dir:state}/broker"
|
|
},
|
|
"user": "mesh-delivery-builder",
|
|
"health": {
|
|
"kind": "unit"
|
|
}
|
|
}
|
|
],
|
|
"build": {
|
|
"artifacts": [
|
|
{
|
|
"name": "program",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/mesh-delivery-builder",
|
|
"binary": "mesh-delivery-builder"
|
|
},
|
|
{
|
|
"name": "tools",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/mesh-delivery-builder-tools",
|
|
"binary": "mesh-delivery-builder-tools",
|
|
"loads": [
|
|
"mesh-delivery-builder-tools"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|