diff --git a/pkg/provider/traefik/internal.go b/pkg/provider/traefik/internal.go index 917c3d44d..b2f08f568 100644 --- a/pkg/provider/traefik/internal.go +++ b/pkg/provider/traefik/internal.go @@ -223,6 +223,12 @@ func (i *Provider) entryPointModels(cfg *dynamic.Configuration) { } for name, ep := range i.staticCfg.EntryPoints { + if defaultRuleSyntax != "" { + cfg.TCP.Models[name] = &dynamic.TCPModel{ + DefaultRuleSyntax: defaultRuleSyntax, + } + } + if len(ep.HTTP.Middlewares) == 0 && ep.HTTP.TLS == nil && defaultRuleSyntax == "" { continue } @@ -242,16 +248,6 @@ func (i *Provider) entryPointModels(cfg *dynamic.Configuration) { m.DefaultRuleSyntax = defaultRuleSyntax cfg.HTTP.Models[name] = m - - if cfg.TCP == nil { - continue - } - - mTCP := &dynamic.TCPModel{ - DefaultRuleSyntax: defaultRuleSyntax, - } - - cfg.TCP.Models[name] = mTCP } } diff --git a/pkg/server/aggregator.go b/pkg/server/aggregator.go index f015cb43d..66e32ac8e 100644 --- a/pkg/server/aggregator.go +++ b/pkg/server/aggregator.go @@ -2,6 +2,7 @@ package server import ( "slices" + "strings" "github.com/go-acme/lego/v4/challenge/tlsalpn01" "github.com/rs/zerolog/log" @@ -156,7 +157,11 @@ func applyModel(cfg dynamic.Configuration) dynamic.Configuration { router := rt.DeepCopy() if !router.DefaultRule && router.RuleSyntax == "" { - for _, model := range cfg.HTTP.Models { + for modelName, model := range cfg.HTTP.Models { + // models cannot be provided by another provider than the internal one. + if !strings.HasSuffix(modelName, "@internal") { + continue + } router.RuleSyntax = model.DefaultRuleSyntax break }