diff --git a/assets/components/ovn/multi-node/master/daemonset.yaml b/assets/components/ovn/multi-node/master/daemonset.yaml index c968672326..a99c3adee8 100644 --- a/assets/components/ovn/multi-node/master/daemonset.yaml +++ b/assets/components/ovn/multi-node/master/daemonset.yaml @@ -141,6 +141,8 @@ spec: --db-nb-cluster-local-proto=tcp \ --no-monitor" + rm -f /run/ovn/ovnnb_db.sock + echo "$(date -Iseconds) - starting nbdb" exec /usr/share/ovn/scripts/ovn-ctl \ @@ -286,6 +288,8 @@ spec: --db-sb-cluster-local-proto=tcp \ --no-monitor" + rm -f /run/ovn/ovnsb_db.sock + echo "$(date -Iseconds) - starting sbdb " exec /usr/share/ovn/scripts/ovn-ctl \ ${OVN_ARGS} \ @@ -376,7 +380,8 @@ spec: echo "I$(date "+%m%d %H:%M:%S.%N") - ovnkube-master - start ovnkube --init-master ${K8S_NODE}" exec /usr/bin/ovnkube \ - --init-master "${K8S_NODE}" \ + --init-cluster-manager "${K8S_NODE}" \ + --init-ovnkube-controller "${K8S_NODE}" \ --nb-address "{{.OVN_NB_DB_LIST}}" \ --sb-address "{{.OVN_SB_DB_LIST}}" \ --config-file=/run/ovnkube-config/ovnkube.conf \ diff --git a/assets/components/ovn/multi-node/node/daemonset.yaml b/assets/components/ovn/multi-node/node/daemonset.yaml index 5c76589d34..af2cc5d3bf 100644 --- a/assets/components/ovn/multi-node/node/daemonset.yaml +++ b/assets/components/ovn/multi-node/node/daemonset.yaml @@ -55,6 +55,14 @@ spec: # K8S_NODE_IP triggers reconcilation of this daemon when node IP changes echo "$(date -Iseconds) - starting ovn-controller, Node: ${K8S_NODE} IP: ${K8S_NODE_IP}" + # Wait for the SBDB unix socket to appear. The sbdb container + # removes stale sockets and creates fresh ones on startup. + # Connecting to a stale socket would cause ovn-controller to + # cache a raft commit index higher than the fresh SBDB's. + echo "Waiting for SBDB socket..." + while [ ! -S /run/ovn/ovnsb_db.sock ]; do sleep 1; done + echo "SBDB socket ready" + exec ovn-controller unix:/var/run/openvswitch/db.sock -vfile:off \ --no-chdir --pidfile=/var/run/ovn/ovn-controller.pid \ --syslog-method="null" \ diff --git a/assets/components/ovn/single-node/master/daemonset.yaml b/assets/components/ovn/single-node/master/daemonset.yaml index 2d698042a3..a437759683 100644 --- a/assets/components/ovn/single-node/master/daemonset.yaml +++ b/assets/components/ovn/single-node/master/daemonset.yaml @@ -133,6 +133,8 @@ spec: ovn_db_file="/etc/ovn/ovn${db}_db.db" OVN_ARGS="--db-nb-cluster-local-port=9643 --no-monitor" + rm -f /run/ovn/ovnnb_db.sock + echo "$(date -Iseconds) - starting nbdb" exec /usr/share/ovn/scripts/ovn-ctl \ ${OVN_ARGS} \ @@ -251,6 +253,8 @@ spec: OVN_ARGS="--db-sb-cluster-local-port=9644 --no-monitor" + rm -f /run/ovn/ovnsb_db.sock + echo "$(date -Iseconds) - starting sbdb " exec /usr/share/ovn/scripts/ovn-ctl \ ${OVN_ARGS} \ @@ -337,7 +341,8 @@ spec: echo "I$(date "+%m%d %H:%M:%S.%N") - ovnkube-master - start ovnkube --init-master ${K8S_NODE} --init-node ${K8S_NODE}" exec /usr/bin/ovnkube \ - --init-master "${K8S_NODE}" \ + --init-cluster-manager "${K8S_NODE}" \ + --init-ovnkube-controller "${K8S_NODE}" \ --init-node "${K8S_NODE}" \ --allow-no-uplink \ --config-file=/run/ovnkube-config/ovnkube.conf \ diff --git a/assets/components/ovn/single-node/node/daemonset.yaml b/assets/components/ovn/single-node/node/daemonset.yaml index 7e7cf95137..1db2968896 100644 --- a/assets/components/ovn/single-node/node/daemonset.yaml +++ b/assets/components/ovn/single-node/node/daemonset.yaml @@ -55,6 +55,14 @@ spec: # K8S_NODE_IP triggers reconcilation of this daemon when node IP changes echo "$(date -Iseconds) - starting ovn-controller, Node: ${K8S_NODE} IP: ${K8S_NODE_IP}" + # Wait for the SBDB unix socket to appear. The sbdb container + # removes stale sockets and creates fresh ones on startup. + # Connecting to a stale socket would cause ovn-controller to + # cache a raft commit index higher than the fresh SBDB's. + echo "Waiting for SBDB socket..." + while [ ! -S /run/ovn/ovnsb_db.sock ]; do sleep 1; done + echo "SBDB socket ready" + exec ovn-controller unix:/var/run/openvswitch/db.sock -vfile:off \ --no-chdir --pidfile=/var/run/ovn/ovn-controller.pid \ --syslog-method="null" \