1
0
mirror of synced 2026-02-13 13:06:56 +00:00

Add label selector flag to get cmd

Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
This commit is contained in:
Somtochi Onyekwere
2023-04-05 17:19:21 +01:00
parent ef5f7bca64
commit a52f5aaa75
6 changed files with 178 additions and 0 deletions

View File

@@ -66,6 +66,7 @@ type GetFlags struct {
allNamespaces bool
noHeader bool
statusSelector string
labelSelector string
watch bool
}
@@ -78,6 +79,8 @@ func init() {
getCmd.PersistentFlags().BoolVarP(&getArgs.watch, "watch", "w", false, "After listing/getting the requested object, watch for changes.")
getCmd.PersistentFlags().StringVar(&getArgs.statusSelector, "status-selector", "",
"specify the status condition name and the desired state to filter the get result, e.g. ready=false")
getCmd.PersistentFlags().StringVarP(&getArgs.labelSelector, "label-selector", "l", "",
"filter objects by label selector")
rootCmd.AddCommand(getCmd)
}
@@ -150,6 +153,21 @@ func (get getCommand) run(cmd *cobra.Command, args []string) error {
listOpts = append(listOpts, client.MatchingFields{"metadata.name": args[0]})
}
if getArgs.labelSelector != "" {
label, err := metav1.ParseToLabelSelector(getArgs.labelSelector)
if err != nil {
return fmt.Errorf("unable to parse label selector: %w", err)
}
sel, err := metav1.LabelSelectorAsSelector(label)
if err != nil {
return err
}
listOpts = append(listOpts, client.MatchingLabelsSelector{
Selector: sel,
})
}
getAll := cmd.Use == "all"
if getArgs.watch {