kubernetes/kops · error

could not find utility subnet in zone: %q

Error message

could not find utility subnet in zone: %q

What it means

No subnet with type Utility exists in the requested availability zone in the cluster spec, so kOps cannot link utility/ELB resources into that zone; the input at fault is the spec's subnet list, not the zone itself.

Source

Thrown at pkg/model/awsmodel/context.go:74

	}

	return b.LinkToSubnet(matches[0]), nil
}

func (b *AWSModelContext) LinkToUtilitySubnetInZone(zoneName string) (*awstasks.Subnet, error) {
	var matches []*kops.ClusterSubnetSpec
	for i := range b.Cluster.Spec.Networking.Subnets {
		s := &b.Cluster.Spec.Networking.Subnets[i]
		if s.Zone != zoneName {
			continue
		}
		if s.Type != kops.SubnetTypeUtility {
			continue
		}
		matches = append(matches, s)
	}
	if len(matches) == 0 {
		return nil, fmt.Errorf("could not find utility subnet in zone: %q", zoneName)
	}
	if len(matches) > 1 {
		// TODO: Support this
		return nil, fmt.Errorf("found multiple utility subnets in zone: %q", zoneName)
	}

	return b.LinkToSubnet(matches[0]), nil
}
func (b *AWSModelContext) LinkToPrivateSubnetsInZone(zoneName string) ([]*awstasks.Subnet, error) {
	var matches []*kops.ClusterSubnetSpec
	for i := range b.Cluster.Spec.Networking.Subnets {
		s := &b.Cluster.Spec.Networking.Subnets[i]
		if s.Zone != zoneName {
			continue
		}
		if s.Type != kops.SubnetTypePrivate {
			continue
		}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Add a utility subnet for the quoted zone via kops edit cluster
  2. Review the spec's subnet entries and their type/zone pairing
  3. Re-run kops update after fixing the spec
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at pkg/model/awsmodel/context.go:74 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/72f58d69a7f03379. Report an issue: GitHub.