Skip to content

manager: inverted process tree with supervisord

Vaclav Sraier requested to merge manager-supervisord-inversion-of-control into manager

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 code
  • logging is a mess
Edited by Vaclav Sraier

Merge request reports