* tests: Rename 'cm' vars to 'cmw' for consistency
* Filter tracked sharedmain ConfigMaps based on label selector
The ConfigMap watcher only tracks the ConfigMaps which contain the label
defined by the optional SYSTEM_RESOURCE_LABEL env var if the latter
exists.
* Ignore idempotent updates and other cleanups
This makes sure we don't call the configmap update on the idempotent updates, which we get now and
that causes us lots of global resyncs. (┛◉Д◉)┛彡┻━┻.
In addition I went ahead and applied some nitpicking to the code.
/assign mattmoor
* fix races
* resync to zero
* Profiling support
* Move ProfilingPort to profiling package
* Fix golint errors
* Refactor watcher to accept variable length observers
* Cleaner happy path
* Remove profiling handlers argument
* use :8008 string as const
* Make the profiling port package private
* Make UpdateFromConfigMap member of profiling handler
* use mutex when accessing the enabled flag
* test the server as well
* Fixes
* Initialize profiling from configMap at startup
* Use httptest.ResponseRecorder to make the test more lightweight
* Fixes
* Do not initialize from configmap at startup
* Add configmap.DefaultingWatcher that allows watched ConfigMaps to be defaulted in code.
* Add a test where the real K8s CM is deleted.
* Remove unused cmName.
* WatchWithDefault after start panics.
* cfgs -> defaults
* Initialize defaults in NewInformedWatcherFromFactory.
* Remove unneeded error in panic.
* Few changes to the configmap package
- New* methods return concrete types
- defaultImpl is now InformedWatcher
- fixedImpl is now StaticWatcher
- Included a new ManualWatcher that mimics the InformedWatcher
in behaviour. ie. allows updates - making this a true 'mock'
* Include note about embedding the ManualWatcher in the InformedWatcher
* Update static_watcher.go
Fix some godoc