fix config hot-reload on k8s (#181)

Co-authored-by: Leoyzen <leoyzen@gmial.com>
This commit is contained in:
Leoyzen
2025-06-28 02:49:31 +08:00
committed by GitHub
parent 10606abf89
commit 3bd1b23ce0

View File

@@ -145,7 +145,7 @@ func watchConfigFileWithReload(configPath string, reloadChan chan<- *proxy.Proxy
return
}
// We only care about writes/creates to the specific config file
if event.Name == configPath && (event.Has(fsnotify.Write) || event.Has(fsnotify.Create)) {
if event.Name == configPath && (event.Has(fsnotify.Write) || event.Has(fsnotify.Create) || event.Has(fsnotify.Remove)) {
// Reset or start the debounce timer
if debounceTimer != nil {
debounceTimer.Stop()
@@ -176,6 +176,13 @@ func watchConfigFileWithReload(configPath string, reloadChan chan<- *proxy.Proxy
newPM := proxy.New(newConfig)
reloadChan <- newPM
log.Println("Config reloaded successfully")
if (event.Has(fsnotify.Remove)) {
// re-add watcher
err = watcher.Add(configPath)
if err != nil {
log.Printf("Could not re-add watcher for %s: %s", configPath, err)
}
}
})
}
case err, ok := <-watcher.Errors: