Skip to content

Calico Enterprise KubeVirt docs: say live-migrating VMs are IPv4-only (bridge binding) #3161

Open

Description

@lwr20

The Calico Enterprise KubeVirt pages don't say that VMs using live migration are IPv4-only. One page implies the opposite.

Why VMs are IPv4-only

  • KubeVirt gives a VM IPv6 only with the masquerade binding (DHCPv6 plus per-family NAT). With the bridge binding, it deliberately drops the pod's IPv6 address, because the address would never be reachable from the guest (pkg/network/setup/netpod/discover.go).
  • networking/kubevirt/kubevirt-networking.mdx says masquerade is not supported for live migration, so bridge binding is required.
  • So a VM that can live-migrate with Calico gets IPv4 only.
  • We confirmed this on a cluster. On a dual-stack IP pool, the virt-launcher pod gets an IPv6 address, but the VMI status and the guest don't.

Gaps

  1. networking/kubevirt/kubevirt-networking.mdx and index.mdx never mention IPv6 either way. They should say that KubeVirt VMs on Calico (bridge binding) get IPv4 only.
  2. networking/kubevirt/live-migration-bgp.mdx: the example BGPFilter has exportV6 / importV6 rules, which suggests IPv6 live migration works for KubeVirt. Either drop the v6 rules from the KubeVirt example, or say they only apply to non-KubeVirt workloads.
  3. networking/kubevirt/install-forklift-kubernetes.mdx / install-forklift-openshift.mdx and networking/l2-bridge/vm-identity.mdx don't say that only a source VM's IPv4 address is kept as its Calico identity. A guest's IPv6 configuration isn't.

reference/l2-bridge-support.mdx already says IPv6 isn't supported on L2. A similar line on the KubeVirt pages would close this.

Activity

  1. ctauchen commented on Oct 30, 2026

    @ctauchen
    Collaborator

    Fix in #3170. Kept it to the live migration page: an IPv4 prerequisite under Before you begin, and the v6 rules dropped from the BGPFilter example. Review welcome.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions