The node-engine alone composes (ADR 0593 §6, §8), so the provisioner stops composing with frombus and fromruntime and reads each module's plan from composed-<node> (read as mesh-host.composed): at its want, or the build its have runs, and at the indexer's newest build, so a key ahead of its want still carries its plan entry. A refused or not yet published composition holds the module with its last plan kept. The golden test proves the plans and provisions are today's, captured from the composing holder before the change. It no longer reads the builds or the resolved values. Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
84 lines
1.6 KiB
JSON
84 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",
|
|
"node-engine.have",
|
|
"mesh-host.composed",
|
|
"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"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|