manager: inverted process tree with supervisord
Process tree before this MR:
manager
|
supervisord
| |
kresd gc
After this MR:
supervisord -------
| | |
kresd gc manager
Why?
Because when manager stops without this, everything is taken down in Docker and in systemd. If we invert the process tree, that does not happen.
What does this change bring?
- it's more complicated
- manager can be upgraded without stopping anything else
- ...
Is it really worth it?
I am not sure at the moment. Depends, whether we want to pursue zero-downtime restarts for everything. If it's ok that a failure of manager will bring down everything else on most deployments, than this MR is probably pointless. If we want to prevent that, we really need it.
What needs to be solved to make this useful?
when manager enters FATAL state, supervisord must exit with non-zero exit codelogging is a mess
Edited by Vaclav Sraier