{"record":{"id":"a3746258e2545ea3","repo":"kubernetes/kops","slug":"cidr-must-specified-for-networks-where-mode-legacy","errorCode":null,"errorMessage":"CIDR must specified for networks where mode=legacy","messagePattern":"CIDR must specified for networks where mode=legacy","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"upup/pkg/fi/cloudup/gcetasks/network.go","lineNumber":112,"sourceCode":"\t\tVersion: \"v1\",\n\t\tProject: project,\n\t\tName:    *e.Name,\n\t\tType:    \"networks\",\n\t\tGlobal:  true,\n\t}\n\treturn u.BuildURL()\n}\n\nfunc (e *Network) Run(c *fi.CloudupContext) error {\n\treturn fi.CloudupDefaultDeltaRunMethod(e, c)\n}\n\nfunc (_ *Network) CheckChanges(a, e, changes *Network) error {\n\tcidr := fi.ValueOf(e.CIDR)\n\tswitch e.Mode {\n\tcase \"legacy\":\n\t\tif cidr == \"\" {\n\t\t\treturn fmt.Errorf(\"CIDR must specified for networks where mode=legacy\")\n\t\t}\n\t\tklog.Warningf(\"using legacy mode for GCE network %q\", fi.ValueOf(e.Name))\n\tdefault:\n\t\tif cidr != \"\" {\n\t\t\treturn fmt.Errorf(\"CIDR cannot specified for networks where mode=%s\", e.Mode)\n\t\t}\n\t}\n\n\tswitch e.Mode {\n\tcase \"auto\":\n\tcase \"custom\":\n\tcase \"legacy\":\n\t\t// Known\n\n\tcase \"\":\n\t\t// Treated as \"keep existing\", only allowed for shared mode\n\t\tif !fi.ValueOf(e.Shared) {\n\t\t\treturn fmt.Errorf(\"must specify mode for (non-shared) Network\")","sourceCodeStart":94,"sourceCodeEnd":130,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/upup/pkg/fi/cloudup/gcetasks/network.go#L94-L130","documentation":"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.","triggerScenarios":"Thrown at upup/pkg/fi/cloudup/gcetasks/network.go:112 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"4c8573c808a73d578c5eadc86d410646ea0b0d73","analyzedAt":"2026-09-05T04:13:19.212Z","contentChangedAt":"2026-09-05T04:13:19.212Z","schemaVersion":2},"datasetVersion":"2026-09-12T07:17:12.445Z"}