[ovs-git] [ovn-org/ovn] 1dd27e: Provide the option to pin ovn-controller and ovn-n...

numansiddique noreply at github.com
Sat Nov 21 19:23:25 UTC 2020

  Branch: refs/heads/master
  Home:   https://github.com/ovn-org/ovn
  Commit: 1dd27ea7aea40122c1edbff845e14abaa70c0413
  Author: Numan Siddique <numans at ovn.org>
  Date:   2020-11-22 (Sun, 22 Nov 2020)

  Changed paths:
    M Documentation/internals/contributing/submitting-patches.rst
    M NEWS
    M controller/ovn-controller.8.xml
    M controller/ovn-controller.c
    M include/ovn/actions.h
    M lib/ovn-util.c
    M lib/ovn-util.h
    M northd/ovn-northd.c
    M tests/ovn.at

  Log Message:
  Provide the option to pin ovn-controller and ovn-northd to a specific version.

OVN recommends updating/upgrading ovn-controllers first and then
ovn-northd and OVN DB ovsdb-servers.  This is to ensure that any
new functionality specified by the database or logical flows created
by ovn-northd is understood by ovn-controller.

However certain deployments may upgrade ovn-northd services first and
then ovn-controllers.  In a large scal deployment, this can result in
downtime during upgrades as old ovn-controllers may not understand
new logical flows or new actions added by ovn-northd.

Even upgrading ovn-controllers first can result in ovn-controllers
rejecting some of the logical flows if an existing OVN action is
changed.  One such example is ct_commit action which recently was updated
to take new arguments.

To avoid such downtimes during upgrades, this patch adds the
functionality of pinning ovn-controller and ovn-northd to a specific
version.  An internal OVN version is generated and this version is stored
by ovn-northd in the Southbound SB_Global table's

When ovn-controller notices that the internal version has changed, it
stops handling the database changes - both Southbound and OVS. All the
existing OF flows are preserved.  When ovn-controller is upgraded to the
same version as ovn-northd services, it will process the database

This feature is made optional and disabled by default.  A CMS can
enable it by configuring the OVS local database with the option -

Acked-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Numan Siddique <numans at ovn.org>

More information about the git mailing list