# mvirt 0.27.4

migrations: no
wire: unchanged
rev: 1b0415c3a072f73c8419be63b177ca913a577bcd

mvirt 0.27.4

Pods get working IPv6 addresses that match the API, storage daemons never
run on the root filesystem, and placement no longer depends on map order.

- one: a pod-VM's IPv6 no longer holds up its ready signal; link-local
  EEXIST counts as success, SLAAC waits for DAD, DHCPv6 only runs when the
  RA asks for it (refs #375).
- node, cplane: the node passes the assigned IPv6 to mvirt-ebpf, so a pod
  holds the address the API reports; IPAM skips the network address
  (.0 / ::) for new allocations (existing ones are kept), and a private
  IPv6 vNIC's routed prefix is /128, not /32 (#390).
- stor, nix: mvirt-stor-agentd/noded require mvirt-stor-xfs-init and the
  store mount point (systemd Requires= + AssertPathIsMountPoint=, and
  --require-mount in the daemons); xfs-init retries device/mkfs/mount (#93).
- s3, nix: the objectGateway assertion and mvirt-s3's startup error name
  every secret the gateway needs (#109, #59).
- cplane, node: a control plane that cannot yet recognise its own host
  does not place or adopt a flagged non-member host, so an automated
  install keeps its bootstrap voter (#376).
- cplane: the scheduler applies each cluster's own strategy and picks the
  cluster deterministically, independent of candidate order (#291).
- mvdb: regression test that the raft mesh reuses one channel per peer
  (#208, fixed since 0.22.0).


## 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.
