@@ -38,6 +38,7 @@ const (
38
38
// Run Time config of netmaster
39
39
type nmRunTimeConf struct {
40
40
clusterMode string
41
+ dnsEnabled bool
41
42
}
42
43
43
44
var masterRTCfg nmRunTimeConf
@@ -53,6 +54,7 @@ func SetClusterMode(cm string) error {
53
54
}
54
55
55
56
masterRTCfg .clusterMode = cm
57
+ SetDNSEnabled (false )
56
58
return nil
57
59
}
58
60
@@ -61,6 +63,22 @@ func GetClusterMode() string {
61
63
return masterRTCfg .clusterMode
62
64
}
63
65
66
+ // IsDNSEnabled gets the status of whether DNS is enabled
67
+ func IsDNSEnabled () bool {
68
+ return masterRTCfg .dnsEnabled
69
+ }
70
+
71
+ // SetDNSEnabled sets the status of DNS Enable
72
+ func SetDNSEnabled (dnsEnableFlag bool ) error {
73
+ log .Infof ("Setting dns flag to %s" , dnsEnableFlag )
74
+ masterRTCfg .dnsEnabled = dnsEnableFlag
75
+ return nil
76
+ }
77
+
78
+ func getDNSName (tenantName string ) string {
79
+ return tenantName + "dns"
80
+ }
81
+
64
82
func getEpName (networkName string , ep * intent.ConfigEP ) string {
65
83
if ep .Container != "" {
66
84
return networkName + "-" + ep .Container
@@ -196,12 +214,12 @@ func CreateTenant(stateDriver core.StateDriver, tenant *intent.ConfigTenant) err
196
214
return err
197
215
}
198
216
199
- if GetClusterMode () == "docker" {
217
+ if IsDNSEnabled () {
200
218
// start skydns container
201
219
err = startServiceContainer (tenant .Name )
202
220
if err != nil {
203
- log .Errorf ("Error starting service container. Err: %v" , err )
204
- return err
221
+ log .Errorf ("Error starting service container. Err: %v. Disabling DNS option. " , err )
222
+ SetDNSEnabled ( false )
205
223
}
206
224
}
207
225
@@ -243,7 +261,7 @@ func startServiceContainer(tenantName string) error {
243
261
"SKYDNS_ADDR=0.0.0.0:53" ,
244
262
"SKYDNS_DOMAIN=" + tenantName }}
245
263
246
- containerID , err := docker .CreateContainer (containerConfig , tenantName + "dns" , nil )
264
+ containerID , err := docker .CreateContainer (containerConfig , getDNSName ( tenantName ) , nil )
247
265
if err != nil {
248
266
log .Errorf ("Error creating DNS container for tenant: %s. Error: %s" , tenantName , err )
249
267
}
@@ -268,7 +286,7 @@ func stopAndRemoveServiceContainer(tenantName string) error {
268
286
return err
269
287
}
270
288
271
- dnsContName := tenantName + "dns"
289
+ dnsContName := getDNSName ( tenantName )
272
290
// Stop the container
273
291
err = docker .StopContainer (dnsContName , 10 )
274
292
if err != nil {
@@ -286,15 +304,17 @@ func stopAndRemoveServiceContainer(tenantName string) error {
286
304
287
305
// DeleteTenantID deletes a tenant from the state store, by ID.
288
306
func DeleteTenantID (stateDriver core.StateDriver , tenantID string ) error {
289
- if GetClusterMode () == "docker" {
290
- err := stopAndRemoveServiceContainer (tenantID )
307
+ var err error
308
+
309
+ if IsDNSEnabled () {
310
+ err = stopAndRemoveServiceContainer (tenantID )
291
311
if err != nil {
292
312
log .Errorf ("Error in stopping service container for tenant: %+v" , tenantID )
293
313
return err
294
314
}
295
315
}
296
316
297
- return nil
317
+ return err
298
318
}
299
319
300
320
// DeleteTenant deletes a tenant from the state store based on its ConfigTenant.
0 commit comments