kubernetes/kops · error
subnet %q has unknown type %q
Error message
subnet %q has unknown type %q
What it means
A subnet in the cluster spec carries a type that matches no known subnet type during AWS network building; an invalid spec subnet type value that slipped past earlier validation.
Source
Thrown at pkg/model/awsmodel/network.go:376
// Private Subnet Route Table Associations
//
// Map the Private subnet to the Private route table
c.AddTask(&awstasks.RouteTableAssociation{
Name: new("private-" + subnetSpec.Name + "." + b.ClusterName()),
Lifecycle: b.Lifecycle,
RouteTable: b.LinkToPrivateRouteTableInZone(subnetSpec.Zone),
Subnet: subnet,
})
// TODO: validate even if shared?
if infoByZone[subnetSpec.Zone] == nil {
infoByZone[subnetSpec.Zone] = &zoneInfo{}
}
infoByZone[subnetSpec.Zone].NATSubnets = append(infoByZone[subnetSpec.Zone].NATSubnets, subnetSpec)
infoByZone[subnetSpec.Zone].HavePrivateSubnet = true
}
default:
return fmt.Errorf("subnet %q has unknown type %q", subnetSpec.Name, subnetSpec.Type)
}
}
// Set up private route tables & egress
// The instances in the private subnet can access the IPv6 Internet by
// using an egress-only internet gateway.
var eigw *awstasks.EgressOnlyInternetGateway
if !allPrivateSubnetsUnmanaged && b.IsIPv6Only() {
eigw = &awstasks.EgressOnlyInternetGateway{
Name: new(b.ClusterName()),
Lifecycle: b.Lifecycle,
VPC: b.LinkToVPC(),
Shared: new(sharedVPC),
}
eigw.Tags = b.CloudTags(*eigw.Name, *eigw.Shared)
c.AddTask(eigw)
}View on GitHub (pinned to 4c8573c808)
Solutions
- Correct the subnet type to a supported value (public/private/utility/dualstack)
- Fix the subnets block via kops edit cluster
- Re-run kops update
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at pkg/model/awsmodel/network.go:376 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/06d3f56527d09d06.
Report an issue: GitHub.