This website requires JavaScript.
c30d71e249
Point the builder at build/, which is ignored
jschoubben
2026-09-01 03:21:53 +02:00
e83e5ab24e
Prove a hole in a config file is filled, on a real machine
jschoubben
2026-09-01 03:15:22 +02:00
facd100baf
Rebuild the object store's provisioner image too
jschoubben
2026-09-01 03:12:55 +02:00
eb02b8fe6b
Assert the whole of what keycloak is given, not one file's name
jschoubben
2026-09-01 03:06:59 +02:00
51af4307a9
Rebuild every image the lab runs, not only the control plane's
jschoubben
2026-09-01 03:04:51 +02:00
cb0edcee8d
The end-to-end test reads the grant where the mesh now writes it
jschoubben
2026-09-01 02:48:24 +02:00
e7f4a49e40
A grant file and a provisioned login name the module too
jschoubben
2026-09-01 02:45:40 +02:00
0ffb24ff5d
Write down what a run has to be pointed at
jschoubben
2026-09-01 02:44:32 +02:00
a516ee847b
Adopt a third-party workload, and keep a mesh between runs
jschoubben
2026-09-01 01:20:14 +02:00
bfcbee49e9
A public name, against a real ACME server
jschoubben
2026-08-31 21:40:16 +02:00
2096d0b2a1
Prove a bucket is provisioned the way a database is
jschoubben
2026-08-31 17:51:12 +02:00
61f864a274
Name ADR 0007 in the connectivity tests that defend it
jschoubben
2026-08-31 17:33:34 +02:00
17e7132532
Name the engine in the provisions these tests declare
jschoubben
2026-08-31 17:12:46 +02:00
033ad7ec69
A run rebuilds what it tests, and leaves a receipt saying what it covered
jschoubben
2026-08-31 15:02:19 +02:00
e1317c9a69
Gather the evidence however the resolver test fails
jschoubben
2026-08-31 13:54:04 +02:00
a83dd3d00a
A module says own-secrets, not needs
jschoubben
2026-08-31 13:47:21 +02:00
a83f6b7f8e
Assign the resolver configuration module that suits the machine
jschoubben
2026-08-31 13:39:58 +02:00
a6480bbd88
Say what holds the address, rather than that it is held
jschoubben
2026-08-31 13:24:40 +02:00
89b6dd6080
Print why the resolver did not start, instead of that it did not
jschoubben
2026-08-31 13:11:02 +02:00
20690964f1
Prove a service is reached by a name under the machine it runs on
jschoubben
2026-08-31 12:55:59 +02:00
622b414e4e
Take the resolver off before expecting a machine to leave the network
jschoubben
2026-08-31 11:53:16 +02:00
cce39a6ba3
Prove every name under a machine resolves to that machine
jschoubben
2026-08-31 11:40:19 +02:00
8bc5f498cd
Put the workaround back where the container is not the mesh's
jschoubben
2026-08-31 11:28:38 +02:00
4726a51986
Reach the other machine by name from inside a container
jschoubben
2026-08-31 11:13:34 +02:00
0af80ddf4f
Name the module that opens the hub's port, not the domain it answers
jschoubben
2026-08-31 10:58:38 +02:00
9ab73d6cdb
Prove the hub can be filtered without severing the mesh
jschoubben
2026-08-31 10:07:09 +02:00
5736cca9f6
Break a machine with a unit that does not exist
jschoubben
2026-08-31 05:01:53 +02:00
eb0c8a6d98
Prove the board says what a person opened it for
jschoubben
2026-08-31 04:50:22 +02:00
4d5b190db8
Wait for the route to be withdrawn rather than sleeping through it
jschoubben
2026-08-31 03:45:31 +02:00
eaa7cdea79
Check the provider applied before reading what its file says
jschoubben
2026-08-31 03:34:51 +02:00
56de227673
Connect by address, and ask grep whether rather than how many
jschoubben
2026-08-31 03:22:24 +02:00
7669d1c373
Log in as the role the provisioner made, and record the licences first
jschoubben
2026-08-31 03:07:31 +02:00
4ee769dda0
Prove a commit reaches a machine already running the old one
jschoubben
2026-08-31 02:55:10 +02:00
d56a0c8fef
Prove a licence is accepted, sealed, and unreadable by the mesh
jschoubben
2026-08-31 02:52:26 +02:00
47d990b33a
Prove a route reaches the workload, and does not outlive it
jschoubben
2026-08-31 02:43:19 +02:00
21a1e85d32
Prove rotation against a real database, with a real login
jschoubben
2026-08-31 02:39:00 +02:00
f5619b02d6
A builder that is a module cannot see the machine's filesystem
jschoubben
2026-08-31 01:53:22 +02:00
83727099eb
The firewall module ships the unit that loads its rules
jschoubben
2026-08-31 01:20:46 +02:00
6bd7833ae9
Test that "from the mesh" is not a synonym for "open"
jschoubben
2026-08-31 01:07:06 +02:00
35000a236c
Assert the builder can reach the broker, not merely that it is running
jschoubben
2026-08-31 00:55:33 +02:00
9711a90bde
A command with no marker is a failure, not a success
jschoubben
2026-08-31 00:48:00 +02:00
44f088a5b6
Assert the build was recorded, not that the word appears
jschoubben
2026-08-31 00:46:09 +02:00
0100c39845
Build the builder before replacing the hand-started one, and listen from a file
jschoubben
2026-08-31 00:41:24 +02:00
29cdaa4de3
Prove a machine filters what it was told to and nothing else
jschoubben
2026-08-31 00:25:19 +02:00
2f81701a13
Let a caller say how long to wait, and note where the artifact-store test went
jschoubben
2026-08-30 20:41:10 +02:00
c98ee7a82d
A machine that fell behind catches up without being named
jschoubben
2026-08-30 19:47:03 +02:00
e0793c17f7
A declaration waits, and unassigning takes away exactly what it should
jschoubben
2026-08-30 19:39:46 +02:00
230074665f
A machine that cannot do what it was told, and the mesh saying so
jschoubben
2026-08-30 18:15:14 +02:00
e0127df7ce
A machine in the mesh builds a module, and the catalogue records it
jschoubben
2026-08-30 04:06:23 +02:00
99b3444b19
Two machines, one mesh, a credential neither end had to be told twice
jschoubben
2026-08-30 03:05:07 +02:00
e89379fef8
Prove a mesh credential becomes a login, against a real database
jschoubben
2026-08-30 01:29:46 +02:00
c79b83c1bc
The base image carries the network tools, and a scenario that grows
jschoubben
2026-08-29 18:04:17 +02:00
185c414884
A scenario with two machines
jschoubben
2026-08-29 16:51:55 +02:00
88cf89194a
The lab said nothing was running while two machines were
jschoubben
2026-08-29 11:54:33 +02:00
f88dbcc51e
Add the first-node scenario
jschoubben
2026-08-29 01:54:18 +02:00
be176bab2e
Automate the lab registry: a sealed machine pulls by digest
jschoubben
2026-08-29 00:04:55 +02:00
4097ff92c1
Repoint ADR references after HQ consolidated 65 records to 23
jschoubben
2026-08-28 23:33:46 +02:00
37c6a0ba21
A registry inside the scenario: the mechanism, verified
jschoubben
2026-08-28 02:18:35 +02:00
d6eef25590
The lab can give a sealed machine a container runtime
jschoubben
2026-08-28 01:56:32 +02:00
78b6f058ff
Lockfile: the bin path was stale
jschoubben
2026-08-27 22:46:42 +02:00
a21be505db
Merge pull request 'The lab raises a mesh, draws it, and now places tier 0 inside it' (#1 ) from feat/scenario-lifecycle into main
jschoubben
2026-08-26 01:02:28 +02:00
16c13807a9
place: the host — the lab acquires a consumer
jschoubben
2026-08-26 00:41:25 +02:00
b015068921
Step 2: raise a second scenario, and share the invariants
jschoubben
2026-08-25 00:29:59 +02:00
715f367147
Step 1: an invariant that holds of any raised scenario
jschoubben
2026-08-25 00:21:09 +02:00
a6b7d67e19
Gateways sharing an address are one gateway
jschoubben
2026-08-24 23:43:23 +02:00
54d417fdb2
Group each public network with what is behind it
jschoubben
2026-08-24 23:27:11 +02:00
5b8d01eacf
Lay a gateway on the boundary it serves, not the one it faces
jschoubben
2026-08-24 23:08:42 +02:00
2243618f01
Draw a scenario, from the declaration and from the hypervisor
jschoubben
2026-08-24 22:53:00 +02:00
ca2bbab836
Integration tests, each named for the decision it defends
jschoubben
2026-08-24 22:26:34 +02:00
5d01006eab
Transit, host firewalls, and the whole topology raising
jschoubben
2026-08-24 01:49:30 +02:00
a270cd5b02
Routers: NAT, port forwarding, policy and mapping expiry
jschoubben
2026-08-24 01:37:19 +02:00
a27d861d3b
Scenario lifecycle: raise, exec, snapshot, restore, destroy
jschoubben
2026-08-24 01:12:49 +02:00
021ef4a5d7
mesh-lab: what this is, and why it is built first
jschoubben
2026-08-23 22:25:58 +02:00