Files
mesh-catalog/modules/mesh-provisioner/module.json
T
jschoubben b8ce4f0c0a
mesh/delivery-group group fix/held-module-and-assigner-contract rejected: composed together: the checker's verdict at the members' heads (c82f18b5e6bb): integr…
mesh/delivery closed: the pull request closed unmerged
mesh/check failed: integration: mesh-healers/cmd/mesh-healers.TestTheHealersWholeActOnTheBusAndBrake: never: the would-act written | b8ce4f0c0ac5 on 3…
Read a provider's outcome per offer, and read route-proxy's and node-tools' entries, so provisions a helper does not answer stop failing and routed keys stop standing asked (issue 774)
The sweep of 2026-10-30 20:10: <node>.claude-code.gitea-read and <node>.mesh-build-node.npm-package-registry failed on
all four nodes with "gitea does not serve": gitea's provider helper answers only forge-account and refuses every other
bind into gitea.bound, and the provisioner took any entry of a module declaring `bound` as the outcome. And
novox.gitea.route, novox.keycloak.route and <node>.claude-code.mcp-endpoint stood asked: route-proxy and node-tools keep
entries the manifest did not read.

Quick fix: add route-proxy.bound and node-tools.bound to the reads. Thorough fix: judge each offer by who answers it
(answered-by: helper reads the entries, any other offer of a module that names a helper is judged by its have), and say
on gitea's forge-account that the helper answers it. Chose both: the reads alone leave gitea's two provisions failed.
2026-10-30 21:26:31 +01:00

85 lines
1.6 KiB
JSON

{
"module": "mesh-provisioner",
"version": "1",
"runs-as": "mesh-provisioner",
"claims": [
{
"name": "mesh-provisioner",
"scope": "mesh",
"serves": [
"provisioning"
]
}
],
"uses": [
"operator-channel"
],
"reads": [
"mesh-delivery-assigner.placement",
"mesh-delivery-assigner.wants",
"mesh-delivery-indexer.modules",
"mesh-delivery-indexer.manifests",
"mesh-delivery-builder.builds",
"node-engine.have",
"mesh-config.resolved",
"gitea.bound",
"keycloak.bound",
"postgres.bound",
"route-adapter.bound",
"route-proxy.bound",
"node-tools.bound",
"mesh-vault.bound"
],
"tools": [
"provisioner_provisions",
"provisioner_plans",
"provisioner_compose",
"provisioner_decide"
],
"state": [
"registry",
"needs",
"applied",
"collect",
"provisions",
"plans",
"refused"
],
"own-secrets": {
"broker": "${dir:state}/broker"
},
"secrets-owner": "mesh-provisioner",
"resources": [
{
"id": "account",
"type": "user",
"name": "mesh-provisioner",
"shell": "/usr/bin/nologin",
"home": "/var/lib/mesh-provisioner"
},
{
"id": "state",
"type": "directory",
"mode": "0700",
"owner": "mesh-provisioner",
"place": ".",
"unknown": "program"
}
],
"build": {
"artifacts": [
{
"name": "tools",
"kind": "bundle",
"language": "go",
"system": "arch",
"from": "cmd/mesh-provisioner",
"binary": "mesh-provisioner",
"loads": [
"mesh-provisioner"
]
}
]
}
}