Comment 5 for bug 1763322

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to puppet-tripleo (stable/newton)

Reviewed: https://review.openstack.org/562542
Committed: https://git.openstack.org/cgit/openstack/puppet-tripleo/commit/?id=6938b5d1f2747416338ce188068d7a967cba617b
Submitter: Zuul
Branch: stable/newton

commit 6938b5d1f2747416338ce188068d7a967cba617b
Author: Sofer Athlan-Guyot <email address hidden>
Date: Thu Apr 19 12:38:31 2018 +0200

    [Newton only] Do not overwrite current {neutron,nova}::host value.

    In newton we are setting both nova::host and neutron::host values
    explicitly to the fqdn.

    This can cause problem during upgrade from Mitaka. The previous host
    value (defaulting to python socket.gethostname) could return only the
    hostname[0]. It means that during upgrade we are changing this
    identifier. At restart nova/neutron creates *new* agents. Those
    agents are then unaware of existing workload.

    For neutron, the problem is that due to [1] and the fact the L3 agents
    are in HA mode, the previous defined workloads on those agent get lost
    and FIPs become unreachable.

    For nova it's no longer possible to send commands to (before upgrade)
    existing vm anymore.

    This patch checks the current live value of the host parameter through
    a fact and set the nova::host and neutron::host value to it if we are
    not in a deployment (upgrade/update)

    For nova, we directly use nova-manage to get the current live value.
    Using the mysql parameter directly has the advantage that it's defined
    on all types of node (controller *and* compute). As a matter of fact
    the required auth parameters are usually not defined on compute node.

    For neutron, when auth is available in the configuration (on
    Controller) we use that. There is no neutron-manage equivalent here
    so we use the nova value when auth is unavailable. When host is unset
    they both use python.gethostname, so it should be the same value.
    Using auth on controller add another level of confidence though. And
    the controller are where the l3 agents are, so better be safe than
    sorry.

    This patch is newton only as it's where we are setting for the first
    time this parameter. After that (ocata on) we use[2] to make sure
    that those parameters are never rewritten.

    [0] https://bugzilla.redhat.com/show_bug.cgi?id=1499201
    [1] https://review.openstack.org/#/c/560855/
    [2] need to be backported to ocata https://review.openstack.org/#/q/I8f075a5ad869ef0dc72a700dcb7be0b6efca787a

    Partial-Bug: #1763322
    Change-Id: Ieb92ff161d1684c214382c5eb6b5949efc3fe75c