From da6e031392dab1475d06d6f0580bc1a9d0f81330 Mon Sep 17 00:00:00 2001 From: "xin.li" Date: Mon, 11 Jul 2022 19:43:02 +0800 Subject: [PATCH] Fix karmadactl get -C error Signed-off-by: xin.li --- pkg/karmadactl/get.go | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/pkg/karmadactl/get.go b/pkg/karmadactl/get.go index 7f629819e..f4bdef0ed 100644 --- a/pkg/karmadactl/get.go +++ b/pkg/karmadactl/get.go @@ -35,6 +35,7 @@ import ( clusterv1alpha1 "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1" workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2" + karmadaclientset "github.com/karmada-io/karmada/pkg/generated/clientset/versioned" "github.com/karmada-io/karmada/pkg/karmadactl/options" "github.com/karmada-io/karmada/pkg/util/gclient" "github.com/karmada-io/karmada/pkg/util/helper" @@ -263,7 +264,10 @@ func (g *CommandGetOptions) Run(karmadaConfig KarmadaConfig, cmd *cobra.Command, wg.Add(len(g.Clusters)) for idx := range g.Clusters { - g.setClusterProxyInfo(karmadaRestConfig, g.Clusters[idx], clusterInfos) + err = g.setClusterProxyInfo(karmadaRestConfig, g.Clusters[idx], clusterInfos) + if err != nil { + return err + } f := getFactory(g.Clusters[idx], clusterInfos, "") go g.getObjInfo(&wg, &mux, f, g.Clusters[idx], &objs, &watchObjs, &allErrs, args) } @@ -940,7 +944,15 @@ func (g *CommandGetOptions) getRBInKarmada(namespace string, config *rest.Config } // setClusterProxyInfo set proxy information of cluster -func (g *CommandGetOptions) setClusterProxyInfo(karmadaRestConfig *rest.Config, name string, clusterInfos map[string]*ClusterInfo) { +func (g *CommandGetOptions) setClusterProxyInfo(karmadaRestConfig *rest.Config, name string, clusterInfos map[string]*ClusterInfo) error { + clusterClient := karmadaclientset.NewForConfigOrDie(karmadaRestConfig).ClusterV1alpha1().Clusters() + + // check if the cluster exists in the Karmada control plane + _, err := clusterClient.Get(context.TODO(), name, metav1.GetOptions{}) + if err != nil { + return err + } + clusterInfos[name].APIEndpoint = karmadaRestConfig.Host + fmt.Sprintf(proxyURL, name) clusterInfos[name].KubeConfig = g.KubeConfig clusterInfos[name].Context = g.KarmadaContext @@ -952,6 +964,7 @@ func (g *CommandGetOptions) setClusterProxyInfo(karmadaRestConfig *rest.Config, clusterInfos[name].KubeConfig = defaultKubeConfig } } + return nil } // getClusterInKarmada get cluster info in karmada cluster