summaryrefslogtreecommitdiffstats
path: root/libexec
diff options
context:
space:
mode:
authorSimon Spöhel <simon@spoehel.ch>2022-04-28 07:46:29 +0000
committerDaniel Baumann <daniel.baumann@open-infrastructure.net>2022-04-28 08:19:47 +0000
commit2b0b980572ed593a96b668af6baf9b64914497f4 (patch)
tree1f4da9ba2f6fec746ce2117a9cbfed1391d6d3db /libexec
parentReleasing version 20211231. (diff)
downloadcompute-tools-2b0b980572ed593a96b668af6baf9b64914497f4.tar.xz
compute-tools-2b0b980572ed593a96b668af6baf9b64914497f4.zip
Using systemd-networkd to manage veth interfaces on host.
Signed-off-by: Simon Spöhel <simon@spoehel.ch> Signed-off-by: Daniel Baumann <daniel.baumann@open-infrastructure.net>
Diffstat (limited to 'libexec')
-rwxr-xr-xlibexec/container/start17
-rwxr-xr-xlibexec/container/stop2
2 files changed, 11 insertions, 8 deletions
diff --git a/libexec/container/start b/libexec/container/start
index f899446..da6be24 100755
--- a/libexec/container/start
+++ b/libexec/container/start
@@ -390,15 +390,18 @@ then
if [ -n "${BRIDGE}" ] && [ -n "${INTERFACE}" ]
then
-cat > "/etc/network/interfaces.d/${INTERFACE}" << EOF
-allow-hotplug ${INTERFACE}
-iface ${INTERFACE} inet manual
- pre-up ip link set ${INTERFACE} up
- post-up ip link set ${INTERFACE} master ${BRIDGE}
- pre-down ip link set ${INTERFACE} nomaster
- post-down ip link set ${INTERFACE} down
+ mkdir -p /run/systemd/network
+
+cat > "/run/systemd/network/${INTERFACE}.network" << EOF
+[Match]
+Name=${INTERFACE}
+
+[Network]
+Bridge=${BRIDGE}
EOF
+ networkctl reload
+
else
echo "Warning bridge definition '${BRIDGE_DEFINITION}' not recognized (expected <bridge>:<interface>): Ignoring"
fi
diff --git a/libexec/container/stop b/libexec/container/stop
index 98b2afa..d2db38e 100755
--- a/libexec/container/stop
+++ b/libexec/container/stop
@@ -220,7 +220,7 @@ case "${CLEAN}" in
for VETH in ${VETHS}
do
INTERFACE="$(echo ${VETH} | awk -F: '{ print $1 }')"
- FILE="/etc/network/interfaces.d/${INTERFACE}"
+ FILE="/run/systemd/network/${INTERFACE}.network"
if [ -f "${FILE}" ]
then