{"record":{"id":"96b75506ff2656e3","repo":"kubernetes/kops","slug":"failed-to-create-the-cilium-ipsec-secret-as-it-alr","errorCode":null,"errorMessage":"failed to create the Cilium IPSec secret as it already exists. Pass the `--force` flag to replace an existing secret","messagePattern":"failed to create the Cilium IPSec secret as it already exists\\. Pass the `--force` flag to replace an existing secret","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/kops/create_secret_ciliumpassword.go","lineNumber":133,"sourceCode":"\t}\n\n\tvar parsedData map[string]interface{}\n\terr = kops.ParseRawYaml(data, &parsedData)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"unable to parse YAML %v: %v\", options.CiliumPasswordFilePath, err)\n\t}\n\n\tsecret := &fi.Secret{\n\t\tData: data,\n\t}\n\n\tif !options.Force {\n\t\t_, created, err := secretStore.GetOrCreateSecret(ctx, \"ciliumpassword\", secret)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"error adding Cilium IPSec secret: %v\", err)\n\t\t}\n\t\tif !created {\n\t\t\treturn fmt.Errorf(\"failed to create the Cilium IPSec secret as it already exists. Pass the `--force` flag to replace an existing secret\")\n\t\t}\n\t} else {\n\t\t_, err := secretStore.ReplaceSecret(\"ciliumpassword\", secret)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"updating Cilium IPSec secret: %v\", err)\n\t\t}\n\t}\n\n\treturn nil\n}\n","sourceCodeStart":115,"sourceCodeEnd":144,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/cmd/kops/create_secret_ciliumpassword.go#L115-L144","documentation":"GetOrCreateSecret found that the 'ciliumpassword' secret already exists, so it did not create a new one; without --force, overwriting an existing Cilium IPSec secret is refused to avoid invalidating keys in use by a running cluster.","triggerScenarios":"Thrown at cmd/kops/create_secret_ciliumpassword.go:133 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Re-run with --force to intentionally replace the existing secret","Keep the existing secret if rotation was not intended","Understand that replacing the key disrupts existing IPSec sessions until nodes reload it"],"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-12T12:17:11.808Z"}