kubernetes/kops · error

secret name is required

Error message

secret name is required

What it means

The delete secret command requires exactly one secret name argument. If no positional arguments remain (after stripping the optional leading "secret" word), RunE reports that a secret name is required. This is a CLI argument-count guard.

Source

Thrown at cmd/kops/delete_secret.go:66

func NewCmdDeleteSecret(f *util.Factory, out io.Writer) *cobra.Command {
	options := &DeleteSecretOptions{}

	cmd := &cobra.Command{
		Use:     "secret SECRET_NAME...",
		Short:   deleteSecretShort,
		Example: deleteSecretExample,
		Args: func(cmd *cobra.Command, args []string) error {
			if len(args) > 0 && args[0] == "sshpublickey" {
				options.SecretType = args[0]
				return nil
			}

			if len(args) > 0 && args[0] == "secret" {
				args = args[1:]
			}

			if len(args) == 0 {
				return fmt.Errorf("secret name is required")
			}
			if len(args) > 1 {
				return fmt.Errorf("too many arguments")
			}
			options.SecretNames = args
			options.ClusterName = rootCommand.ClusterName(true)

			if options.ClusterName == "" {
				return fmt.Errorf("--name is required")
			}

			return nil
		},
		ValidArgsFunction: completeSecretNames(f),
		RunE: func(cmd *cobra.Command, args []string) error {
			return RunDeleteSecret(cmd.Context(), f, out, options)
		},
	}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Provide the secret name: kops delete secret <name> --name <cluster>
  2. List available secrets with `kops get secrets` to find the right name

Example fix

// before
kops delete secret --name mycluster.k8s.local
// after
kops delete secret dockerconfig --name mycluster.k8s.local
Defensive patterns

Strategy: validation

Validate before calling

if [ -z "$SECRET_NAME" ]; then echo "usage: kops delete secret <name> --name <cluster>"; exit 1; fi
kops delete secret "$SECRET_NAME" --name "$CLUSTER"

Prevention

When it happens

Trigger: `kops delete secret` invoked with zero arguments, e.g. `kops delete secret --name <cluster>`.

Common situations: Forgetting the secret name; copy-pasting command examples that omit the placeholder; scripting with an empty variable.

Understand the failure class

Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.

Related errors


AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05). Data as JSON: /api/errors/c789a8701265d26c. Report an issue: GitHub.