1
1
#! /bin/bash
2
2
set -euo pipefail
3
3
4
+ echo " OVN_REMOTE_PROBE_INTERVAL is set to $OVN_REMOTE_PROBE_INTERVAL "
5
+ echo " OVN_REMOTE_OPENFLOW_INTERVAL is set to $OVN_REMOTE_OPENFLOW_INTERVAL "
6
+
4
7
HW_OFFLOAD=${HW_OFFLOAD:- false}
5
8
ENABLE_SSL=${ENABLE_SSL:- false}
6
9
OVN_DB_IPS=${OVN_DB_IPS:- }
@@ -36,21 +39,21 @@ cat /proc/cmdline"
36
39
fi
37
40
38
41
function cgroup_match {
39
- hash1=$( md5sum /proc/$1 /cgroup | awk ' {print $1}' )
40
- hash2=$( md5sum /proc/$2 /cgroup | awk ' {print $1}' )
42
+ hash1=$( md5sum /proc/" $1 " /cgroup | awk ' {print $1}' )
43
+ hash2=$( md5sum /proc/" $2 " /cgroup | awk ' {print $1}' )
41
44
test -n " $hash1 " -a " x$hash1 " = " x$hash2 "
42
45
}
43
46
44
47
function quit {
45
- gen_name=$( kubectl -n $ POD_NAMESPACE get pod $ POD_NAME -o jsonpath=' {.metadata.generateName}' )
46
- revision_hash=$( kubectl -n $ POD_NAMESPACE get pod $ POD_NAME -o jsonpath=' {.metadata.labels.controller-revision-hash}' )
47
- revision=$( kubectl -n $ POD_NAMESPACE get controllerrevision $ gen_name$ revision_hash -o jsonpath=' {.revision}' )
48
+ gen_name=$( kubectl -n " ${ POD_NAMESPACE} " get pod " ${ POD_NAME} " -o jsonpath=' {.metadata.generateName}' )
49
+ revision_hash=$( kubectl -n " ${ POD_NAMESPACE} " get pod " ${ POD_NAME} " -o jsonpath=' {.metadata.labels.controller-revision-hash}' )
50
+ revision=$( kubectl -n " ${ POD_NAMESPACE} " get controllerrevision " ${ gen_name}${ revision_hash} " -o jsonpath=' {.revision}' )
48
51
ds_name=${gen_name% -}
49
52
latest_revision=$( kubectl -n kube-system get controllerrevision --no-headers | awk ' $2 == "daemonset.apps/' $ds_name ' " {print $3}' | sort -nr | head -n1)
50
53
if [ " x$latest_revision " = " x$revision " ]; then
51
54
# stop ovn-controller/ovs only when the processes are in the same cgroup
52
55
pid=$( /usr/share/ovn/scripts/ovn-ctl status_controller | awk ' {print $NF}' )
53
- if cgroup_match $ pid self; then
56
+ if cgroup_match " ${ pid} " self; then
54
57
/usr/share/ovn/scripts/grace_stop_ovn_controller
55
58
/usr/share/openvswitch/scripts/ovs-ctl stop
56
59
fi
@@ -64,12 +67,12 @@ trap quit EXIT
64
67
iptables -V
65
68
66
69
# Start ovsdb
67
- /usr/share/openvswitch/scripts/ovs-ctl restart --no-ovs-vswitchd --system-id=random --ovsdb-server-wrapper=$ DEBUG_WRAPPER
70
+ /usr/share/openvswitch/scripts/ovs-ctl restart --no-ovs-vswitchd --system-id=random --ovsdb-server-wrapper=" ${ DEBUG_WRAPPER} "
68
71
# Restrict the number of pthreads ovs-vswitchd creates to reduce the
69
72
# amount of RSS it uses on hosts with many cores
70
73
# https://bugzilla.redhat.com/show_bug.cgi?id=1571379
71
74
# https://bugzilla.redhat.com/show_bug.cgi?id=1572797
72
- if [[ ` nproc` -gt 12 ]]; then
75
+ if [[ $( nproc) -gt 12 ]]; then
73
76
ovs-vsctl --no-wait set Open_vSwitch . other_config:n-revalidator-threads=4
74
77
ovs-vsctl --no-wait set Open_vSwitch . other_config:n-handler-threads=10
75
78
fi
@@ -87,28 +90,28 @@ ovs-appctl -t "$ovsdb_server_ctl" vlog/set reconnect:file:err
87
90
88
91
function handle_underlay_bridges() {
89
92
bridges=($( ovs-vsctl --no-heading --columns=name find bridge external-ids:vendor=kube-ovn) )
90
- for br in ${bridges[@]} ; do
91
- if ! ip link show $br > /dev/null; then
93
+ for br in " ${bridges[@]} " ; do
94
+ if ! ip link show " $br " > /dev/null; then
92
95
# the bridge does not exist, leave it to be handled by kube-ovn-cni
93
96
echo " deleting ovs bridge $br "
94
- ovs-vsctl --no-wait del-br $br
97
+ ovs-vsctl --no-wait del-br " $br "
95
98
fi
96
99
done
97
100
98
101
bridges=($( ovs-vsctl --no-heading --columns=name find bridge external-ids:vendor=kube-ovn external-ids:exchange-link-name=true) )
99
- for br in ${bridges[@]} ; do
102
+ for br in " ${bridges[@]} " ; do
100
103
if [ -z $( ip link show $br type openvswitch 2> /dev/null || true) ]; then
101
104
# the bridge does not exist, leave it to be handled by kube-ovn-cni
102
105
echo " deleting ovs bridge $br "
103
- ovs-vsctl --no-wait del-br $br
106
+ ovs-vsctl --no-wait del-br " $br "
104
107
fi
105
108
done
106
109
}
107
110
108
111
handle_underlay_bridges
109
112
110
113
# Start vswitchd. restart will automatically set/unset flow-restore-wait which is not what we want
111
- /usr/share/openvswitch/scripts/ovs-ctl restart --no-ovsdb-server --system-id=random --no-mlockall --ovs-vswitchd-wrapper=$DEBUG_WRAPPER
114
+ /usr/share/openvswitch/scripts/ovs-ctl restart --no-ovsdb-server --system-id=random --no-mlockall --ovs-vswitchd-wrapper=" $DEBUG_WRAPPER "
112
115
/usr/share/openvswitch/scripts/ovs-ctl --protocol=udp --dport=6081 enable-protocol
113
116
114
117
function gen_conn_str {
@@ -137,9 +140,9 @@ ovs-vsctl set open . external-ids:hostname="${KUBE_NODE_NAME}"
137
140
138
141
# Start ovn-controller
139
142
if [[ " $ENABLE_SSL " == " false" ]]; then
140
- /usr/share/ovn/scripts/ovn-ctl --ovn-controller-wrapper=$DEBUG_WRAPPER restart_controller
143
+ /usr/share/ovn/scripts/ovn-ctl --ovn-controller-wrapper=" $DEBUG_WRAPPER " restart_controller
141
144
else
142
- /usr/share/ovn/scripts/ovn-ctl --ovn-controller-ssl-key=/var/run/tls/key --ovn-controller-ssl-cert=/var/run/tls/cert --ovn-controller-ssl-ca-cert=/var/run/tls/cacert --ovn-controller-wrapper=$DEBUG_WRAPPER restart_controller
145
+ /usr/share/ovn/scripts/ovn-ctl --ovn-controller-ssl-key=/var/run/tls/key --ovn-controller-ssl-cert=/var/run/tls/cert --ovn-controller-ssl-ca-cert=/var/run/tls/cacert --ovn-controller-wrapper=" $DEBUG_WRAPPER " restart_controller
143
146
fi
144
147
145
148
chmod 600 /etc/openvswitch/*
0 commit comments