{"record":{"id":"99107009fa8442a8","repo":"kubernetes/kops","slug":"unhandled-cloudprovider-q","errorCode":null,"errorMessage":"unhandled cloudprovider %q","messagePattern":"unhandled cloudprovider %q","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"upup/pkg/fi/cloudup/template_functions.go","lineNumber":781,"sourceCode":"\t\tif cluster.Spec.ExternalDNS.WatchNamespace != \"\" {\n\t\t\targv = append(argv, fmt.Sprintf(\"--watch-namespace=%s\", cluster.Spec.ExternalDNS.WatchNamespace))\n\t\t}\n\t}\n\n\tswitch cluster.GetCloudProvider() {\n\tcase kops.CloudProviderAWS:\n\t\targv = append(argv, \"--dns=aws-route53\")\n\tcase kops.CloudProviderGCE:\n\t\targv = append(argv, \"--dns=google-clouddns\")\n\tcase kops.CloudProviderDO:\n\t\targv = append(argv, \"--dns=digitalocean\")\n\tcase kops.CloudProviderOpenstack:\n\t\targv = append(argv, \"--dns=openstack-designate\")\n\tcase kops.CloudProviderScaleway:\n\t\targv = append(argv, \"--dns=scaleway\")\n\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unhandled cloudprovider %q\", cluster.GetCloudProvider())\n\t}\n\n\tzone := cluster.Spec.DNSZone\n\tif zone != \"\" {\n\t\tif strings.Contains(zone, \".\") {\n\t\t\t// match by name\n\t\t\targv = append(argv, \"--zone=\"+zone)\n\t\t} else {\n\t\t\t// match by id\n\t\t\targv = append(argv, \"--zone=*/\"+zone)\n\t\t}\n\t}\n\n\tif cluster.Spec.IsIPv6Only() {\n\t\targv = append(argv, \"--internal-ipv6\")\n\t} else {\n\t\targv = append(argv, \"--internal-ipv4\")\n\t}","sourceCodeStart":763,"sourceCodeEnd":799,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/upup/pkg/fi/cloudup/template_functions.go#L763-L799","documentation":"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).","triggerScenarios":"Thrown at upup/pkg/fi/cloudup/template_functions.go:781 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"4c8573c808a73d578c5eadc86d410646ea0b0d73","analyzedAt":"2026-09-05T04:13:19.212Z","contentChangedAt":"2026-09-05T04:13:19.212Z","schemaVersion":2},"datasetVersion":"2026-09-12T07:17:12.445Z"}