This controller watches for changes to ConfigMap
objects and performs rolling upgrades on their associated deployments for apps which are not capable of watching the ConfigMap
and updating dynamically.
This is particularly useful if the ConfigMap
is used to define environment variables - or your app cannot easily and reliably watch the ConfigMap
and update itself on the fly.
For a Deployment
called foo
have a ConfigMap
called foo
. Then add this annotation to your Deployment
metadata:
annotations:
configmap.fabric8.io/update-on-change: "foo"
Then, providing configmapcontroller
is running, whenever you edit the ConfigMap
called foo
the configmapcontroller will update the Deployment
by adding the environment variable:
FABRICB_FOO_REVISION=${configMapRevision}
This then triggers a rolling upgrade of your deployment's pods to use the new configuration.