Skip to content

Commit c237e51

Browse files
authored
set node's endpoint & tls configs (#83)
1 parent 8bb5e5f commit c237e51

File tree

7 files changed

+82
-303
lines changed

7 files changed

+82
-303
lines changed

cmd/node/add.go

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -63,33 +63,18 @@ func getLocalIP() string {
6363
return ""
6464
}
6565

66-
func generateAddNodeOptions(c *cli.Context) (*corepb.AddNodeOptions, error) {
67-
podname := c.Args().First()
68-
if podname == "" {
69-
return nil, fmt.Errorf("podname must not be empty")
70-
}
71-
72-
nodename := c.String("nodename")
73-
if nodename == "" {
74-
n, err := os.Hostname()
75-
if err != nil {
76-
return nil, err
77-
}
78-
nodename = n
79-
}
80-
66+
func readTLSConfigs(c *cli.Context) (caContent, certContent, keyContent string, err error) {
8167
ca := c.String("ca")
8268
if ca == "" {
8369
defaultPath := "/etc/docker/tls/ca.crt"
8470
if _, err := os.Stat(defaultPath); err == nil {
8571
ca = defaultPath
8672
}
8773
}
88-
caContent := ""
8974
if ca != "" {
9075
f, err := ioutil.ReadFile(ca)
9176
if err != nil {
92-
return nil, fmt.Errorf("Error during reading %s: %v", ca, err)
77+
return "", "", "", fmt.Errorf("Error during reading %s: %v", ca, err)
9378
}
9479
caContent = string(f)
9580
}
@@ -101,11 +86,10 @@ func generateAddNodeOptions(c *cli.Context) (*corepb.AddNodeOptions, error) {
10186
cert = defaultPath
10287
}
10388
}
104-
certContent := ""
10589
if cert != "" {
10690
f, err := ioutil.ReadFile(cert)
10791
if err != nil {
108-
return nil, fmt.Errorf("Error during reading %s: %v", cert, err)
92+
return "", "", "", fmt.Errorf("Error during reading %s: %v", cert, err)
10993
}
11094
certContent = string(f)
11195
}
@@ -117,14 +101,28 @@ func generateAddNodeOptions(c *cli.Context) (*corepb.AddNodeOptions, error) {
117101
key = defaultPath
118102
}
119103
}
120-
keyContent := ""
121104
if key != "" {
122105
f, err := ioutil.ReadFile(key)
123106
if err != nil {
124-
return nil, fmt.Errorf("Error during reading %s: %v", key, err)
107+
return "", "", "", fmt.Errorf("Error during reading %s: %v", key, err)
125108
}
126109
keyContent = string(f)
127110
}
111+
return caContent, certContent, keyContent, nil
112+
}
113+
114+
func generateAddNodeOptions(c *cli.Context) (*corepb.AddNodeOptions, error) {
115+
podname := c.Args().First()
116+
if podname == "" {
117+
return nil, fmt.Errorf("podname must not be empty")
118+
}
119+
120+
nodename := c.String("nodename")
121+
122+
ca, cert, key, err := readTLSConfigs(c)
123+
if err != nil {
124+
return nil, err
125+
}
128126

129127
endpoint := c.String("endpoint")
130128
if endpoint == "" {
@@ -133,7 +131,7 @@ func generateAddNodeOptions(c *cli.Context) (*corepb.AddNodeOptions, error) {
133131
return nil, fmt.Errorf("unable to get local ip")
134132
}
135133
port := 2376
136-
if caContent == "" {
134+
if ca == "" {
137135
port = 2375
138136
}
139137
endpoint = fmt.Sprintf("tcp://%s:%d", ip, port)
@@ -145,7 +143,6 @@ func generateAddNodeOptions(c *cli.Context) (*corepb.AddNodeOptions, error) {
145143
}
146144

147145
var (
148-
err error
149146
memory, storage int64
150147
)
151148
if memory, err = utils.ParseRAMInHuman(c.String("memory")); err != nil {
@@ -196,9 +193,9 @@ func generateAddNodeOptions(c *cli.Context) (*corepb.AddNodeOptions, error) {
196193
Nodename: nodename,
197194
Endpoint: endpoint,
198195
Podname: podname,
199-
Ca: caContent,
200-
Cert: certContent,
201-
Key: keyContent,
196+
Ca: ca,
197+
Cert: cert,
198+
Key: key,
202199
Cpu: int32(cpu),
203200
Share: int32(share),
204201
Memory: memory,

cmd/node/cmd.go

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,6 @@ func Command() *cli.Command {
2828
ArgsUsage: nodeArgsUsage,
2929
Action: utils.ExitCoder(cmdNodeRemove),
3030
},
31-
{
32-
Name: "update",
33-
Usage: "update a node",
34-
ArgsUsage: nodeArgsUsage,
35-
Action: utils.ExitCoder(cmdNodeUpdate),
36-
Flags: []cli.Flag{
37-
&cli.StringFlag{
38-
Name: "endpoint",
39-
Usage: "update node endpoint",
40-
},
41-
},
42-
},
4331
{
4432
Name: "workloads",
4533
Usage: "list node workloads",
@@ -113,6 +101,7 @@ func Command() *cli.Command {
113101
},
114102
{
115103
Name: "set",
104+
Aliases: []string{"update"},
116105
Usage: "set node resource",
117106
ArgsUsage: nodeArgsUsage,
118107
Action: utils.ExitCoder(cmdNodeSet),
@@ -164,6 +153,25 @@ func Command() *cli.Command {
164153
Name: "delta",
165154
Usage: "delta flag for settings, when set, all values will be relative to the current values, refer to each option for details",
166155
},
156+
&cli.StringFlag{
157+
Name: "endpoint",
158+
Usage: "update node endpoint",
159+
},
160+
&cli.StringFlag{
161+
Name: "ca",
162+
Usage: "ca file, like /etc/docker/tls/ca.crt",
163+
Value: "",
164+
},
165+
&cli.StringFlag{
166+
Name: "cert",
167+
Usage: "cert file, like /etc/docker/tls/client.crt",
168+
Value: "",
169+
},
170+
&cli.StringFlag{
171+
Name: "key",
172+
Usage: "key file, like /etc/docker/tls/client.key",
173+
Value: "",
174+
},
167175
},
168176
},
169177
{
@@ -176,7 +184,7 @@ func Command() *cli.Command {
176184
Name: "nodename",
177185
Usage: "name of this node, use `hostname` as default",
178186
EnvVars: []string{"HOSTNAME"},
179-
Value: "",
187+
Value: utils.GetHostname(),
180188
},
181189
&cli.StringFlag{
182190
Name: "endpoint",

cmd/node/set.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,14 @@ func generateSetNodeOptionsAbsolute(c *cli.Context, client corepb.CoreRPCClient)
147147
}
148148
}
149149

150+
var (
151+
ca, cert, key string
152+
)
153+
ca, cert, key, err = readTLSConfigs(c)
154+
if err != nil {
155+
return nil, err
156+
}
157+
150158
return &corepb.SetNodeOptions{
151159
Nodename: name,
152160
StatusOpt: corepb.TriOpt_KEEP,
@@ -158,6 +166,10 @@ func generateSetNodeOptionsAbsolute(c *cli.Context, client corepb.CoreRPCClient)
158166
Numa: numa,
159167
Labels: utils.SplitEquality(c.StringSlice("label")),
160168
WorkloadsDown: c.Bool("mark-workloads-down"),
169+
Endpoint: c.String("endpoint"),
170+
Ca: ca,
171+
Cert: cert,
172+
Key: key,
161173
}, nil
162174
}
163175

@@ -229,6 +241,14 @@ func generateSetNodeOptionsDelta(c *cli.Context, _ corepb.CoreRPCClient) (*corep
229241
return nil, err
230242
}
231243

244+
var (
245+
ca, cert, key string
246+
)
247+
ca, cert, key, err = readTLSConfigs(c)
248+
if err != nil {
249+
return nil, err
250+
}
251+
232252
return &corepb.SetNodeOptions{
233253
Nodename: name,
234254
StatusOpt: corepb.TriOpt_KEEP,
@@ -240,5 +260,9 @@ func generateSetNodeOptionsDelta(c *cli.Context, _ corepb.CoreRPCClient) (*corep
240260
Numa: numa,
241261
Labels: utils.SplitEquality(c.StringSlice("label")),
242262
WorkloadsDown: c.Bool("mark-workloads-down"),
263+
Endpoint: c.String("endpoint"),
264+
Ca: ca,
265+
Cert: cert,
266+
Key: key,
243267
}, nil
244268
}

cmd/node/update.go

Lines changed: 0 additions & 51 deletions
This file was deleted.

cmd/utils/helper.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,9 @@ func ExitCoder(f func(*cli.Context) error) func(*cli.Context) error {
7979
return nil
8080
}
8181
}
82+
83+
// GetHostname .
84+
func GetHostname() string {
85+
hostname, _ := os.Hostname()
86+
return hostname
87+
}

0 commit comments

Comments
 (0)