Reloader is inspired from configmapcontroller but there are many ways in which it differs from configmapcontroller. Below is the small comparison between these two controllers.
| Reloader | ConfigMap |
|---|---|
Reloader can watch both Secrets and ConfigMaps. |
configmapcontroller can only watch changes in ConfigMaps. It cannot detect changes in other resources like Secrets. |
Reloader can perform rolling upgrades on deployments as well as on statefulsets and daemonsets |
configmapcontroller can only perform rolling upgrades on deployments. It currently does not support rolling upgrades on statefulsets and daemonsets |
| Reloader provides both unit test cases and end to end integration test cases for future updates. So one can make sure that new changes do not break any old functionality. | Currently there are not any unit test cases or end to end integration test cases in configmap-controller. It add difficulties for any additional updates in configmap-controller and one can not know for sure whether new changes breaks any old functionality or not. |
Reloader uses SHA1 to encode the change in ConfigMap or Secret. It then saves the SHA1 value in STAKATER_FOO_CONFIGMAP or STAKATER_FOO_SECRET environment variable depending upon where the change has happened. The use of SHA1 provides a concise 40 characters encoded value that is very less prone to collision. |
configmap-controller uses FABRICB_FOO_REVISION environment variable to store any change in ConfigMap controller. It does not encode it or convert it in suitable hash value to avoid data pollution in deployment. |
Reloader allows you to customize your own annotation (for both Secrets and ConfigMaps) using command line flags |
configmap-controller restricts you to only their provided annotation |