kubernetes/kops · error
scaleway currently only supports clusters in the same zone
Error message
scaleway currently only supports clusters in the same zone
What it means
Hard validation limit in ParseZoneFromClusterSpec: the cluster's subnets span more than one Scaleway zone, which the Scaleway provider does not support — kOps requires every subnet (hence the whole cluster) to live in a single availability zone. The first subnet's zone is taken as the reference; any different subnet zone triggers this.
Source
Thrown at upup/pkg/fi/cloudup/scaleway/utils.go:54
if errors.As(err, &responseError) && responseError.StatusCode == statusCode {
return true
}
return false
}
// is404Error returns true if err is an HTTP 404 error
func is404Error(err error) bool {
notFoundError := &scw.ResourceNotFoundError{}
return isHTTPCodeError(err, http.StatusNotFound) || errors.As(err, ¬FoundError)
}
func ParseZoneFromClusterSpec(clusterSpec kops.ClusterSpec) (scw.Zone, error) {
zone := ""
for _, subnet := range clusterSpec.Networking.Subnets {
if zone == "" {
zone = subnet.Zone
} else if zone != subnet.Zone {
return "", fmt.Errorf("scaleway currently only supports clusters in the same zone")
}
}
return scw.Zone(zone), nil
}
func ParseRegionFromZone(zone scw.Zone) (region scw.Region, err error) {
region, err = scw.ParseRegion(strings.TrimRight(string(zone), "-123"))
if err != nil {
return "", fmt.Errorf("could not determine region from zone %s: %w", zone, err)
}
return region, nil
}
func ClusterNameFromTags(tags []string) string {
for _, tag := range tags {
if strings.HasPrefix(tag, TagClusterName) {
return strings.TrimPrefix(tag, TagClusterName+"=")
}View on GitHub (pinned to 4c8573c808)
Solutions
- Edit the cluster spec so all subnets use the same zone
- Re-create the cluster with a single-zone network layout
- Track multi-zone support in the Scaleway provider upstream if needed
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at upup/pkg/fi/cloudup/scaleway/utils.go:54 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/cbc4b9307d974adc.
Report an issue: GitHub.