Skip to content

Commit 0f44bcd

Browse files
authored
agent: default the primary_datacenter to the datacenter if not configured (#7111)
Something similar already happens inside of the server (agent/consul/server.go) but by doing it in the general config parsing for the agent we can have agent-level code rely on the PrimaryDatacenter field, too.
1 parent db3f071 commit 0f44bcd

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

agent/config/builder.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -689,9 +689,9 @@ func (b *Builder) Build() (rt RuntimeConfig, err error) {
689689
aclsEnabled = b.boolVal(c.ACL.Enabled)
690690
}
691691

692-
aclDC := primaryDatacenter
693-
if aclsEnabled && aclDC == "" {
694-
aclDC = datacenter
692+
// Set the primary DC if it wasn't set.
693+
if primaryDatacenter == "" {
694+
primaryDatacenter = datacenter
695695
}
696696

697697
enableTokenReplication := false
@@ -776,7 +776,7 @@ func (b *Builder) Build() (rt RuntimeConfig, err error) {
776776
ACLsEnabled: aclsEnabled,
777777
ACLAgentMasterToken: b.stringValWithDefault(c.ACL.Tokens.AgentMaster, b.stringVal(c.ACLAgentMasterToken)),
778778
ACLAgentToken: b.stringValWithDefault(c.ACL.Tokens.Agent, b.stringVal(c.ACLAgentToken)),
779-
ACLDatacenter: aclDC,
779+
ACLDatacenter: primaryDatacenter,
780780
ACLDefaultPolicy: b.stringValWithDefault(c.ACL.DefaultPolicy, b.stringVal(c.ACLDefaultPolicy)),
781781
ACLDownPolicy: b.stringValWithDefault(c.ACL.DownPolicy, b.stringVal(c.ACLDownPolicy)),
782782
ACLEnableKeyListPolicy: b.boolValWithDefault(c.ACL.EnableKeyListPolicy, b.boolVal(c.ACLEnableKeyListPolicy)),

agent/config/runtime_test.go

+20
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,8 @@ func TestConfigFlagsAndEdgecases(t *testing.T) {
196196
},
197197
patch: func(rt *RuntimeConfig) {
198198
rt.Datacenter = "a"
199+
rt.ACLDatacenter = "a"
200+
rt.PrimaryDatacenter = "a"
199201
rt.DataDir = dataDir
200202
},
201203
pre: func() {
@@ -210,6 +212,8 @@ func TestConfigFlagsAndEdgecases(t *testing.T) {
210212
},
211213
patch: func(rt *RuntimeConfig) {
212214
rt.Datacenter = "a"
215+
rt.ACLDatacenter = "a"
216+
rt.PrimaryDatacenter = "a"
213217
rt.DataDir = dataDir
214218
},
215219
pre: func() {
@@ -225,6 +229,8 @@ func TestConfigFlagsAndEdgecases(t *testing.T) {
225229
},
226230
patch: func(rt *RuntimeConfig) {
227231
rt.Datacenter = "b"
232+
rt.ACLDatacenter = "b"
233+
rt.PrimaryDatacenter = "b"
228234
rt.DataDir = dataDir
229235
},
230236
pre: func() {
@@ -254,6 +260,8 @@ func TestConfigFlagsAndEdgecases(t *testing.T) {
254260
},
255261
patch: func(rt *RuntimeConfig) {
256262
rt.Datacenter = "a"
263+
rt.ACLDatacenter = "a"
264+
rt.PrimaryDatacenter = "a"
257265
rt.DataDir = dataDir
258266
},
259267
},
@@ -436,6 +444,8 @@ func TestConfigFlagsAndEdgecases(t *testing.T) {
436444
},
437445
patch: func(rt *RuntimeConfig) {
438446
rt.Datacenter = "a"
447+
rt.ACLDatacenter = "a"
448+
rt.PrimaryDatacenter = "a"
439449
rt.DataDir = dataDir
440450
},
441451
pre: func() {
@@ -452,6 +462,8 @@ func TestConfigFlagsAndEdgecases(t *testing.T) {
452462
},
453463
patch: func(rt *RuntimeConfig) {
454464
rt.Datacenter = "a"
465+
rt.ACLDatacenter = "a"
466+
rt.PrimaryDatacenter = "a"
455467
rt.DataDir = dataDir
456468
},
457469
pre: func() {
@@ -467,6 +479,8 @@ func TestConfigFlagsAndEdgecases(t *testing.T) {
467479
},
468480
patch: func(rt *RuntimeConfig) {
469481
rt.Datacenter = "a"
482+
rt.ACLDatacenter = "a"
483+
rt.PrimaryDatacenter = "a"
470484
rt.DataDir = dataDir
471485
},
472486
pre: func() {
@@ -1398,6 +1412,8 @@ func TestConfigFlagsAndEdgecases(t *testing.T) {
13981412
rt.Bootstrap = false
13991413
rt.BootstrapExpect = 0
14001414
rt.Datacenter = "b"
1415+
rt.ACLDatacenter = "b"
1416+
rt.PrimaryDatacenter = "b"
14011417
rt.StartJoinAddrsLAN = []string{"a", "b", "c", "d"}
14021418
rt.NodeMeta = map[string]string{"a": "c"}
14031419
rt.DataDir = dataDir
@@ -1453,6 +1469,8 @@ func TestConfigFlagsAndEdgecases(t *testing.T) {
14531469
rt.SerfAdvertiseAddrLAN = tcpAddr("1.1.1.1:8301")
14541470
rt.SerfAdvertiseAddrWAN = tcpAddr("2.2.2.2:8302")
14551471
rt.Datacenter = "b"
1472+
rt.ACLDatacenter = "b"
1473+
rt.PrimaryDatacenter = "b"
14561474
rt.DNSRecursors = []string{"1.2.3.6", "5.6.7.10", "1.2.3.5", "5.6.7.9"}
14571475
rt.NodeMeta = map[string]string{"a": "c"}
14581476
rt.SerfBindAddrLAN = tcpAddr("3.3.3.3:8301")
@@ -1503,6 +1521,8 @@ func TestConfigFlagsAndEdgecases(t *testing.T) {
15031521
hcl: []string{`datacenter = "A"`},
15041522
patch: func(rt *RuntimeConfig) {
15051523
rt.Datacenter = "a"
1524+
rt.ACLDatacenter = "a"
1525+
rt.PrimaryDatacenter = "a"
15061526
rt.DataDir = dataDir
15071527
},
15081528
},

0 commit comments

Comments
 (0)