N1 assigned the module and stopped, and the mesh wrote a names file with no names in it. That is correct behaviour, not a bug: a node with no address on the network has no name, because a name resolving to nothing is worse than no name — a connection to an address that does not answer hangs, where a name that does not resolve fails at once and says so. The missing act is placement. Assigning installs the module that answers how machines reach each other; placing says where this machine is on the resulting network. The four-machine test did both and this one did neither, which is how the distinction stayed invisible. Claude-Session: https://claude.ai/code/session_01D6qtiYU3P9jk3pnAXyAFyx
147 lines
4.3 KiB
JSON
147 lines
4.3 KiB
JSON
{
|
|
"scenario": "one-node-mesh",
|
|
"established": 11,
|
|
"of": 20,
|
|
"steps": [
|
|
{
|
|
"code": "R1",
|
|
"title": "a bare machine becomes a mesh of one, raised by the installer",
|
|
"status": "pass",
|
|
"seconds": 132,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "R2",
|
|
"title": "the substrate is up — a store and a broker of the mesh's own",
|
|
"status": "pass",
|
|
"seconds": 1,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "R3",
|
|
"title": "the control plane is one this mesh built, not one it was handed",
|
|
"status": "pass",
|
|
"seconds": 0,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "R4",
|
|
"title": "the pivot finished — what raised the mesh is gone",
|
|
"status": "pass",
|
|
"seconds": 0,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "R5",
|
|
"title": "the registry serves this mesh its own images",
|
|
"status": "pass",
|
|
"seconds": 0,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "R6",
|
|
"title": "the machine is enrolled, and an agent is running on it",
|
|
"status": "pass",
|
|
"seconds": 0,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "R7",
|
|
"title": "the builder is installed as a module, with an account",
|
|
"status": "pass",
|
|
"seconds": 0,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "P1",
|
|
"title": "the mesh builds the shared base from source",
|
|
"status": "pass",
|
|
"seconds": 78,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "P2",
|
|
"title": "the mesh builds and runs a store of its own",
|
|
"status": "pass",
|
|
"seconds": 50,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "P3",
|
|
"title": "the mesh builds and runs its own catalogue",
|
|
"status": "pass",
|
|
"seconds": 25,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "P4",
|
|
"title": "the mesh rebuilds its own control plane from source",
|
|
"status": "pass",
|
|
"seconds": 37,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "N1",
|
|
"title": "the mesh puts itself on a private network, and its machine has a name",
|
|
"status": "fail",
|
|
"seconds": 125,
|
|
"why": "networking is assigned and no machine has a name:\n# Generated by the mesh. Do not edit — this file is replaced whenever a node\n# joins or leaves, and an edit would survive until then and vanish.\n\n127.0.0.1\tlocalhost\n::1\t\tlocalhost ip6-localhost ip6-loopback\n127.0.1.1\tanchor\n"
|
|
},
|
|
{
|
|
"code": "U1",
|
|
"title": "the mesh builds a module standing on that base",
|
|
"status": "skip",
|
|
"seconds": 0,
|
|
"why": "not attempted — N1 (the mesh puts itself on a private network, and its machine has a name) did not succeed"
|
|
},
|
|
{
|
|
"code": "U2",
|
|
"title": "the mesh runs a broker for that module to talk to",
|
|
"status": "skip",
|
|
"seconds": 0,
|
|
"why": "not attempted — U1 (the mesh builds a module standing on that base) did not succeed"
|
|
},
|
|
{
|
|
"code": "U3",
|
|
"title": "the anchor runs the module the mesh built",
|
|
"status": "skip",
|
|
"seconds": 0,
|
|
"why": "not attempted — U2 (the mesh runs a broker for that module to talk to) did not succeed"
|
|
},
|
|
{
|
|
"code": "V1",
|
|
"title": "the control plane can describe the mesh, and what it says is true",
|
|
"status": "skip",
|
|
"seconds": 0,
|
|
"why": "not attempted — U3 (the anchor runs the module the mesh built) did not succeed"
|
|
},
|
|
{
|
|
"code": "V2",
|
|
"title": "the catalogue holds every module this mesh built",
|
|
"status": "skip",
|
|
"seconds": 0,
|
|
"why": "not attempted — V1 (the control plane can describe the mesh, and what it says is true) did not succeed"
|
|
},
|
|
{
|
|
"code": "V3",
|
|
"title": "the machine's networking is what the modules asked for",
|
|
"status": "skip",
|
|
"seconds": 0,
|
|
"why": "not attempted — V1 (the control plane can describe the mesh, and what it says is true) did not succeed"
|
|
},
|
|
{
|
|
"code": "E1",
|
|
"title": "a change to a module's source reaches the machine on its own",
|
|
"status": "skip",
|
|
"seconds": 0,
|
|
"why": "not attempted — V3 (the machine's networking is what the modules asked for) did not succeed"
|
|
},
|
|
{
|
|
"code": "E2",
|
|
"title": "the mesh comes back after the machine reboots",
|
|
"status": "skip",
|
|
"seconds": 0,
|
|
"why": "not attempted — E1 (a change to a module's source reaches the machine on its own) did not succeed"
|
|
}
|
|
]
|
|
} |