@@ -2,7 +2,6 @@ package join
2
2
3
3
import (
4
4
"context"
5
- "encoding/base64"
6
5
"fmt"
7
6
"os"
8
7
@@ -28,11 +27,8 @@ import (
28
27
)
29
28
30
29
var joinExample = templates .Examples (i18n .T (`
31
- # join member1-cluster to master control plane
32
- kosmosctl join --cluster-kubeconfig=[member-kubeconfig] -f member1-cluster.yaml --master-kubeconfig=[master-kubeconfig]
33
-
34
- # join member1-cluster to current master control plane
35
- kosmosctl join --cluster-kubeconfig=[member-kubeconfig] -f member1-cluster.yaml
30
+ # join member-cluster to master control plane
31
+ kosmosctl join -f member-cluster.yaml --master-kubeconfig=[master-kubeconfig] --cluster-kubeconfig=[member-kubeconfig]
36
32
` ))
37
33
38
34
type CommandJoinOptions struct {
@@ -69,6 +65,10 @@ func NewCmdJoin(f ctlutil.Factory) *cobra.Command {
69
65
fmt .Printf ("kosmosctl join cmd error, MarkFlagRequired failed: %s" , err )
70
66
}
71
67
cmd .Flags ().StringVarP (& o .MasterKubeConfig , "master-kubeconfig" , "" , "" , "master-kubeconfig" )
68
+ err = cmd .MarkFlagRequired ("master-kubeconfig" )
69
+ if err != nil {
70
+ fmt .Printf ("kosmosctl join cmd error, MarkFlagRequired failed: %s" , err )
71
+ }
72
72
cmd .Flags ().StringVarP (& o .ClusterKubeConfig , "cluster-kubeconfig" , "" , "" , "cluster-kubeconfig" )
73
73
err = cmd .MarkFlagRequired ("cluster-kubeconfig" )
74
74
if err != nil {
@@ -82,16 +82,9 @@ func (o *CommandJoinOptions) Complete(f ctlutil.Factory, cmd *cobra.Command, arg
82
82
var masterConfig * restclient.Config
83
83
var err error
84
84
85
- if o .MasterKubeConfig != "" {
86
- masterConfig , err = clientcmd .BuildConfigFromFlags ("" , o .MasterKubeConfig )
87
- if err != nil {
88
- return fmt .Errorf ("kosmosctl join complete error, generate masterConfig failed: %s" , err )
89
- }
90
- } else {
91
- masterConfig , err = f .ToRESTConfig ()
92
- if err != nil {
93
- return fmt .Errorf ("kosmosctl join complete error, get current masterConfig failed: %s" , err )
94
- }
85
+ masterConfig , err = clientcmd .BuildConfigFromFlags ("" , o .MasterKubeConfig )
86
+ if err != nil {
87
+ return fmt .Errorf ("kosmosctl join complete error, generate masterConfig failed: %s" , err )
95
88
}
96
89
97
90
clusterConfig , err := clientcmd .BuildConfigFromFlags ("" , o .ClusterKubeConfig )
@@ -146,9 +139,9 @@ func (o *CommandJoinOptions) Run(f ctlutil.Factory, cmd *cobra.Command, args []s
146
139
}
147
140
148
141
// 3. create secret in member
149
- memberFile , err := os .ReadFile (o .ClusterKubeConfig )
150
- if err != nil {
151
- return fmt .Errorf ("(secret) kosmosctl join run warning, read memberconfig failed: %s" , err )
142
+ masterKubeConfig , err := os .ReadFile (o .MasterKubeConfig )
143
+ if err != nil && ! apierrors . IsAlreadyExists ( err ) {
144
+ return fmt .Errorf ("(secret) kosmosctl join run warning, read masterconfig failed: %s" , err )
152
145
}
153
146
secret := & corev1.Secret {
154
147
TypeMeta : metav1.TypeMeta {},
@@ -157,7 +150,8 @@ func (o *CommandJoinOptions) Run(f ctlutil.Factory, cmd *cobra.Command, args []s
157
150
Namespace : utils .NamespaceClusterLinksystem ,
158
151
},
159
152
Data : map [string ][]byte {
160
- "kubeconfig" : []byte (base64 .StdEncoding .EncodeToString (memberFile ))},
153
+ "kubeconfig" : masterKubeConfig ,
154
+ },
161
155
}
162
156
_ , err = o .Client .CoreV1 ().Secrets (secret .Namespace ).Create (context .TODO (), secret , metav1.CreateOptions {})
163
157
if err != nil && ! apierrors .IsAlreadyExists (err ) {
0 commit comments