agent/config: parse upstreams with multiple service definitions
This commit is contained in:
parent
7f2ba5ae7a
commit
f213c55723
|
@ -85,6 +85,7 @@ func Parse(data string, format string) (c Config, err error) {
|
|||
"services.checks",
|
||||
"watches",
|
||||
"service.connect.proxy.config.upstreams",
|
||||
"services.connect.proxy.config.upstreams",
|
||||
})
|
||||
|
||||
// There is a difference of representation of some fields depending on
|
||||
|
|
|
@ -2159,6 +2159,65 @@ func TestConfigFlagsAndEdgecases(t *testing.T) {
|
|||
},
|
||||
},
|
||||
|
||||
{
|
||||
desc: "JSON multiple services managed proxy 'upstreams'",
|
||||
args: []string{
|
||||
`-data-dir=` + dataDir,
|
||||
},
|
||||
json: []string{
|
||||
`{
|
||||
"services": [{
|
||||
"name": "web",
|
||||
"port": 8080,
|
||||
"connect": {
|
||||
"proxy": {
|
||||
"config": {
|
||||
"upstreams": [{
|
||||
"local_bind_port": 1234
|
||||
}, {
|
||||
"local_bind_port": 2345
|
||||
}]
|
||||
}
|
||||
}
|
||||
}
|
||||
},{
|
||||
"name": "service-A2",
|
||||
"port": 81,
|
||||
"tags": [],
|
||||
"checks": []
|
||||
}]
|
||||
}`,
|
||||
},
|
||||
skipformat: true, // skipping HCL cause we get slightly diff types (okay)
|
||||
patch: func(rt *RuntimeConfig) {
|
||||
rt.DataDir = dataDir
|
||||
rt.Services = []*structs.ServiceDefinition{
|
||||
&structs.ServiceDefinition{
|
||||
Name: "web",
|
||||
Port: 8080,
|
||||
Connect: &structs.ServiceConnect{
|
||||
Proxy: &structs.ServiceDefinitionConnectProxy{
|
||||
Config: map[string]interface{}{
|
||||
"upstreams": []interface{}{
|
||||
map[string]interface{}{
|
||||
"local_bind_port": float64(1234),
|
||||
},
|
||||
map[string]interface{}{
|
||||
"local_bind_port": float64(2345),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
&structs.ServiceDefinition{
|
||||
Name: "service-A2",
|
||||
Port: 81,
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
desc: "enabling Connect allow_managed_root",
|
||||
args: []string{
|
||||
|
|
Loading…
Reference in New Issue