{"record":{"id":"50e8e07f3a5d583e","repo":"kubernetes/kops","slug":"linode-cloud-provider-currently-supports-one-regio","errorCode":null,"errorMessage":"linode cloud provider currently supports one region only","messagePattern":"linode cloud provider currently supports one region only","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"upup/pkg/fi/cloudup/new_cluster.go","lineNumber":791,"sourceCode":"\n\t\t// for DO, subnets are just regions\n\t\tsubnetName := region\n\n\t\tif subnet == nil {\n\t\t\tsubnet = &api.ClusterSubnetSpec{\n\t\t\t\tName: subnetName,\n\t\t\t\t// region and zone are the same for DO\n\t\t\t\tRegion: region,\n\t\t\t\tZone:   region,\n\t\t\t}\n\t\t\tcluster.Spec.Networking.Subnets = append(cluster.Spec.Networking.Subnets, *subnet)\n\t\t}\n\t\tzoneToSubnetsMap[region] = append(zoneToSubnetsMap[region], subnet)\n\t\treturn zoneToSubnetsMap, nil\n\n\tcase api.CloudProviderLinode:\n\t\tif len(opt.Zones) > 1 {\n\t\t\treturn nil, fmt.Errorf(\"linode cloud provider currently supports one region only\")\n\t\t}\n\n\t\t// For Akamai (Linode) we pass regions via --zones.\n\t\tregion := opt.Zones[0]\n\t\tsubnet := model.FindSubnet(cluster, region)\n\n\t\tif subnet == nil {\n\t\t\tsubnet = &api.ClusterSubnetSpec{\n\t\t\t\tName:   region,\n\t\t\t\tRegion: region,\n\t\t\t\tZone:   region,\n\t\t\t}\n\t\t\tcluster.Spec.Networking.Subnets = append(cluster.Spec.Networking.Subnets, *subnet)\n\t\t}\n\t\tzoneToSubnetsMap[region] = append(zoneToSubnetsMap[region], subnet)\n\t\treturn zoneToSubnetsMap, nil\n\n\tcase api.CloudProviderHetzner:","sourceCodeStart":773,"sourceCodeEnd":809,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/upup/pkg/fi/cloudup/new_cluster.go#L773-L809","documentation":"setupZones (Linode branch) validation: fires when more than one zone is given. Akamai (Linode) zones map to regions and the provider supports only one region per kOps cluster, so multi-zone input is rejected before subnet mapping.","triggerScenarios":"Thrown at upup/pkg/fi/cloudup/new_cluster.go:791 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass a single --zones value (one Linode region)","Split multi-region deployments into separate clusters"],"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-12T12:17:11.808Z"}