Per review: instead of logging the skipped pattern inside ShouldReload
(which lacks workload identity), collect the compile errors on
ReloadCheckResult.Errors and log them at the upgrade call site, where the
resource name, type, and namespace are known. Add a test for the
multi-value case where one comma-separated pattern is malformed and a
valid one still matches.
ShouldReload compiled each comma-separated value of a named reload
annotation (e.g. secret.reloader.stakater.com/reload) with
regexp.MustCompile, which panics on an invalid pattern. The value comes
straight from a user-set annotation on a watched workload, and the queue
worker has no recover(), so a single malformed annotation (e.g.
"app-config[") on any workload in any watched namespace crashes Reloader
and stops reloads cluster-wide.
Use regexp.Compile and, on error, log and skip that pattern instead of
panicking.
* separate methods
* basic refactoring
* moved common code to util package to use it in gateway
* common check for argo rollouts
* made code compilable with latest changes on master
* Moved options to separate package and created CommandLineOptions instance that will be in sync with options values.
* reverted extra changes
* initialize CommandLineOptions with default options in module init
* wait for paused at annotation before checking deployment paused
* moved things around to fix things
* reverted unnecessary changes
* reverted rolling_upgrade changes
* reverted extra change
* additional checks in reloader
* refactor: ShouldReloadInternal method. It will be called by Reloader
ShouldReload has some additional resource/namespace filter checks which are not needed for Reloader
* added test cases
* moved config to sharable packae
* moved resource selector and label selctor methods
* fixed pipeline
* removed map.yaml
* removed vague comment
* separate methods
* basic refactoring
* moved common code to util package to use it in gateway
* common check for argo rollouts
* made code compilable with latest changes on master
* Moved options to separate package and created CommandLineOptions instance that will be in sync with options values.
* reverted extra changes
* initialize CommandLineOptions with default options in module init
* wait for paused at annotation before checking deployment paused
* moved things around to fix things
* reverted unnecessary changes
* reverted rolling_upgrade changes
* reverted extra change