make file provider more resilient wrt first configuration

Co-authored-by: Romain <rtribotte@users.noreply.github.com>
Co-authored-by: Tom Moulard <tom.moulard@traefik.io>
This commit is contained in:
mpl 2022-12-09 09:48:04 +01:00 committed by GitHub
parent d97d3a6726
commit da93dab828
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -46,11 +46,6 @@ func (p *Provider) Init() error {
// Provide allows the file provider to provide configurations to traefik // Provide allows the file provider to provide configurations to traefik
// using the given configuration channel. // using the given configuration channel.
func (p *Provider) Provide(configurationChan chan<- dynamic.Message, pool *safe.Pool) error { func (p *Provider) Provide(configurationChan chan<- dynamic.Message, pool *safe.Pool) error {
configuration, err := p.BuildConfiguration()
if err != nil {
return err
}
if p.Watch { if p.Watch {
var watchItem string var watchItem string
@ -68,6 +63,15 @@ func (p *Provider) Provide(configurationChan chan<- dynamic.Message, pool *safe.
} }
} }
configuration, err := p.BuildConfiguration()
if err != nil {
if p.Watch {
log.WithoutContext().WithField(log.ProviderName, providerName).Errorf("Error while building configuration (for the first time): %v", err)
return nil
}
return err
}
sendConfigToChannel(configurationChan, configuration) sendConfigToChannel(configurationChan, configuration)
return nil return nil
} }