From fed22cee004715cd05d3f519e06f19f2869a6e9c Mon Sep 17 00:00:00 2001 From: Justin Cormack Date: Wed, 2 Nov 2016 14:49:24 +0000 Subject: [PATCH] Split out Windows network config from hostsettings On cloud editions eg AWS settings may come from the network, so we need to move this to after network setup, while the Windows network config changes need to happen before, so split the init script. Signed-off-by: Justin Cormack --- alpine/Dockerfile | 3 +- .../hostsettings/etc/init.d/hostsettings | 26 +++++------------ .../hostsettings/etc/init.d/windowsnet | 29 +++++++++++++++++++ 3 files changed, 38 insertions(+), 20 deletions(-) create mode 100755 alpine/packages/hostsettings/etc/init.d/windowsnet diff --git a/alpine/Dockerfile b/alpine/Dockerfile index 67ed851f3..b34e58234 100644 --- a/alpine/Dockerfile +++ b/alpine/Dockerfile @@ -45,7 +45,8 @@ RUN \ rc-update add automount boot && \ rc-update add diagnostics default && \ rc-update add binfmt_misc default && \ - rc-update add hostsettings boot && \ + rc-update add hostsettings default && \ + rc-update add windowsnet boot && \ rc-update add hv_kvp_daemon default && \ rc-update add hv_vss_daemon default && \ rc-update add oom default && \ diff --git a/alpine/packages/hostsettings/etc/init.d/hostsettings b/alpine/packages/hostsettings/etc/init.d/hostsettings index a502b6216..d63268072 100755 --- a/alpine/packages/hostsettings/etc/init.d/hostsettings +++ b/alpine/packages/hostsettings/etc/init.d/hostsettings @@ -3,7 +3,9 @@ description="Configuring settings from database." depend() { - before sysctl net + # AWS gets settings via network + need net + before docker } start() { @@ -11,25 +13,11 @@ start() { mobyconfig exists etc/sysctl.conf && mobyconfig get etc/sysctl.conf > /etc/sysctl.conf mobyconfig exists etc/sysfs.conf && mobyconfig get etc/sysfs.conf > /etc/sysfs.conf - mobyconfig exists etc/resolv.conf && mobyconfig get etc/resolv.conf > /etc/resolv.conf - mobyconfig exists random-seed && mobyconfig get random-seed > /dev/urandom - mobyconfig exists etc/hosts && mobyconfig get etc/hosts >> /etc/hosts - if [ "$(mobyplatform)" = "windows" ]; then - # We have two network interfaces. The Hyper-V interface - # comes up as eth0. Rename and configure it. - ip link set eth0 down - ip link set eth0 name hvint0 - - mobyconfig exists net/config && NETCONFIG=`mobyconfig get net/config` - if [ "${NETCONFIG}" = "static" ]; then - # assume that the other configsDB entries exist - IP=`mobyconfig get net/address` - MASK=`mobyconfig get net/netmask` - ip addr add ${IP}/${MASK} dev hvint0 - ip link set hvint0 up - fi - fi + mobyconfig exists random-seed && mobyconfig get random-seed > /dev/urandom + + mobyconfig exists etc/resolv.conf && mobyconfig get etc/resolv.conf > /etc/resolv.conf + mobyconfig exists etc/hosts && mobyconfig get etc/hosts >> /etc/hosts mobyconfig exists etc/ssl/certs/ca-certificates.crt && mobyconfig get etc/ssl/certs/ca-certificates.crt >> /etc/ssl/certs/ca-certificates.crt diff --git a/alpine/packages/hostsettings/etc/init.d/windowsnet b/alpine/packages/hostsettings/etc/init.d/windowsnet new file mode 100755 index 000000000..d0143c510 --- /dev/null +++ b/alpine/packages/hostsettings/etc/init.d/windowsnet @@ -0,0 +1,29 @@ +#!/sbin/openrc-run + +description="Configuring Windows network settings from database." + +depend() { + before sysctl net +} + +start() { + [ "$(mobyplatform)" = "windows" ] || exit 0 + + ebegin "Configuring Windows network settings from database" + + # We have two network interfaces. The Hyper-V interface + # comes up as eth0. Rename and configure it. + ip link set eth0 down + ip link set eth0 name hvint0 + + mobyconfig exists net/config && NETCONFIG=`mobyconfig get net/config` + if [ "${NETCONFIG}" = "static" ]; then + # assume that the other configsDB entries exist + IP=`mobyconfig get net/address` + MASK=`mobyconfig get net/netmask` + ip addr add ${IP}/${MASK} dev hvint0 + ip link set hvint0 up + fi + + eend 0 +}