karmada/pkg/karmadactl/addons/list.go

54 lines
1.4 KiB
Go

package addons
import (
"fmt"
"github.com/spf13/cobra"
"k8s.io/kubectl/pkg/util/templates"
addoninit "github.com/karmada-io/karmada/pkg/karmadactl/addons/init"
)
var (
listExample = templates.Examples(`
# List Karmada all addons installed in Kubernetes cluster
%[1]s list
# List Karmada all addons included scheduler estimator of member1 installed in Kubernetes cluster
%[1]s list -C member1
# Specify the host cluster kubeconfig
%[1]s list --kubeconfig /root/.kube/config
# Specify the karmada control plane kubeconfig
%[1]s list --karmada-kubeconfig /etc/karmada/karmada-apiserver.config
# Sepcify the namespace where Karmada components are installed
%[1]s list --namespace karmada-system
`)
)
// NewCmdAddonsList list Karmada addons on Kubernetes
func NewCmdAddonsList(parentCommand string) *cobra.Command {
opts := addoninit.CommandAddonsListOption{}
cmd := &cobra.Command{
Use: "list",
Short: "List karmada addons from Kubernetes",
Long: "List Karmada addons from Kubernetes",
Example: fmt.Sprintf(listExample, parentCommand),
SilenceUsage: true,
RunE: func(cmd *cobra.Command, args []string) error {
if err := opts.Complete(); err != nil {
return err
}
if err := opts.Run(); err != nil {
return err
}
return nil
},
}
opts.GlobalCommandOptions.AddFlags(cmd.Flags())
return cmd
}