Create and manage a VM
Atlas chooses a host and stores the VM request. Metal applies that request on the host. Start with how one VM request works to learn which component owns each state.
Create a VM
Atlas chooses a host, saves a draft reservation, and asks Metal to create the VM. Metal accepts the request before the guest is ready. Follow the linked request guide for the full create flow and lost-response behavior.
Change a VM
Atlas sends power, restart, resource, network, key, and metadata changes to the assigned host. Metal reports the applied generation separately from request acceptance.
A resize uses the current host if it has enough capacity. Otherwise, Atlas can reserve another host and use migration.
Read Metal's requested and applied generations for current progress. The Atlas VM list uses cached host reports.
Terminate a VM
- Atlas requests destruction and marks its record as terminating.
- Metal removes runtime, network, and disk resources through saved cleanup checkpoints.
- Atlas removes its record after Metal confirms absence.
Public-address allocation has a separate retry path.
Failure and recovery
Keep uncertain drafts and terminating records when Metal does not answer. Find a problem starts with the assigned host, Metal progress, and Atlas jobs. For guest access, use the console.
Details: Atlas VM records, Metal reconciliation, Atlas API, and Metal API.
Source code and tests
- Atlas VM service owns draft creation and host calls.
- Placement context reserves host capacity.
- Atlas reconciliation settles uncertain drafts and terminations.
- Metal manager stores the create request and checks retries.
- Metal reconciliation applies and removes host resources.
- Atlas VM tests and Metal manager tests check the two commit points.