Skip to content

battery-operator v0.3.2: the guest bridge is virbr-battery, so Calico's autodetection skips it

Choose a tag to compare

@phoban01 phoban01 released this 06 Oct 12:21
· 9 commits to main since this release
v0.3.2
b81087d

The Host Image's guest bridge is now virbr-battery, so Calico's IP autodetection skips it.

Calico's default autodetection method, first-found, takes the first interface whose name is not on its exclude list. The old name, flbr0, was not on it. So Calico could take the guest bridge's address as the Node's, and the CNI failed on the Node. Calico v3.31.2 and v3.32.2 both exclude ^virbr.*. The list is DEFAULT_INTERFACES_TO_EXCLUDE in node/pkg/lifecycle/startup/autodetection/autodetection_linux.go.

  • The bridge follows libvirt's model (TAP devices for VMs, DHCP and DNS on the gateway, NAT out), and takes libvirt's prefix. libvirt names its own bridges virbr0, virbr1 and so on, so there is no clash.
  • HI-083 requires a bridge name on Calico's exclude list, and the image's checks enforce it.
  • The name is set in one place, /usr/libexec/battery/lib.sh. flintlockd's --bridge-name and the firewall rules take it from there.
  • A Host booted from the arm64 image ran Calico v3.31.2 with first-found and no IP_AUTODETECTION_METHOD. calico-node took the Host's own address, and every smoke step passed: pod networking, a Pool, a claim, the guest network, guest isolation, a flintlockd restart and Pool deletion.
  • The Hosts page applies Calico v3.31.2 and no longer suggests IP_AUTODETECTION_METHOD.

Upgrade: a Host that boots this image has virbr-battery and no flbr0. Rebooting into the new image ends the Host's MicroVMs, as any reboot does.

flintlock-runner's fleet scripts for the battery stack still name flbr0 (phoban01/flintlock-runner#124).

The Operator and the Exec Agent have not changed since v0.2.1.

Manifests artifact:

ghcr.io/phoban01/battery-operator/manifests:v0.3.2@sha256:dbd8584f2d071dc10a76aea68ffd6919953d3a1636cdeb837cedad7325f76c19
flux pull artifact oci://ghcr.io/phoban01/battery-operator/manifests:v0.3.2 --output ./battery-operator

Images, for linux/amd64 and linux/arm64:

  • ghcr.io/phoban01/battery-operator:v0.3.2
  • ghcr.io/phoban01/battery-operator/exec-agent:v0.3.2
  • ghcr.io/phoban01/battery-operator/host-image:v0.3.2