kubernetes/kops · error
unhandled cloudprovider %q
Error message
unhandled cloudprovider %q
What it means
The default branch of the cloud provider switch in DNSControllerConfigArgv: the cluster's cloud provider is not one of AWS, GCE, DO, OpenStack or Scaleway, so kOps has no DNS provider flag to emit for external-dns. This indicates a provider that kOps's DNS controller support does not cover (or an unset/invalid cloudProvider value).
Source
Thrown at upup/pkg/fi/cloudup/template_functions.go:781
if cluster.Spec.ExternalDNS.WatchNamespace != "" {
argv = append(argv, fmt.Sprintf("--watch-namespace=%s", cluster.Spec.ExternalDNS.WatchNamespace))
}
}
switch cluster.GetCloudProvider() {
case kops.CloudProviderAWS:
argv = append(argv, "--dns=aws-route53")
case kops.CloudProviderGCE:
argv = append(argv, "--dns=google-clouddns")
case kops.CloudProviderDO:
argv = append(argv, "--dns=digitalocean")
case kops.CloudProviderOpenstack:
argv = append(argv, "--dns=openstack-designate")
case kops.CloudProviderScaleway:
argv = append(argv, "--dns=scaleway")
default:
return nil, fmt.Errorf("unhandled cloudprovider %q", cluster.GetCloudProvider())
}
zone := cluster.Spec.DNSZone
if zone != "" {
if strings.Contains(zone, ".") {
// match by name
argv = append(argv, "--zone="+zone)
} else {
// match by id
argv = append(argv, "--zone=*/"+zone)
}
}
if cluster.Spec.IsIPv6Only() {
argv = append(argv, "--internal-ipv6")
} else {
argv = append(argv, "--internal-ipv4")
}View on GitHub (pinned to 4c8573c808)
Solutions
- Confirm the cluster's spec.cloudProvider is set and spelled correctly
- If the provider genuinely lacks DNS controller support, disable external DNS in the cluster spec
- Add a case for the new provider in DNSControllerArgv if extending kOps
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at upup/pkg/fi/cloudup/template_functions.go:781 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/99107009fa8442a8.
Report an issue: GitHub.