Skip to content

battery-operator v0.4.0: battery v0.4.0, idempotent claims and arm64 AMIs

Choose a tag to compare

@phoban01 phoban01 released this 19 Oct 20:55
· 3 commits to main since this release
v0.4.0
d4dec16

battery-operator now runs battery v0.4.0, claims MicroVMs idempotently, and can publish arm64 AMIs.

battery v0.4.0

  • The battery sidecar is poolmgrd v0.4.0, and the Operator's battery client follows v0.4.0's API.
  • Every ClaimVM carries the claim's UID as its request id (CL-060). A retry after a lost answer, or after the Operator restarts before writing the claim's status, gets the same Lease back instead of a second MicroVM (CL-061).
  • While the Lease's MicroVM is being deleted, battery answers ABORTED. The claim stays Pending with reason ClaimAborted and retries with backoff (CL-062).
  • The claim model checks that a retried bind yields the same Lease, never a second MicroVM.

Upgrading from v0.3.x

battery migrates its database from v0.3.3's schema when it starts. A new e2e test starts the Operator with poolmgrd 0.3.3, binds a claim, upgrades the sidecar, and checks that the claim keeps its Lease, renews it, and that a new claim binds. No manual step is needed.

arm64 AMIs

hostimage/publish-ami.sh --arch amd64|arm64 (or make host-image-ami ARCH=arm64) makes an AMI of either architecture, named with it and tagged battery.liquidmetal-x.dev/architecture. bootc-image-builder runs on a machine of the target architecture. An arm64 disk made this way booted, joined a kubeadm cluster, and was reported ready by the Exec Agent. The AMI registration itself has not yet run against AWS. Graviton VM sizes have no nested virtualization, so an arm64 Host is a metal size such as c7gd.metal or c8gd.metal-24xl; config/capi shows both.

Known issue

battery v0.4.0 still leaks a MicroVM whose create hook fails while flintlockd is down (liquidmetal-dev/battery#131). The fix is liquidmetal-dev/battery#132, not yet released.

Artifacts

All for linux/amd64 and linux/arm64:

ghcr.io/phoban01/battery-operator:v0.4.0@sha256:799da2c1eff7d62a8bb6835104874cfb99759d43ad81d32680cf761529069319
ghcr.io/phoban01/battery-operator/exec-agent:v0.4.0@sha256:6383e4c29a7d14724efd473d4c76a4b8b3893efc5cc121e41dec236b2d6364e7
ghcr.io/phoban01/battery-operator/host-image:v0.4.0@sha256:507affac2a6191b6e9637aa49817614893f6cbe3511564c5a98045ef3aaf8cf7
ghcr.io/phoban01/battery-operator/guest-kernel:v0.4.0@sha256:2ace715defd6e7bf5c47164d19a16c6ab836ab49ab40537a48d04a816edd10bf
ghcr.io/phoban01/battery-operator/guest-rootfs:v0.4.0@sha256:f81ce8f9879a4c9ef4dd24f25a15417a278f0748decc73c598ec828bac1dffc2

Manifests artifact:

ghcr.io/phoban01/battery-operator/manifests:v0.4.0@sha256:5330107d0d46d9640da93eed92a6bd1189ca1f9ff1ec7f507cb5aedd062e2c77
flux pull artifact oci://ghcr.io/phoban01/battery-operator/manifests:v0.4.0 --output ./battery-operator