[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