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

  1. Confirm the cluster's spec.cloudProvider is set and spelled correctly
  2. If the provider genuinely lacks DNS controller support, disable external DNS in the cluster spec
  3. 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.