Display default TLS options in the dashboard
This commit is contained in:
parent
77c8d60092
commit
44a2b85dba
4 changed files with 92 additions and 0 deletions
|
@ -11,6 +11,7 @@ import (
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
"github.com/traefik/traefik/v2/pkg/config/runtime"
|
"github.com/traefik/traefik/v2/pkg/config/runtime"
|
||||||
"github.com/traefik/traefik/v2/pkg/log"
|
"github.com/traefik/traefik/v2/pkg/log"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/tls"
|
||||||
)
|
)
|
||||||
|
|
||||||
type routerRepresentation struct {
|
type routerRepresentation struct {
|
||||||
|
@ -20,6 +21,10 @@ type routerRepresentation struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func newRouterRepresentation(name string, rt *runtime.RouterInfo) routerRepresentation {
|
func newRouterRepresentation(name string, rt *runtime.RouterInfo) routerRepresentation {
|
||||||
|
if rt.TLS != nil && rt.TLS.Options == "" {
|
||||||
|
rt.TLS.Options = tls.DefaultTLSConfigName
|
||||||
|
}
|
||||||
|
|
||||||
return routerRepresentation{
|
return routerRepresentation{
|
||||||
RouterInfo: rt,
|
RouterInfo: rt,
|
||||||
Name: name,
|
Name: name,
|
||||||
|
|
|
@ -223,6 +223,52 @@ func TestHandler_HTTP(t *testing.T) {
|
||||||
jsonFile: "testdata/router-bar.json",
|
jsonFile: "testdata/router-bar.json",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
desc: "one router by id, implicitly using default TLS options",
|
||||||
|
path: "/api/http/routers/baz@myprovider",
|
||||||
|
conf: runtime.Configuration{
|
||||||
|
Routers: map[string]*runtime.RouterInfo{
|
||||||
|
"baz@myprovider": {
|
||||||
|
Router: &dynamic.Router{
|
||||||
|
EntryPoints: []string{"web"},
|
||||||
|
Service: "foo-service@myprovider",
|
||||||
|
Rule: "Host(`foo.baz`)",
|
||||||
|
Middlewares: []string{"auth", "addPrefixTest@anotherprovider"},
|
||||||
|
TLS: &dynamic.RouterTLSConfig{},
|
||||||
|
},
|
||||||
|
Status: "enabled",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
expected: expected{
|
||||||
|
statusCode: http.StatusOK,
|
||||||
|
jsonFile: "testdata/router-baz-default-tls-options.json",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
desc: "one router by id, using specific TLS options",
|
||||||
|
path: "/api/http/routers/baz@myprovider",
|
||||||
|
conf: runtime.Configuration{
|
||||||
|
Routers: map[string]*runtime.RouterInfo{
|
||||||
|
"baz@myprovider": {
|
||||||
|
Router: &dynamic.Router{
|
||||||
|
EntryPoints: []string{"web"},
|
||||||
|
Service: "foo-service@myprovider",
|
||||||
|
Rule: "Host(`foo.baz`)",
|
||||||
|
Middlewares: []string{"auth", "addPrefixTest@anotherprovider"},
|
||||||
|
TLS: &dynamic.RouterTLSConfig{
|
||||||
|
Options: "myTLS",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Status: "enabled",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
expected: expected{
|
||||||
|
statusCode: http.StatusOK,
|
||||||
|
jsonFile: "testdata/router-baz-custom-tls-options.json",
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
desc: "one router by id, that does not exist",
|
desc: "one router by id, that does not exist",
|
||||||
path: "/api/http/routers/foo@myprovider",
|
path: "/api/http/routers/foo@myprovider",
|
||||||
|
@ -811,6 +857,7 @@ func TestHandler_HTTP(t *testing.T) {
|
||||||
// To lazily initialize the Statuses.
|
// To lazily initialize the Statuses.
|
||||||
rtConf.PopulateUsedBy()
|
rtConf.PopulateUsedBy()
|
||||||
rtConf.GetRoutersByEntryPoints(context.Background(), []string{"web"}, false)
|
rtConf.GetRoutersByEntryPoints(context.Background(), []string{"web"}, false)
|
||||||
|
rtConf.GetRoutersByEntryPoints(context.Background(), []string{"web"}, true)
|
||||||
|
|
||||||
handler := New(static.Configuration{API: &static.API{}, Global: &static.Global{}}, rtConf)
|
handler := New(static.Configuration{API: &static.API{}, Global: &static.Global{}}, rtConf)
|
||||||
server := httptest.NewServer(handler.createRouter())
|
server := httptest.NewServer(handler.createRouter())
|
||||||
|
|
20
pkg/api/testdata/router-baz-custom-tls-options.json
vendored
Normal file
20
pkg/api/testdata/router-baz-custom-tls-options.json
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"entryPoints": [
|
||||||
|
"web"
|
||||||
|
],
|
||||||
|
"middlewares": [
|
||||||
|
"auth",
|
||||||
|
"addPrefixTest@anotherprovider"
|
||||||
|
],
|
||||||
|
"name": "baz@myprovider",
|
||||||
|
"provider": "myprovider",
|
||||||
|
"rule": "Host(`foo.baz`)",
|
||||||
|
"service": "foo-service@myprovider",
|
||||||
|
"tls": {
|
||||||
|
"options": "myTLS"
|
||||||
|
},
|
||||||
|
"status": "enabled",
|
||||||
|
"using": [
|
||||||
|
"web"
|
||||||
|
]
|
||||||
|
}
|
20
pkg/api/testdata/router-baz-default-tls-options.json
vendored
Normal file
20
pkg/api/testdata/router-baz-default-tls-options.json
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"entryPoints": [
|
||||||
|
"web"
|
||||||
|
],
|
||||||
|
"middlewares": [
|
||||||
|
"auth",
|
||||||
|
"addPrefixTest@anotherprovider"
|
||||||
|
],
|
||||||
|
"name": "baz@myprovider",
|
||||||
|
"provider": "myprovider",
|
||||||
|
"rule": "Host(`foo.baz`)",
|
||||||
|
"service": "foo-service@myprovider",
|
||||||
|
"tls": {
|
||||||
|
"options": "default"
|
||||||
|
},
|
||||||
|
"status": "enabled",
|
||||||
|
"using": [
|
||||||
|
"web"
|
||||||
|
]
|
||||||
|
}
|
Loading…
Reference in a new issue