Automatically reload/restart services on configuration change
If AutoReloadConfig is true in the config (see doc/examples/config/zzzzz.yml),
arvados-server boot notices when the config file changes. If it changes in a meaningful way (as opposed to just changing YAML formatting, adding/removing a value that's already the default, etc) then it shuts down and restarts all services. This takes about 15s on my machine.
- configure (at least) the controller URL explicitly instead of relying on auto-assigned ports, so ports stay stable across restarts, or
- expect to reconfigure/restart any clients after updating config, so they use the new controller, keepproxy, keepstore, etc. endpoints, or
- not use AutoReloadConfig.
#10 Updated by Lucas Di Pentima 8 months ago
Sorry for the delay, yesterday I wasn’t being able to run
arvados-server boot on my usual dev VM because of some bundle version issue. Had to make a new one for it to work.
- I’m thinking that if the idea is to be able to do integration testing with different cluster configurations, maybe we should preserve the postgresql database? I’ve done some manual testing and it seems that it’s more of a complete cluster reset and not just a restart/reload feature.
- If the idea is to just have an automatic cluster reset feature, it LGTM.
Agree, when using
-own-temporary-database the side effect of resetting the database is probably a drawback more often than a feature. And the big shutdown/startup is slow. For now this just gives us more convenience than restarting everything manually.
In future we'll surely want to make it more efficient -- and perhaps avoid downtime entirely when port #s aren't changing, making it usable in production -- by reloading/restarting only the services that are potentially affected by the change.