kubernetes/kops · error

multiple ipv6 addresses found on interface %q: %v

Error message

multiple ipv6 addresses found on interface %q: %v

What it means

The GCE IPAM reconciler found more than one external IPv6 address across the instance's network interfaces and cannot decide which to use. GCE IPAM expects exactly one IPv6 access config per instance.

Source

Thrown at cmd/kops-controller/controllers/gceipam.go:135

		if err != nil {
			return ctrl.Result{}, fmt.Errorf("getting instance %s/%s/%s: %w", project, zone, instanceID, err)
		}

		var ipv6Addresses []string
		for _, nic := range instance.NetworkInterfaces {
			for _, ipv6AccessConfig := range nic.Ipv6AccessConfigs {
				if ipv6AccessConfig.ExternalIpv6 != "" {
					ipv6Address := fmt.Sprintf("%s/%d", ipv6AccessConfig.ExternalIpv6, ipv6AccessConfig.ExternalIpv6PrefixLength)
					ipv6Addresses = append(ipv6Addresses, ipv6Address)
				}
			}
		}

		if len(ipv6Addresses) == 0 {
			return ctrl.Result{}, fmt.Errorf("no ipv6 address found on interface %q", instance.NetworkInterfaces[0].Name)
		}
		if len(ipv6Addresses) != 1 {
			return ctrl.Result{}, fmt.Errorf("multiple ipv6 addresses found on interface %q: %v", instance.NetworkInterfaces[0].Name, ipv6Addresses)
		}

		ipv6Address := ipv6Addresses[0]
		podCIDRs := []string{ipv6Address}
		if err := patchNodePodCIDRs(r.coreV1Client, ctx, node, podCIDRs); err != nil {
			return ctrl.Result{}, err
		}
	}

	return ctrl.Result{}, nil
}

func (r *GCEIPAMReconciler) SetupWithManager(mgr ctrl.Manager) error {
	return ctrl.NewControllerManagedBy(mgr).
		Named("gce_ipam").
		For(&corev1.Node{}).
		Complete(r)
}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Inspect the instance's network interfaces and remove the extra IPv6 access config
  2. Fix the instance template so only one interface gets an external IPv6 address
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at cmd/kops-controller/controllers/gceipam.go:135 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05). Data as JSON: /api/errors/0207a751c81bb3a9. Report an issue: GitHub.