[ovs-dev] [PATCH v2] ovs container build: Make kernel module configurable

amginwal at gmail.com amginwal at gmail.com
Fri Dec 20 00:50:47 UTC 2019


From: Aliasgar Ginwala <aginwala at ebay.com>

--with-linux can be made configurable while building containers
for leveraging kernel modules installed on host.
KERNEL_VERSION=host should be used in env variable for the same.

Signed-off-by: Aliasgar Ginwala <aginwala at ebay.com>
---
 utilities/docker/Makefile                     |  2 +-
 .../docker/debian/build-kernel-modules.sh     | 21 +++++++++++++++----
 utilities/docker/start-ovs                    | 11 ++++++++--
 3 files changed, 27 insertions(+), 7 deletions(-)

diff --git a/utilities/docker/Makefile b/utilities/docker/Makefile
index 8c2f7810e..d8b08a3c9 100644
--- a/utilities/docker/Makefile
+++ b/utilities/docker/Makefile
@@ -10,7 +10,7 @@
 #   make push
 
 REPO = ${DOCKER_REPO}
-tag = ${OVS_VERSION}_${KERNEL_VERSION}
+tag = ${OVS_VERSION}_${DISTRO}_${KERNEL_VERSION}
 
 build: ;docker build -t ${REPO}:${tag} --build-arg DISTRO=${DISTRO} \
 --build-arg OVS_BRANCH=${OVS_BRANCH} \
diff --git a/utilities/docker/debian/build-kernel-modules.sh b/utilities/docker/debian/build-kernel-modules.sh
index 18ac35764..db770ed51 100755
--- a/utilities/docker/debian/build-kernel-modules.sh
+++ b/utilities/docker/debian/build-kernel-modules.sh
@@ -17,13 +17,17 @@ OVS_BRANCH=$2
 GITHUB_SRC=$3
 
 # Install deps
-linux="linux-image-$KERNEL_VERSION linux-headers-$KERNEL_VERSION"
 build_deps="apt-utils libelf-dev build-essential libssl-dev python3 \
 python3-six wget gdb autoconf libtool git automake bzip2 debhelper \
 dh-autoreconf openssl"
 
 apt-get update
-apt-get install -y ${linux} ${build_deps}
+if [ $KERNEL_VERSION != "host" ]; then
+    linux="linux-image-$KERNEL_VERSION linux-headers-$KERNEL_VERSION"
+    apt-get install -y ${linux}
+fi
+
+apt-get install -y ${build_deps}
 
 # get the source
 mkdir /build; cd /build
@@ -32,8 +36,17 @@ cd ovs
 
 # build and install
 ./boot.sh
-./configure --localstatedir="/var" --sysconfdir="/etc" --prefix="/usr" \
---with-linux=/lib/modules/$KERNEL_VERSION/build --enable-ssl
+
+config="./configure --localstatedir="/var" --sysconfdir="/etc" --prefix="/usr"
+--enable-ssl"
+
+if [ $KERNEL_VERSION = "host" ]; then
+   eval $config
+else
+    withlinux=" --with-linux=/lib/modules/$KERNEL_VERSION/build"
+    eval $config$withlinux
+fi
+
 make -j8; make install; make modules_install
 
 # remove deps to make the container light weight.
diff --git a/utilities/docker/start-ovs b/utilities/docker/start-ovs
index 4a1a16cd1..516b5d91c 100755
--- a/utilities/docker/start-ovs
+++ b/utilities/docker/start-ovs
@@ -38,5 +38,12 @@ case $1 in
                         -vfile:info --mlockall --no-chdir \
                         --log-file=/var/log/openvswitch/ovs-vswitchd.log
         ;;
-        *) echo "$0 [ovsdb-server|ovs-vswitchd]"
-esac
+        "ovs-vswitchd-host") /usr/share/openvswitch/scripts/ovs-ctl \
+                             --no-ovsdb-server start
+                             /usr/share/openvswitch/scripts/ovs-ctl stop
+                             ovs-vswitchd --pidfile -vconsole:emer \
+                             -vsyslog:err -vfile:info --mlockall --no-chdir \
+                             --log-file=/var/log/openvswitch/ovs-vswitchd.log
+        ;;
+        *) echo "$0 [ovsdb-server|ovs-vswitchd|ovs-vswitchd-host]"
+esac
\ No newline at end of file
-- 
2.20.1 (Apple Git-117)



More information about the dev mailing list