{"record":{"id":"1d76eb57c6dfc5e5","repo":"kubernetes/kops","slug":"invalid-target-q","errorCode":null,"errorMessage":"invalid target: %q","messagePattern":"invalid target: %q","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"upup/pkg/fi/cloudup/target.go","lineNumber":51,"sourceCode":"\tTargetDryRun Target = \"dryrun\"\n\t// TargetTerraform means we will generate terraform code.\n\tTargetTerraform Target = \"terraform\"\n)\n\n// Target can be used as a flag value.\nvar _ pflag.Value = (*Target)(nil)\n\nfunc (t *Target) String() string {\n\treturn string(*t)\n}\n\nfunc (t *Target) Set(value string) error {\n\tswitch strings.ToLower(value) {\n\tcase string(TargetDirect), string(TargetDryRun), string(TargetTerraform):\n\t\t*t = Target(value)\n\t\treturn nil\n\tdefault:\n\t\treturn fmt.Errorf(\"invalid target: %q\", value)\n\t}\n}\n\nfunc (t *Target) Type() string {\n\treturn \"target\"\n}\n","sourceCodeStart":33,"sourceCodeEnd":58,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/upup/pkg/fi/cloudup/target.go#L33-L58","documentation":"kops.Target implements the pflag.Value interface for the --target CLI flag and only accepts Direct, DryRun, or Terraform (case-insensitive). Any other value is rejected with this error before the cluster update runs.","triggerScenarios":"Running `kops update cluster --target <value>` with a value outside {direct, dryrun, terraform}, e.g. `--target cloudformation` or `--target apply`.","commonSituations":"Users expecting other IaC backends (CloudFormation, Pulumi); scripting with a typo like `--target terrafrom`; copying flags from other tools.","solutions":["Use one of the supported values: --target direct, --target dryrun, or --target terraform","If Terraform output is wanted, use `--target terraform` and run terraform plan/apply in the out/ directory","Check `kops update cluster --help` for the current list of valid targets on your kOps version"],"exampleFix":"// before\nkops update cluster mycluster --target cloudformation\n// after\nkops update cluster mycluster --target terraform","handlingStrategy":"validation","validationCode":"switch strings.ToLower(target) {\ncase \"direct\", \"dryrun\", \"terraform\":\n\t// ok\ndefault:\n\treturn fmt.Errorf(\"unsupported --target %q\", target)\n}","typeGuard":"func isValidTarget(v string) bool {\n\tswitch strings.ToLower(v) {\n\tcase \"direct\", \"dryrun\", \"terraform\":\n\t\treturn true\n\t}\n\treturn false\n}","tryCatchPattern":"var t target.Target\nif err := t.Set(flagValue); err != nil {\n\tfmt.Fprintf(os.Stderr, \"usage: --target direct|dryrun|terraform\\n\")\n\tos.Exit(2)\n}","preventionTips":["Only pass direct, dryrun, or terraform to --target","Check `kops update cluster --help` when upgrading kOps","Never assume other IaC backends are supported"],"tags":["cli","flags","validation","kops"],"backgroundTag":"invalid-enum-value","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"}