kubernetes/kops · error
unsupported cloud provider: %s
Error message
unsupported cloud provider: %s
What it means
Prefix.Find validates that the node's boot config targets AWS before attempting to reconcile an IPv6 prefix delegation task; any other cloud provider returns this error. Prefix delegation via EC2 AssignIpv6Addresses only exists on AWS, so the task is AWS-only.
Source
Thrown at upup/pkg/fi/nodeup/nodetasks/prefix.go:55
type Prefix struct {
Name string
}
var _ fi.HasName = (*Prefix)(nil)
func (f *Prefix) GetName() *string {
return &f.Name
}
// String returns a string representation, implementing the Stringer interface
func (p *Prefix) String() string {
return fmt.Sprintf("Prefix: %s", p.Name)
}
func (e *Prefix) Find(c *fi.NodeupContext) (*Prefix, error) {
if c.T.BootConfig.CloudProvider != kops.CloudProviderAWS {
return nil, fmt.Errorf("unsupported cloud provider: %s", c.T.BootConfig.CloudProvider)
}
mac, err := getInstanceMetadataFirstValue(c.Context(), "mac")
if err != nil {
return nil, err
}
prefixes, err := getInstanceMetadataList(c.Context(), path.Join("network/interfaces/macs/", mac, "/ipv6-prefix"))
if err != nil {
return nil, err
}
if len(prefixes) == 0 {
return nil, nil
}
klog.V(2).Infof("found prefix for primary network interface: %q", prefixes[0])
actual := &Prefix{
Name: e.Name,View on GitHub (pinned to 4c8573c808)
Solutions
- Remove or disable IPv6 prefix delegation settings in the cluster spec when the cloud is not AWS.
- Set cloudProvider correctly and regenerate the nodeup config with `kops update cluster`.
- Only define the Prefix task on AWS instance groups.
Example fix
// before spec: cloudProvider: openstack nonMasqueradeCIDR: fd00::/8 # ipv6 prefix config left over // after spec: cloudProvider: openstack # prefix/ipv6-delegation config removed
Defensive patterns
Strategy: validation
Validate before calling
if bootConfig.CloudProvider != kops.CloudProviderAWS {
// do not define Prefix tasks on non-AWS clouds
return nil
} Prevention
- Do not copy IPv6 prefix-delegation config between clouds
- Regenerate nodeup config after changing cloudProvider
- Audit cluster spec for AWS-only fields when migrating templates
When it happens
Trigger: A Prefix task (IPv6 prefix delegation) is present in nodeup's task map while BootConfig.CloudProvider is GCE, OpenStack, Azure, Hetzner, DO, etc.
Common situations: Copying an AWS cluster spec as a template for another cloud and leaving the IPv6/prefix settings enabled; switching a cluster's cloudProvider without removing prefix-related configuration.
Related errors
- kOps IPAM controller not supported on cloud %q
- unexpected number of network interfaces for instance %q: %v
- unexpected amount of ipv6 prefixes on interface %q: %v
- error identifying node %q: %v
- error building node identifier: %w
AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05).
Data as JSON: /api/errors/ceee10cdd3126d6a.
Report an issue: GitHub.