]> git.proxmox.com Git - mirror_ovs.git/commitdiff
ovs-ctl: Don't overwrite external-id hostname.
authorDaniel Alvarez <dalvarez@redhat.com>
Mon, 25 May 2020 15:28:21 +0000 (17:28 +0200)
committerIlya Maximets <i.maximets@ovn.org>
Tue, 5 Jan 2021 17:23:32 +0000 (18:23 +0100)
ovs-ctl started to add the hostname as external-id [0] at some point.

However, this can be problematic as if it's already set by an external
entity it will get overwritten. In RHEL systems, systemd will invoke
ovs-ctl to start OVS and that will overwrite it to the hostname of the
machine.

For OVN this can have a big impact because if, for whatever reason the
hostname changes and the host gets restarted, ovn-controller won't
claim the ports back leaving the workloads unaccessible.

Also, it makes sense to not overwrite it as 1) it's an external_id,
so it will actually let external entities to configure it (unlike now),
and 2) it's optional. In the case that some systems were relying on
ovs-ctl to set the external-id for the first time (e.g onboarding
of a new hypervisor), this patch is not changing such behavior.

For more details, see discussion at [1].

[0] https://mail.openvswitch.org/pipermail/ovs-dev/2016-March/312054.html
[1] https://mail.openvswitch.org/pipermail/ovs-dev/2020-May/370813.html

Signed-off-by: Daniel Alvarez <dalvarez@redhat.com>
Acked-by: Han Zhou <hzhou@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
utilities/ovs-ctl.in

index 8c5cd703274e87d42b841182bd469f0ea15ad77a..9be9c98712824ca036008250014493e79e705697 100644 (file)
@@ -43,7 +43,8 @@ set_hostname () {
     else
         hn="$(uname -n)"
     fi
-    ovs_vsctl set Open_vSwitch . external-ids:hostname="$hn"
+    # Set the hostname if it wasn't set before
+    ovs_vsctl add Open_vSwitch . external-ids hostname="$hn"
 }
 
 set_system_ids () {