Should a failure to parse a single dynamic YAML file result in all files being rejected?

I've been under the impression that dynamic configuration should have a limited blast radius, i.e. if I add a YAML file that cannot be parsed, then this file will simply be discarded and other YAML files will be parsed as usual.

The behavior I'm seeing is that I have two .yml files in my dynamic file configuration folder: one traefik_api.yml file which specifies some custom config for dashboard/api/ping, and one proxy.yml file which I am trying to figure out Go templating with.

When I change the proxy.yml file to an invalid state, my dashboard routes break and I see the following in Traefik's logs:

time="2022-03-31T02:57:18Z" level=error msg="Error occurred during watcher callback: /etc/traefik/conf/dynamic/proxy.yml: unsupported simple value type: invalid" providerName=file
time="2022-03-31T03:06:34Z" level=error msg="Error occurred during watcher callback: /etc/traefik/conf/dynamic/proxy.yml: template: :19:36: executing \"\" at <.Key>: can't evaluate field Key in type bool" providerName=file

Those log messages are expected since that file is not parseable, but I would still expect the other valid dynamic config YAML files to be parsed and enabled.

1 Like

Hello @NReilingh

it sounds like an enhancement for the existing file provider. Don't hesitate to open an issue on the Traefik Github project and describe the issue you are facing and expected behavior.

Thank you for your kind collaboration.

1 Like

Thanks! Looks like you found my GitHub issue already, so yes, I landed on that.

Not sure whether it'll be categorized as a bug or a feature, but my rationale for considering it a bug was comparing to how the blast radius of a bad config on other providers like Docker is only limited to a single container. I haven't looked into the code though, so that might have more clues as to whether the problem is more one of design or implementation.

Linking to my GitHub issue for anyone else who comes across this thread:

1 Like