From 675d0d23280729b182956c6d16dd016c765d3788 Mon Sep 17 00:00:00 2001 From: David Hotham Date: Mon, 20 Dec 2021 14:40:56 +0000 Subject: [PATCH] Completions for kubectl config delete-user Kubernetes-commit: 62eb74880cc3a97b04d1ea7fab62a207433a0f77 --- pkg/cmd/config/delete_user.go | 2 ++ pkg/util/completion.go | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/pkg/cmd/config/delete_user.go b/pkg/cmd/config/delete_user.go index c3c1fc95..1949ead4 100644 --- a/pkg/cmd/config/delete_user.go +++ b/pkg/cmd/config/delete_user.go @@ -25,6 +25,7 @@ import ( "k8s.io/client-go/tools/clientcmd" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" cmdutil "k8s.io/kubectl/pkg/cmd/util" + "k8s.io/kubectl/pkg/util" "k8s.io/kubectl/pkg/util/i18n" "k8s.io/kubectl/pkg/util/templates" ) @@ -64,6 +65,7 @@ func NewCmdConfigDeleteUser(streams genericclioptions.IOStreams, configAccess cl Short: i18n.T("Delete the specified user from the kubeconfig"), Long: i18n.T("Delete the specified user from the kubeconfig."), Example: deleteUserExample, + ValidArgsFunction: util.UserCompletionFunc, Run: func(cmd *cobra.Command, args []string) { cmdutil.CheckErr(o.Complete(cmd, args)) cmdutil.CheckErr(o.Validate()) diff --git a/pkg/util/completion.go b/pkg/util/completion.go index 3fe8f8cd..5ccd1630 100644 --- a/pkg/util/completion.go +++ b/pkg/util/completion.go @@ -131,6 +131,15 @@ func ClusterCompletionFunc(cmd *cobra.Command, args []string, toComplete string) return nil, cobra.ShellCompDirectiveNoFileComp } +// UserCompletionFunc is a completion function that completes as a first argument the +// user names that match the toComplete prefix +func UserCompletionFunc(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { + if len(args) == 0 { + return ListUsersInConfig(toComplete), cobra.ShellCompDirectiveNoFileComp + } + return nil, cobra.ShellCompDirectiveNoFileComp +} + // ListContextsInConfig returns a list of context names which begin with `toComplete` func ListContextsInConfig(toComplete string) []string { config, err := factory.ToRawKubeConfigLoader().RawConfig()