← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1991000] [NEW] [tripleo] Provide a tag to the container that will be used to kill it

 

Public bug reported:

TripleO uses containers to spawn the different processes. Some of these processes (some Neutron agents) also spawn long live child processes that run in parallel to the main one. This is the list of them:
* dibbler
* dnsmasq
* haproxy
* keepalived
* neutron-keepalived-state-change
* radvd

TripleO uses a set of scripts that replaces those processes. When
Neutron call a script, it actually starts a sidecar container running
the needed process. When the agent needs to stop the process, there is a
kill script [1] that replaces the "kill" CLI call. This kill script uses
the PID of the process to find the container ID and then to send the
needed signal (hup, term, kill).

To find the container ID, the script reads "/proc/$PID/cgroup" and
parses the output. This is a weak method that depends on the output of
this file.

This bug proposes to spawn the containers with a label:
  $ podman run --label neutron_tag="container_UUID"

This container UUID could be the "ProcessManager.uuid" itself. This UUID will be unique and will identify the container. If passed when created and killed, the kill script can use this UUID to find this specific container:
  $ podman ps --filter "label=neutron_tag=container_UUID"

[1]https://github.com/openstack/tripleo-heat-
templates/blob/master/deployment/neutron/kill-script

** Affects: neutron
     Importance: Undecided
     Assignee: Rodolfo Alonso (rodolfo-alonso-hernandez)
         Status: New

** Affects: tripleo
     Importance: Undecided
         Status: New

** Also affects: tripleo
   Importance: Undecided
       Status: New

** Changed in: neutron
     Assignee: (unassigned) => Rodolfo Alonso (rodolfo-alonso-hernandez)

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1991000

Title:
  [tripleo] Provide a tag to the container that will be used to kill it

Status in neutron:
  New
Status in tripleo:
  New

Bug description:
  TripleO uses containers to spawn the different processes. Some of these processes (some Neutron agents) also spawn long live child processes that run in parallel to the main one. This is the list of them:
  * dibbler
  * dnsmasq
  * haproxy
  * keepalived
  * neutron-keepalived-state-change
  * radvd

  TripleO uses a set of scripts that replaces those processes. When
  Neutron call a script, it actually starts a sidecar container running
  the needed process. When the agent needs to stop the process, there is
  a kill script [1] that replaces the "kill" CLI call. This kill script
  uses the PID of the process to find the container ID and then to send
  the needed signal (hup, term, kill).

  To find the container ID, the script reads "/proc/$PID/cgroup" and
  parses the output. This is a weak method that depends on the output of
  this file.

  This bug proposes to spawn the containers with a label:
    $ podman run --label neutron_tag="container_UUID"

  This container UUID could be the "ProcessManager.uuid" itself. This UUID will be unique and will identify the container. If passed when created and killed, the kill script can use this UUID to find this specific container:
    $ podman ps --filter "label=neutron_tag=container_UUID"

  [1]https://github.com/openstack/tripleo-heat-
  templates/blob/master/deployment/neutron/kill-script

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1991000/+subscriptions



Follow ups