Added post and pre hook script for veth cleanup
The change adds a simple post and pre hook script to clean up all of the the named veth pairs that are assosiated within a given container. Change-Id: I563a4be9f5e04c1599a9e4e592970a4ef0dbb38e Implements: blueprint named-veths
This commit is contained in:
parent
5e6dea8ab6
commit
3a3b076c47
@ -214,6 +214,34 @@
|
|||||||
tags:
|
tags:
|
||||||
- lxc-container-networks
|
- lxc-container-networks
|
||||||
|
|
||||||
|
# Adds post-down and pre-start hooks
|
||||||
|
- name: Drop veth cleanup script
|
||||||
|
template:
|
||||||
|
src: "veth-cleanup.sh.j2"
|
||||||
|
dest: "/var/lib/lxc/{{ inventory_hostname }}/veth-cleanup.sh"
|
||||||
|
owner: "root"
|
||||||
|
group: "root"
|
||||||
|
mode: "0755"
|
||||||
|
delegate_to: "{{ physical_host }}"
|
||||||
|
tags:
|
||||||
|
- lxc-container-networks
|
||||||
|
|
||||||
|
# This is being defined due to an issue with dangling veth pairs.
|
||||||
|
# TODO(someone) This should be removed once an upstream patch has
|
||||||
|
# been submitted to either the kernel or LXC to fix the veth issues.
|
||||||
|
# Container restart is not happening here because it's not needed.
|
||||||
|
- name: Defines a pre and post hook script
|
||||||
|
lineinfile:
|
||||||
|
dest: "/var/lib/lxc/{{ inventory_hostname }}/config"
|
||||||
|
line: "{{ item }}"
|
||||||
|
backup: "true"
|
||||||
|
with_items:
|
||||||
|
- "lxc.hook.pre-start = /var/lib/lxc/{{ inventory_hostname }}/veth-cleanup.sh"
|
||||||
|
- "lxc.hook.post-stop = /var/lib/lxc/{{ inventory_hostname }}/veth-cleanup.sh"
|
||||||
|
delegate_to: "{{ physical_host }}"
|
||||||
|
tags:
|
||||||
|
- lxc-container-networks
|
||||||
|
|
||||||
# Flush the handlers to ensure the container and networking is online.
|
# Flush the handlers to ensure the container and networking is online.
|
||||||
- meta: flush_handlers
|
- meta: flush_handlers
|
||||||
|
|
||||||
|
@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||||
|
|
||||||
|
# LXC eth0 is considered special and not managed by the base container_networks
|
||||||
|
# data structure. This is being added outside of the loop for this reason.
|
||||||
|
ip link del {{ inventory_hostname[-8:].replace('-', '').replace('_', '') }}_eth0 || true
|
||||||
|
logger "LXC container {{ inventory_hostname }} removing veth {{ inventory_hostname[-8:].replace('-', '').replace('_', '') }}_eth0"
|
||||||
|
|
||||||
|
# Veth cleanup for items in the container_networks data structure
|
||||||
|
{% for key, value in container_networks.items() %}
|
||||||
|
ip link del {{ inventory_hostname[-8:].replace('-', '').replace('_', '') }}_{{ value.interface }} || true
|
||||||
|
logger "LXC container {{ inventory_hostname }} removing veth {{ inventory_hostname[-8:].replace('-', '').replace('_', '') }}_{{ value.interface }}"
|
||||||
|
|
||||||
|
{% endfor %}
|
Loading…
Reference in New Issue
Block a user