The neutron agents are implemented in such a way that key functionality is
implemented in terms of haproxy, dnsmasq, keepalived and radvd
configuration. The agents manage instances of these services but, by
design, the parent is the top-most (pid 1).
On baremetal this has the advantage that, while control plane changes
cannot be made while the agents are not available, the configuration at the
time the agents were stopped will work (for example, VMs that are restarted
can request their IPs, etc). In short, the dataplane is not affected by
shutting down the agents.
In the TripleO containerized version of these agents, the supporting
processes (haproxy, dnsmasq, etc.) are run within the agent's container so
when the container is stopped, the supporting processes are also stopped.
That is, the behavior with the current containers is significantly
different than on baremetal and stopping/restarting containers effectively
breaks the dataplane. At the moment this is being considered a blocker and
unless we can find a resolution, we may need to recommend running the L3,
DHCP and metadata agents on baremetal.
OpenStack Development Mailing List (not for usage questions)