Merge pull request #4557 from yanfeng1992/fix-pull-cluster-name-check
pull mode register add check cluster exists
This commit is contained in:
commit
32edd16051
|
@ -50,6 +50,7 @@ import (
|
|||
"k8s.io/kubectl/pkg/util/templates"
|
||||
|
||||
"github.com/karmada-io/karmada/pkg/apis/cluster/validation"
|
||||
karmadaclientset "github.com/karmada-io/karmada/pkg/generated/clientset/versioned"
|
||||
"github.com/karmada-io/karmada/pkg/karmadactl/options"
|
||||
cmdutil "github.com/karmada-io/karmada/pkg/karmadactl/util"
|
||||
"github.com/karmada-io/karmada/pkg/karmadactl/util/apiclient"
|
||||
|
@ -364,6 +365,18 @@ func (o *CommandRegisterOption) Run(parentCommand string) error {
|
|||
return err
|
||||
}
|
||||
|
||||
fmt.Println("[karmada-agent-start] Waiting to check cluster exists")
|
||||
karmadaClient, err := ToKarmadaClient(karmadaAgentCfg)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, exist, err := karmadautil.GetClusterWithKarmadaClient(karmadaClient, o.ClusterName)
|
||||
if err != nil {
|
||||
return err
|
||||
} else if exist {
|
||||
return fmt.Errorf("failed to register as cluster with name %s already exists", o.ClusterName)
|
||||
}
|
||||
|
||||
// It's necessary to set the label of namespace to make sure that the namespace is created by Karmada.
|
||||
labels := map[string]string{
|
||||
util.ManagedByKarmadaLabel: util.ManagedByKarmadaLabelValue,
|
||||
|
@ -1021,3 +1034,19 @@ func ToClientSet(config *clientcmdapi.Config) (*kubeclient.Clientset, error) {
|
|||
}
|
||||
return client, nil
|
||||
}
|
||||
|
||||
// ToKarmadaClient converts a KubeConfig object to a client
|
||||
func ToKarmadaClient(config *clientcmdapi.Config) (*karmadaclientset.Clientset, error) {
|
||||
overrides := clientcmd.ConfigOverrides{Timeout: "10s"}
|
||||
clientConfig, err := clientcmd.NewDefaultClientConfig(*config, &overrides).ClientConfig()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to create API client configuration from kubeconfig: %w", err)
|
||||
}
|
||||
|
||||
karmadaClient, err := karmadaclientset.NewForConfig(clientConfig)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return karmadaClient, nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue