Classes and pools
You describe agent hosts in your Helm values, with two kinds of resources the chart creates. On AWS, the Terraform module’s Helm values create one of each, nameddefault.
- A host class says what to launch: the image, instance types, subnets, security groups, instance profile and root volume.
- A pool says how many to run:
minHosts,maxHosts, andminIdleMemory, the free memory to keep for new sessions.
Lifecycle
- Launch. The controller starts an instance with the class’s settings and tags it as its own.
- Configure. The host reads its configuration from a Kubernetes Secret through the cluster’s API, with a short-lived token the controller gives it at launch. This is the same configuration your Helm values give the platform.
- Register. The host registers with your Tembo installation and becomes
Ready, usually within a few minutes. The controller replaces a host that doesn’t register within 15 minutes. - Run sessions. The host claims sessions and runs each one in its own virtual machine.
Scaling
The controller sizes each pool by memory: the memory its sessions use, plus the memory waiting sessions need, plusminIdleMemory. When that is more than the pool’s hosts provide, it launches another host, up to maxHosts. It never goes below minHosts.
Removing idle hosts is coming. Until then, hosts keep running until you remove them.
Sessions on a host
- Stopping. When a session goes idle, its virtual machine stops. The host saves a snapshot of its disk and memory, and uploads the disk to object storage.
- Resuming. On the same host, a session resumes from its saved memory, with its processes still running. On another host, for example after its host was replaced, it resumes from the disk in object storage, without the processes that were running.
- Project images. A project build creates an image of the project’s environment and stores it in object storage. Hosts download it on first use and keep a copy, so later sessions start in seconds.
- Warm VMs. For projects with Warm pool on, hosts keep virtual machines booted from the project’s image, ready for the next session.