kubernetes/kops · error
CIDR must specified for networks where mode=legacy
Error message
CIDR must specified for networks where mode=legacy
What it means
Validation error from Network.CheckChanges. The spec declares Mode=legacy but the CIDR field is empty; legacy-mode GCE networks require an IPv4 range at creation time, so the model is rejected before any API call.
Source
Thrown at upup/pkg/fi/cloudup/gcetasks/network.go:112
Version: "v1",
Project: project,
Name: *e.Name,
Type: "networks",
Global: true,
}
return u.BuildURL()
}
func (e *Network) Run(c *fi.CloudupContext) error {
return fi.CloudupDefaultDeltaRunMethod(e, c)
}
func (_ *Network) CheckChanges(a, e, changes *Network) error {
cidr := fi.ValueOf(e.CIDR)
switch e.Mode {
case "legacy":
if cidr == "" {
return fmt.Errorf("CIDR must specified for networks where mode=legacy")
}
klog.Warningf("using legacy mode for GCE network %q", fi.ValueOf(e.Name))
default:
if cidr != "" {
return fmt.Errorf("CIDR cannot specified for networks where mode=%s", e.Mode)
}
}
switch e.Mode {
case "auto":
case "custom":
case "legacy":
// Known
case "":
// Treated as "keep existing", only allowed for shared mode
if !fi.ValueOf(e.Shared) {
return fmt.Errorf("must specify mode for (non-shared) Network")View on GitHub (pinned to 4c8573c808)
Solutions
- Set a valid IPv4 CIDR on the network spec (legacy mode requires it)
- Prefer switching the network to auto or custom mode, which do not take a CIDR
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at upup/pkg/fi/cloudup/gcetasks/network.go:112 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/a3746258e2545ea3.
Report an issue: GitHub.