Skip to content

Commit

Permalink
ovs-ctl: Don't overwrite external-id hostname.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
danalsan authored and igsilya committed Jan 5, 2021
1 parent 7312222 commit ff48c43
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion utilities/ovs-ctl.in
Expand Up @@ -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 () {
Expand Down

0 comments on commit ff48c43

Please sign in to comment.