diff --git a/pkg/provider/file/file.go b/pkg/provider/file/file.go index f6a48b613..7dc49fd7d 100644 --- a/pkg/provider/file/file.go +++ b/pkg/provider/file/file.go @@ -191,6 +191,10 @@ func (p *Provider) loadFileConfig(ctx context.Context, filename string, parseTem // TLS stores if len(configuration.TLS.Stores) > 0 { for name, store := range configuration.TLS.Stores { + if store.DefaultCertificate == nil { + continue + } + content, err := store.DefaultCertificate.CertFile.Read() if err != nil { log.FromContext(ctx).Error(err) diff --git a/pkg/provider/file/file_test.go b/pkg/provider/file/file_test.go index 23d820891..76fb49282 100644 --- a/pkg/provider/file/file_test.go +++ b/pkg/provider/file/file_test.go @@ -262,6 +262,13 @@ func getTestCases() []ProvideTestCase { expectedNumRouter: 20, expectedNumService: 20, }, + { + desc: "simple file with empty store yaml", + filePath: "./fixtures/yaml/simple_empty_store.yml", + expectedNumRouter: 0, + expectedNumService: 0, + expectedNumTLSConf: 0, + }, } } diff --git a/pkg/provider/file/fixtures/yaml/simple_empty_store.yml b/pkg/provider/file/fixtures/yaml/simple_empty_store.yml new file mode 100644 index 000000000..b9c8e3242 --- /dev/null +++ b/pkg/provider/file/fixtures/yaml/simple_empty_store.yml @@ -0,0 +1,3 @@ +tls: + stores: + default: {}