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, &notFoundError)
}

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

  1. Edit the cluster spec so all subnets use the same zone
  2. Re-create the cluster with a single-zone network layout
  3. 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.