Ephemeral nodes
Devices that remove themselves — CI runners, containers and autoscaled workers that join the mesh on start and disappear cleanly when they stop.
- network
- ephemeral
- ci
- containers
- automation
- enrollment
A CI runner that lives for four minutes should not leave a device row behind forever. Ephemeral nodes join the mesh on start, do their work, and remove themselves when they stop.
Reusable enrollment keys
A normal enrollment token is single-use, which does not suit something that starts fifty times a day. Ephemeral nodes use a reusable key instead, with four controls that hold at once:
The audit record deliberately outlives the device
An ephemeral device deletes itself, so if the only trace lived on the device row there would be no trace at all. The record of who used the key, when is kept separately.
Create one in the dashboard under Devices → Enrollment keys.
Enrolling as ephemeral
roomlerd enroll --server https://roomler.ai --token <reusable-key> --ephemeral --name ci-runnerEphemeral is a property of the credential, not a flag on a request
A device cannot ask to be treated as permanent when it enrolled with an ephemeral key, or vice versa. The distinction rides the key, which is what makes it something an administrator controls rather than something the machine asserts.
What “ephemeral” changes
| Behaviour | Normal device | Ephemeral device |
|---|---|---|
| Machine identity | Stable, derived from hardware | Random per enrollment |
| Restarting the agent | The same device comes back | A new device |
| Clean shutdown | Stays in the list | Removes itself |
| Disappearing without stopping | Shows offline indefinitely | Reaped automatically |
A restart is a new device, by design
Ephemeral nodes deliberately do not reuse a machine identity — two containers from the same image on the same host must not collide. The consequence is that restarting an ephemeral agent produces a second device, with a new address.
If you want a machine that keeps its identity across restarts, it should not be ephemeral.
Cleaning up
Two mechanisms, because a machine cannot always announce its own exit:
- On a clean stop, the agent removes itself as it shuts down.
- Otherwise, a reaper removes ephemeral devices that have stopped reporting.
An update that restarts the agent does not count as a shutdown — otherwise every update would silently delete the device it was updating.
Using it in CI
curl -fsSL https://roomler.ai/api/setup/install.sh | sh -s -- \
--role daemon --system --token "$ROOMLER_ENROLL_KEY" \
--server https://roomler.ai --name "ci-$CI_JOB_ID" --ephemeralThe runner joins the mesh, can reach your private services for the length of the job, and is gone afterwards.
Keep the reusable key in your CI secret store
It is a standing credential that can add machines to your organization. Give it an expiry and a use limit, and revoke it if a job log ever prints it.
Not yet available for tunnel clients
Ephemeral enrollment currently applies to full agents. A tunnel-only client needs its own credential type, which is not built — it is deferred until there is evidence of need rather than implemented speculatively.