-
Notifications
You must be signed in to change notification settings - Fork 499
Closed
Labels
Description
Relates to #132
I'm not sure if the current implementation is intended but I've noticed config hot reloading is not working as expected (locally on Docker and with k8s ConfigMaps)
After some debugging I traced the issue down to — SymLinkRefresher watches only the base runtime path instead of RuntimePath/RuntimeSubdirectory/config
https://github.com/lyft/goruntime/blob/master/loader/symlink_refresher.go#L10
To fix this I would like to:
- Update goruntime package being used to latest. From 0.2.1 ⇒ 0.2.4
- There was a bug https://github.com/lyft/goruntime/blob/b08aa73df04bb444cbc68a9f244259a315411363/loader/directory_refresher.go#L15-L16 where the if conditional was missing parenthesis for DirectoryRefresher. This is why if you switched SymlinkRefresher to DirectoryRefresher, the hot reload would work as ShouldRefresh would trigger on any Chmod or Create ops. There was also a bug with path being watched: Use Dir instead of Base in DirectoryRefresher lyft/goruntime#21
- After 1, I'd like to switch SymLink to DirectoryRefresher in https://github.com/envoyproxy/ratelimit/blob/master/src/server/server_impl.go#L172-L176 and update the paths being passed in so hot reload works.
If Lyft maintainers want to chime in and say if it's working as intended for them, I can add this as a configurable option instead of permanent change.
Reactions are currently unavailable