mirror of https://github.com/status-im/consul.git
Add decode rules for Expose cfg in service-defaults (#7611)
This commit is contained in:
parent
74bd138bae
commit
aae14b3951
|
@ -340,10 +340,15 @@ func ConfigEntryDecodeRulesForKind(kind string) (skipWhenPatching []string, tran
|
||||||
"config": "",
|
"config": "",
|
||||||
}, nil
|
}, nil
|
||||||
case ServiceDefaults:
|
case ServiceDefaults:
|
||||||
return nil, map[string]string{
|
return []string{
|
||||||
"mesh_gateway": "meshgateway",
|
"expose.paths",
|
||||||
"external_sni": "externalsni",
|
"Expose.Paths",
|
||||||
}, nil
|
}, map[string]string{
|
||||||
|
"local_path_port": "localpathport",
|
||||||
|
"listener_port": "listenerport",
|
||||||
|
"mesh_gateway": "meshgateway",
|
||||||
|
"external_sni": "externalsni",
|
||||||
|
}, nil
|
||||||
case ServiceRouter:
|
case ServiceRouter:
|
||||||
return []string{
|
return []string{
|
||||||
"routes",
|
"routes",
|
||||||
|
|
|
@ -1170,6 +1170,12 @@ func TestParseConfigEntry(t *testing.T) {
|
||||||
listener_port = 21500
|
listener_port = 21500
|
||||||
path = "/healthz"
|
path = "/healthz"
|
||||||
protocol = "http2"
|
protocol = "http2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
local_path_port = 8000
|
||||||
|
listener_port = 21501
|
||||||
|
path = "/metrics"
|
||||||
|
protocol = "http"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}`,
|
}`,
|
||||||
|
@ -1184,6 +1190,12 @@ func TestParseConfigEntry(t *testing.T) {
|
||||||
ListenerPort = 21500
|
ListenerPort = 21500
|
||||||
Path = "/healthz"
|
Path = "/healthz"
|
||||||
Protocol = "http2"
|
Protocol = "http2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
LocalPathPort = 8000
|
||||||
|
ListenerPort = 21501
|
||||||
|
Path = "/metrics"
|
||||||
|
Protocol = "http"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}`,
|
}`,
|
||||||
|
@ -1199,6 +1211,12 @@ func TestParseConfigEntry(t *testing.T) {
|
||||||
"listener_port": 21500,
|
"listener_port": 21500,
|
||||||
"path": "/healthz",
|
"path": "/healthz",
|
||||||
"protocol": "http2"
|
"protocol": "http2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"local_path_port": 8000,
|
||||||
|
"listener_port": 21501,
|
||||||
|
"path": "/metrics",
|
||||||
|
"protocol": "http"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -1216,6 +1234,12 @@ func TestParseConfigEntry(t *testing.T) {
|
||||||
"ListenerPort": 21500,
|
"ListenerPort": 21500,
|
||||||
"Path": "/healthz",
|
"Path": "/healthz",
|
||||||
"Protocol": "http2"
|
"Protocol": "http2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"LocalPathPort": 8000,
|
||||||
|
"ListenerPort": 21501,
|
||||||
|
"Path": "/metrics",
|
||||||
|
"Protocol": "http"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -1233,6 +1257,122 @@ func TestParseConfigEntry(t *testing.T) {
|
||||||
LocalPathPort: 8080,
|
LocalPathPort: 8080,
|
||||||
Protocol: "http2",
|
Protocol: "http2",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
ListenerPort: 21501,
|
||||||
|
Path: "/metrics",
|
||||||
|
LocalPathPort: 8000,
|
||||||
|
Protocol: "http",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "expose paths: kitchen sink service defaults",
|
||||||
|
snake: `
|
||||||
|
kind = "service-defaults"
|
||||||
|
name = "web"
|
||||||
|
expose = {
|
||||||
|
checks = true
|
||||||
|
paths = [
|
||||||
|
{
|
||||||
|
local_path_port = 8080
|
||||||
|
listener_port = 21500
|
||||||
|
path = "/healthz"
|
||||||
|
protocol = "http2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
local_path_port = 8000
|
||||||
|
listener_port = 21501
|
||||||
|
path = "/metrics"
|
||||||
|
protocol = "http"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}`,
|
||||||
|
camel: `
|
||||||
|
Kind = "service-defaults"
|
||||||
|
Name = "web"
|
||||||
|
Expose = {
|
||||||
|
Checks = true
|
||||||
|
Paths = [
|
||||||
|
{
|
||||||
|
LocalPathPort = 8080
|
||||||
|
ListenerPort = 21500
|
||||||
|
Path = "/healthz"
|
||||||
|
Protocol = "http2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
LocalPathPort = 8000
|
||||||
|
ListenerPort = 21501
|
||||||
|
Path = "/metrics"
|
||||||
|
Protocol = "http"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}`,
|
||||||
|
snakeJSON: `
|
||||||
|
{
|
||||||
|
"kind": "service-defaults",
|
||||||
|
"name": "web",
|
||||||
|
"expose": {
|
||||||
|
"checks": true,
|
||||||
|
"paths": [
|
||||||
|
{
|
||||||
|
"local_path_port": 8080,
|
||||||
|
"listener_port": 21500,
|
||||||
|
"path": "/healthz",
|
||||||
|
"protocol": "http2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"local_path_port": 8000,
|
||||||
|
"listener_port": 21501,
|
||||||
|
"path": "/metrics",
|
||||||
|
"protocol": "http"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
camelJSON: `
|
||||||
|
{
|
||||||
|
"Kind": "service-defaults",
|
||||||
|
"Name": "web",
|
||||||
|
"Expose": {
|
||||||
|
"Checks": true,
|
||||||
|
"Paths": [
|
||||||
|
{
|
||||||
|
"LocalPathPort": 8080,
|
||||||
|
"ListenerPort": 21500,
|
||||||
|
"Path": "/healthz",
|
||||||
|
"Protocol": "http2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"LocalPathPort": 8000,
|
||||||
|
"ListenerPort": 21501,
|
||||||
|
"Path": "/metrics",
|
||||||
|
"Protocol": "http"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
expect: &api.ServiceConfigEntry{
|
||||||
|
Kind: "service-defaults",
|
||||||
|
Name: "web",
|
||||||
|
Expose: api.ExposeConfig{
|
||||||
|
Checks: true,
|
||||||
|
Paths: []api.ExposePath{
|
||||||
|
{
|
||||||
|
ListenerPort: 21500,
|
||||||
|
Path: "/healthz",
|
||||||
|
LocalPathPort: 8080,
|
||||||
|
Protocol: "http2",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ListenerPort: 21501,
|
||||||
|
Path: "/metrics",
|
||||||
|
LocalPathPort: 8000,
|
||||||
|
Protocol: "http",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue