Manage observability at entrypoint and router level
Co-authored-by: Kevin Pollet <pollet.kevin@gmail.com>
This commit is contained in:
parent
9588e51146
commit
b1934231ca
58 changed files with 1216 additions and 303 deletions
|
@ -18,20 +18,23 @@ func Test_parseRouterConfig(t *testing.T) {
|
|||
{
|
||||
desc: "router annotations",
|
||||
annotations: map[string]string{
|
||||
"ingress.kubernetes.io/foo": "bar",
|
||||
"traefik.ingress.kubernetes.io/foo": "bar",
|
||||
"traefik.ingress.kubernetes.io/router.pathmatcher": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.entrypoints": "foobar,foobar",
|
||||
"traefik.ingress.kubernetes.io/router.middlewares": "foobar,foobar",
|
||||
"traefik.ingress.kubernetes.io/router.priority": "42",
|
||||
"traefik.ingress.kubernetes.io/router.rulesyntax": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls": "true",
|
||||
"traefik.ingress.kubernetes.io/router.tls.certresolver": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.domains.0.main": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.domains.0.sans": "foobar,foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.domains.1.main": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.domains.1.sans": "foobar,foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.options": "foobar",
|
||||
"ingress.kubernetes.io/foo": "bar",
|
||||
"traefik.ingress.kubernetes.io/foo": "bar",
|
||||
"traefik.ingress.kubernetes.io/router.pathmatcher": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.entrypoints": "foobar,foobar",
|
||||
"traefik.ingress.kubernetes.io/router.middlewares": "foobar,foobar",
|
||||
"traefik.ingress.kubernetes.io/router.priority": "42",
|
||||
"traefik.ingress.kubernetes.io/router.rulesyntax": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls": "true",
|
||||
"traefik.ingress.kubernetes.io/router.tls.certresolver": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.domains.0.main": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.domains.0.sans": "foobar,foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.domains.1.main": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.domains.1.sans": "foobar,foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.options": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.observability.accessLogs": "true",
|
||||
"traefik.ingress.kubernetes.io/router.observability.metrics": "true",
|
||||
"traefik.ingress.kubernetes.io/router.observability.tracing": "true",
|
||||
},
|
||||
expected: &RouterConfig{
|
||||
Router: &RouterIng{
|
||||
|
@ -54,6 +57,11 @@ func Test_parseRouterConfig(t *testing.T) {
|
|||
},
|
||||
Options: "foobar",
|
||||
},
|
||||
Observability: &dynamic.RouterObservabilityConfig{
|
||||
AccessLogs: pointer(true),
|
||||
Tracing: pointer(true),
|
||||
Metrics: pointer(true),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -182,35 +190,41 @@ func Test_convertAnnotations(t *testing.T) {
|
|||
{
|
||||
desc: "router annotations",
|
||||
annotations: map[string]string{
|
||||
"ingress.kubernetes.io/foo": "bar",
|
||||
"traefik.ingress.kubernetes.io/foo": "bar",
|
||||
"traefik.ingress.kubernetes.io/router.pathmatcher": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.entrypoints": "foobar,foobar",
|
||||
"traefik.ingress.kubernetes.io/router.middlewares": "foobar,foobar",
|
||||
"traefik.ingress.kubernetes.io/router.priority": "42",
|
||||
"traefik.ingress.kubernetes.io/router.rulesyntax": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls": "true",
|
||||
"traefik.ingress.kubernetes.io/router.tls.certresolver": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.domains.0.main": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.domains.0.sans": "foobar,foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.domains.1.main": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.domains.1.sans": "foobar,foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.options": "foobar",
|
||||
"ingress.kubernetes.io/foo": "bar",
|
||||
"traefik.ingress.kubernetes.io/foo": "bar",
|
||||
"traefik.ingress.kubernetes.io/router.pathmatcher": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.entrypoints": "foobar,foobar",
|
||||
"traefik.ingress.kubernetes.io/router.middlewares": "foobar,foobar",
|
||||
"traefik.ingress.kubernetes.io/router.priority": "42",
|
||||
"traefik.ingress.kubernetes.io/router.rulesyntax": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls": "true",
|
||||
"traefik.ingress.kubernetes.io/router.tls.certresolver": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.domains.0.main": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.domains.0.sans": "foobar,foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.domains.1.main": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.domains.1.sans": "foobar,foobar",
|
||||
"traefik.ingress.kubernetes.io/router.tls.options": "foobar",
|
||||
"traefik.ingress.kubernetes.io/router.observability.accessLogs": "true",
|
||||
"traefik.ingress.kubernetes.io/router.observability.metrics": "true",
|
||||
"traefik.ingress.kubernetes.io/router.observability.tracing": "true",
|
||||
},
|
||||
expected: map[string]string{
|
||||
"traefik.foo": "bar",
|
||||
"traefik.router.pathmatcher": "foobar",
|
||||
"traefik.router.entrypoints": "foobar,foobar",
|
||||
"traefik.router.middlewares": "foobar,foobar",
|
||||
"traefik.router.priority": "42",
|
||||
"traefik.router.rulesyntax": "foobar",
|
||||
"traefik.router.tls": "true",
|
||||
"traefik.router.tls.certresolver": "foobar",
|
||||
"traefik.router.tls.domains[0].main": "foobar",
|
||||
"traefik.router.tls.domains[0].sans": "foobar,foobar",
|
||||
"traefik.router.tls.domains[1].main": "foobar",
|
||||
"traefik.router.tls.domains[1].sans": "foobar,foobar",
|
||||
"traefik.router.tls.options": "foobar",
|
||||
"traefik.foo": "bar",
|
||||
"traefik.router.pathmatcher": "foobar",
|
||||
"traefik.router.entrypoints": "foobar,foobar",
|
||||
"traefik.router.middlewares": "foobar,foobar",
|
||||
"traefik.router.priority": "42",
|
||||
"traefik.router.rulesyntax": "foobar",
|
||||
"traefik.router.tls": "true",
|
||||
"traefik.router.tls.certresolver": "foobar",
|
||||
"traefik.router.tls.domains[0].main": "foobar",
|
||||
"traefik.router.tls.domains[0].sans": "foobar,foobar",
|
||||
"traefik.router.tls.domains[1].main": "foobar",
|
||||
"traefik.router.tls.domains[1].sans": "foobar,foobar",
|
||||
"traefik.router.tls.options": "foobar",
|
||||
"traefik.router.observability.accessLogs": "true",
|
||||
"traefik.router.observability.metrics": "true",
|
||||
"traefik.router.observability.tracing": "true",
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue