pull mode register add check cluster exists
Signed-off-by: huangyanfeng <huangyanfeng1992@gmail.com>
This commit is contained in:
parent
697170b904
commit
0e46397086
|
@ -50,6 +50,7 @@ import (
|
||||||
"k8s.io/kubectl/pkg/util/templates"
|
"k8s.io/kubectl/pkg/util/templates"
|
||||||
|
|
||||||
"github.com/karmada-io/karmada/pkg/apis/cluster/validation"
|
"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"
|
"github.com/karmada-io/karmada/pkg/karmadactl/options"
|
||||||
cmdutil "github.com/karmada-io/karmada/pkg/karmadactl/util"
|
cmdutil "github.com/karmada-io/karmada/pkg/karmadactl/util"
|
||||||
"github.com/karmada-io/karmada/pkg/karmadactl/util/apiclient"
|
"github.com/karmada-io/karmada/pkg/karmadactl/util/apiclient"
|
||||||
|
@ -364,6 +365,18 @@ func (o *CommandRegisterOption) Run(parentCommand string) error {
|
||||||
return err
|
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.
|
// It's necessary to set the label of namespace to make sure that the namespace is created by Karmada.
|
||||||
labels := map[string]string{
|
labels := map[string]string{
|
||||||
util.ManagedByKarmadaLabel: util.ManagedByKarmadaLabelValue,
|
util.ManagedByKarmadaLabel: util.ManagedByKarmadaLabelValue,
|
||||||
|
@ -1021,3 +1034,19 @@ func ToClientSet(config *clientcmdapi.Config) (*kubeclient.Clientset, error) {
|
||||||
}
|
}
|
||||||
return client, nil
|
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