You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[ovn-controller] Change startup mechanism of ovs pods
This commit aims to modify the starting scripts of the
ovn-controller-ovs daemonset.
This is done to allow modifying the RollingUpdate Strategy
to not allow any Unavailable pod during update, what this will
cause is that during an update to the pod (delete old one and create
new one) instead of first deleting the first one and then deleting the
next one, it will create the new pod while the old one is running. Due
to how the startup scritps works currently this is not allowed.
The reason behind this is to try to lower the downtime observed if the
environment is using centralized floating ip during an update.
With this commit the ovn-controller-ovs will share the PID namespace
with the host, in order to allow signaling between old/new pod.
Another change is adding an STATE that the containers (ovsdb-server,
ovs-vswitchd and ovsdb-server-init) will handle internally.
The differents states are:
- NULL (No file): will happen the fist time ds is created on the oc
worker.
- INIT: First time init-ovsdb-server is executed on the oc worker.
- OVSDB_SERVER: once ovsdb-server pod has run the startup script
- RUNNING: Once ovsdb-server is up and ovs-vswitchd has run the
startup script.
- UPDATE: Once a new pod is created and ovsdb-server-init has run.
- RESTART_VSWITCH: After ovsdb-server-init has finished, new
ovsdb-server pod has stopped the old ovs-vswitchd process.
- RESTART_DBSERVER: After old ovs-vswitchd has been restarted the
old ovsdb-server is also stop.
The normal flow of states is the following:
NULL -> INIT -> OVSDB_SERVER -> RUNNING
Scale down: If the oc worker is deleted the DS and all the pods and mount points
will be deleted, in case of node being up again it should start from
NULL
Update: RUNNING -> (Change on CR) -> UPDATE -> RESTART_VSWITCHD ->
RESTART_DBSERVER -> OVSDB_SERVER -> RUNNING
Related: OSPRH-11636
Jira: OSPRH-10821
0 commit comments