mirror of
https://github.com/Dvorinka/Containr.git
synced 2026-10-28 07:41:27 +00:00
feat(nodes): remote sleep/wake — idle detection + wake-page ingress
Agents report per-container net IO at heartbeat; the sleeper measures idleness from those counters for remote services, removes replicas via the agent queue, and repoints the domain route at the backend's new /internal/wake-page endpoint (replacePath + priority-100 route in the file provider). First hit serves a reloading page and retriggers the wake reconcile, which recreates replicas and restores real upstreams. Manual POST /services/:id/sleep also routes remote; local sleep/wake flow is unchanged. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
1 parent
4028639239
commit
59dfd35583
12 files changed
+264
-37
No files matched your search
+9
-6
@@ -161,12 +161,15 @@ containr nodes update <id> --tags gpu,eu-west
|
||||
containr services update <id> --placement-tags gpu # only gpu nodes are eligible
|
||||
```
|
||||
|
||||
Remote nodes run registry-pulled images only — git builds and sleep
|
||||
detection stay local. Domains work remotely: the agent publishes the
|
||||
service port and the backend writes a Traefik file-provider route to the
|
||||
node's mesh IP (TRAEFIK_DYNAMIC_DIR — wired by the infra compose).
|
||||
Start, stop, restart, redeploy, and delete all fan out to the pinned
|
||||
node's agent. `services get` shows the resolved `node_name`.
|
||||
Remote nodes run registry-pulled images only — git builds stay local.
|
||||
Domains work remotely: the agent publishes the service port and the
|
||||
backend writes a Traefik file-provider route to the node's mesh IP
|
||||
(TRAEFIK_DYNAMIC_DIR — wired by the infra compose). Sleep mode works
|
||||
too: heartbeats carry per-container net counters, idle remote services
|
||||
lose their replicas via the agent, and the route repoints at the
|
||||
backend's wake page — the next hit reconciles the service back. Start,
|
||||
stop, restart, redeploy, and delete all fan out to the pinned node's
|
||||
agent. `services get` shows the resolved `node_name`.
|
||||
|
||||
Take a node out of rotation or empty it entirely (admin):
|
||||
|
||||
|
||||
Reference in new issue
Block a user