Add owner-facing Headplane pilot checklist
This commit is contained in:
@@ -134,6 +134,123 @@ docker exec -it headscale kill -HUP 1
|
|||||||
|
|
||||||
Then inspect the container logs for policy parse results.
|
Then inspect the container logs for policy parse results.
|
||||||
|
|
||||||
|
## Owner-facing Headplane pilot checklist
|
||||||
|
|
||||||
|
This section is for John as the stack owner using the Web UI. Doris should handle the CLI and backend admin work; this checklist is about what John should look for in Headplane and when to escalate.
|
||||||
|
|
||||||
|
### Where to go
|
||||||
|
|
||||||
|
- Open: `http://headplane.home.paccoco.com:3005/admin`
|
||||||
|
- Log in with the temporary Headscale API key Doris generated for the pilot
|
||||||
|
|
||||||
|
### What you should expect to see first
|
||||||
|
|
||||||
|
After initial pilot bring-up, Headplane should show:
|
||||||
|
- two users:
|
||||||
|
- `fizzlepoof`
|
||||||
|
- `manndra`
|
||||||
|
- John's enrolled device(s)
|
||||||
|
- one tagged pilot service node
|
||||||
|
- a generally healthy/online control plane with no obvious UI errors
|
||||||
|
|
||||||
|
If any of those are missing, that is a Doris problem to fix, not a John problem to debug.
|
||||||
|
|
||||||
|
### UI-first smoke test
|
||||||
|
|
||||||
|
#### 1. Confirm the users exist
|
||||||
|
Look for:
|
||||||
|
- `fizzlepoof`
|
||||||
|
- `manndra`
|
||||||
|
|
||||||
|
Good:
|
||||||
|
- both users appear once
|
||||||
|
|
||||||
|
Bad / message Doris if:
|
||||||
|
- a user is missing
|
||||||
|
- a duplicate or unexpected user exists
|
||||||
|
- user ownership looks wrong
|
||||||
|
|
||||||
|
#### 2. Confirm John's device is present
|
||||||
|
Look for at least one clearly identifiable John-owned device.
|
||||||
|
|
||||||
|
Good:
|
||||||
|
- device shows as online
|
||||||
|
- device is owned by `fizzlepoof`
|
||||||
|
- the name is recognizable enough to tell what it is
|
||||||
|
|
||||||
|
Bad / message Doris if:
|
||||||
|
- device is offline when it should be online
|
||||||
|
- device is attached to the wrong user
|
||||||
|
- device appears more than once unexpectedly
|
||||||
|
|
||||||
|
#### 3. Confirm Manndra's device is present
|
||||||
|
Good:
|
||||||
|
- device is owned by `manndra`
|
||||||
|
- it appears separately from John's devices
|
||||||
|
|
||||||
|
Bad / message Doris if:
|
||||||
|
- it shows under the wrong user
|
||||||
|
- it never appears after enrollment
|
||||||
|
- it appears to have broad access it should not have
|
||||||
|
|
||||||
|
#### 4. Confirm the tagged node looks like a service node
|
||||||
|
Look for one node tagged as a pilot service node, typically with `tag:apps` or `tag:infra`.
|
||||||
|
|
||||||
|
Good:
|
||||||
|
- the node is visibly tagged
|
||||||
|
- it is not owned like a normal human personal device
|
||||||
|
- it is online when the underlying service is online
|
||||||
|
|
||||||
|
Bad / message Doris if:
|
||||||
|
- the node is untagged
|
||||||
|
- it appears owned like a personal device when it should be infra
|
||||||
|
- it has the wrong tag
|
||||||
|
|
||||||
|
#### 5. Confirm the UI is usable enough to keep
|
||||||
|
Good:
|
||||||
|
- pages load consistently
|
||||||
|
- node/user details are understandable
|
||||||
|
- no obvious blank/error screens
|
||||||
|
- refreshing does not randomly lose state
|
||||||
|
|
||||||
|
Bad / message Doris if:
|
||||||
|
- login repeatedly fails with a known-good API key
|
||||||
|
- pages partially load or spin forever
|
||||||
|
- the UI looks disconnected from reality
|
||||||
|
- the UI feels too broken to trust for visibility
|
||||||
|
|
||||||
|
### Expected access behavior
|
||||||
|
|
||||||
|
John does not need to test raw ACL syntax. The practical expectations are:
|
||||||
|
|
||||||
|
- `fizzlepoof` should have broad pilot visibility/access
|
||||||
|
- `manndra` should be limited to app-level access
|
||||||
|
- Manndra should **not** have broad admin/infra access by default
|
||||||
|
|
||||||
|
If Manndra can reach something that feels like core infra/admin, treat that as a problem and tell Doris.
|
||||||
|
|
||||||
|
### What counts as pilot success from John's side
|
||||||
|
|
||||||
|
The pilot is good enough to continue if:
|
||||||
|
- Headplane reliably loads
|
||||||
|
- the users/nodes make sense at a glance
|
||||||
|
- John's devices are visible
|
||||||
|
- Manndra's device is visible and separated correctly
|
||||||
|
- the tagged service node is visible and clearly infra-like
|
||||||
|
- nothing suggests accidental overexposure
|
||||||
|
|
||||||
|
### When John should call Doris instead of poking at it
|
||||||
|
|
||||||
|
Call Doris if:
|
||||||
|
- login stops working
|
||||||
|
- users disappear or duplicate
|
||||||
|
- devices are attached to the wrong owner
|
||||||
|
- a tagged node loses its tag or looks wrong
|
||||||
|
- Manndra appears to have too much access
|
||||||
|
- the UI starts showing stale, contradictory, or obviously broken state
|
||||||
|
|
||||||
|
The point of the Web UI is visibility and confidence, not pushing John into VPN-control-plane babysitting.
|
||||||
|
|
||||||
## What to validate before expanding
|
## What to validate before expanding
|
||||||
|
|
||||||
- Headscale stays healthy
|
- Headscale stays healthy
|
||||||
|
|||||||
Reference in New Issue
Block a user