Expand description
The reconciler behind isb serve: one worker thread per service keeps its
replicas created, current, running, healthy and in the load balancer.
A worker never holds a lock across incus calls, and a slow service (an image pull, a long rollout) never delays another’s health checks. Workers are told about a new deployment through their shared slot and woken early; a worker whose service went away deletes its own instances and exits, so nothing ever has to join a worker from inside another.
Structs§
- Controller
- The daemon’s stack controller.
- Deploy
Change - What a deploy is about to do, per service.
- Event
- Something that happened, for the event feed.
- Instance
Status - One replica, as
stack_statusreports it. - Port
Status - A published port: TCP served by the balancer, UDP by a NAT proxy on the
replica (
listenends in/udp,backendsis the replica). - Rollout
Status - A rollout in progress.
- Service
Status - One service of a stack, as
stack_statusreports it. - Slot
Rollout - One slot’s handover: the instance going away and the one replacing it.
- Snapshot
- The latest host and instance sample.
- Stack
Status - A stack, as
stack_statusandstack_listreport it.
Traits§
- Observer
- Something that follows which replicas receive traffic: the ingress. Called from worker threads, never with a controller lock held.
Functions§
Type Aliases§
- Event
Sink - Hears every event as it is emitted. It must not block (the history queues and returns).