OvS: Implement cleaner shutdown and start logic

This PS adds cleaner shutdown and start logic to the OvS components.

Change-Id: I5c7fb212163a19d7584b37c20e7c6c757b498856
Co-Authored-By: SamYaple <sam@yaple.net>
This commit is contained in:
portdirect 2017-11-28 21:10:02 -05:00
parent f5a6a5dedc
commit cc81c5f558
4 changed files with 90 additions and 49 deletions

View File

@ -17,15 +17,32 @@ limitations under the License.
*/}} */}}
set -ex set -ex
COMMAND="${@:-start}"
mkdir -p "/run/openvswitch" OVS_DB=/run/openvswitch/conf.db
if [[ ! -e "/run/openvswitch/conf.db" ]]; then OVS_SOCKET=/run/openvswitch/db.sock
ovsdb-tool create "/run/openvswitch/conf.db" OVS_SCHEMA=/usr/share/openvswitch/vswitch.ovsschema
function start () {
mkdir -p "$(dirname ${OVS_DB})"
if [[ ! -e "${OVS_DB}" ]]; then
ovsdb-tool create "${OVS_DB}"
fi
if [[ "$(ovsdb-tool needs-conversion ${OVS_DB} ${OVS_SCHEMA})" == 'yes' ]]; then
ovsdb-tool convert ${OVS_DB} ${OVS_SCHEMA}
fi fi
umask 000 umask 000
exec /usr/sbin/ovsdb-server /run/openvswitch/conf.db \ exec /usr/sbin/ovsdb-server ${OVS_DB} \
-vconsole:emer \ -vconsole:emer \
-vconsole:err \ -vconsole:err \
-vconsole:info \ -vconsole:info \
--remote=punix:/run/openvswitch/db.sock --remote=punix:${OVS_SOCKET}
}
function stop () {
ovs-appctl -T1 -t /run/openvswitch/ovsdb-server.1.ctl exit
}
$COMMAND

View File

@ -17,10 +17,13 @@ limitations under the License.
*/}} */}}
set -ex set -ex
COMMAND="${@:-start}"
sock="/var/run/openvswitch/db.sock" OVS_SOCKET=/run/openvswitch/db.sock
function start () {
t=0 t=0
while [ ! -e "${sock}" ] ; do while [ ! -e "${OVS_SOCKET}" ] ; do
echo "waiting for ovs socket $sock" echo "waiting for ovs socket $sock"
sleep 1 sleep 1
t=$(($t+1)) t=$(($t+1))
@ -56,8 +59,15 @@ if [ -n "{{- $br -}}" ] ; then
fi fi
{{- end }} {{- end }}
exec /usr/sbin/ovs-vswitchd unix:/run/openvswitch/db.sock \ exec /usr/sbin/ovs-vswitchd unix:${OVS_SOCKET} \
-vconsole:emer \ -vconsole:emer \
-vconsole:err \ -vconsole:err \
-vconsole:info \ -vconsole:info \
--mlockall --mlockall
}
function stop () {
ovs-appctl -T1 -t /run/openvswitch/ovs-vswitchd.1.ctl exit
}
$COMMAND

View File

@ -44,6 +44,13 @@ spec:
privileged: true privileged: true
command: command:
- /tmp/openvswitch-db-server.sh - /tmp/openvswitch-db-server.sh
- start
lifecycle:
preStop:
exec:
command:
- /tmp/openvswitch-db-server.sh
- stop
volumeMounts: volumeMounts:
- name: openvswitch-bin - name: openvswitch-bin
mountPath: /tmp/openvswitch-db-server.sh mountPath: /tmp/openvswitch-db-server.sh

View File

@ -70,6 +70,13 @@ spec:
- show - show
command: command:
- /tmp/openvswitch-vswitchd.sh - /tmp/openvswitch-vswitchd.sh
- start
lifecycle:
preStop:
exec:
command:
- /tmp/openvswitch-db-server.sh
- stop
volumeMounts: volumeMounts:
- name: openvswitch-bin - name: openvswitch-bin
mountPath: /tmp/openvswitch-vswitchd.sh mountPath: /tmp/openvswitch-vswitchd.sh