# mvirt 0.25.1

migrations: no
wire: unchanged
rev: 72f914071a94cf1043be1565ef1e473c4bab319d

mvirt 0.25.1

The object-storage gateway follows the control plane's leader instead of
stalling on a follower, a pod-VM that never boots leaves its serial
console in the workload logs, and stopping a pod in place no longer
loses its container output.

- s3: every gateway call to the control plane follows a 503 not_leader
  Location to the leader, re-resolves on refusal or connection error,
  and trusts the internal CA (MVIRT_S3_CPLANE_CA); nothing exits on a
  refusal (#214).
- node, vmm: a pod-VM start that fails before mvirt-one answers keeps
  the tail of its serial console (64 KiB) and the node ships it as the
  `console` source, readable with `mvirt app logs --source console`
  (#332).
- node: a pod stopped in place has its logs drained first, and every
  drain is bounded to 5 s so a wedged guest cannot hold a stop (#275,
  first half).
- cplane: POST /v1/platform/initialize and PATCH /v1/paas-settings are
  audited (#229).
- cli: the default project is saved per API endpoint (#297; reaches
  users with the next CLI release, not with the platform).


## Upgrading

Point your flake's `mvirt` input at this release and redeploy the control-plane
host first, then each node in turn:

```
nix run .#colmena -- apply boot --reboot --on <control-plane host>
nix run .#colmena -- apply boot --reboot --on <node>   # one at a time
```

This release adds no migrations, so the control-plane host rolls back the same way
a node does: boot the previous NixOS generation.
