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

  1. Set a valid IPv4 CIDR on the network spec (legacy mode requires it)
  2. 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.