auto_enable_l3_ha should not be derived from ControllerCount

Bug #1629187 reported by Michele Baldessari on 2016-09-30
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
High
Steven Hardy

Bug Description

Right now we have the following defined in overcloud.j2.yaml:
  {{role.name}}Count:
    description: Number of {{role.name}} nodes to deploy
    type: number
    default: {{role.CountDefault|default(0)}}

This variable can be used to count the number of nodes for each role. For example, we have the following in puppet/services/neutron-api.yaml:
conditions:
  auto_enable_l3_ha:
    and:
      - not:
          equals:
            - get_param: ControllerCount - 1
      - equals:
        - get_param: NeutronEnableDVR
        - false

With composable roles what we need is more of a per service instance count. So for example ServiceNovaApiCount, which would then tell us how many instances of the NovaApi service exist.

The reason I need this is because in rabbitmq we want to set a policy to value equal to half the number of instances of Rabbitmq. Right now I am using ControllerCount, but that is not really correct in a composable roles architecture.

Steven Hardy (shardy) wrote :

We already have per-service lists of nodes in hiera, e.g see rabbitmq_node_names - so I think we should not derive service multiplicity via any of the Count parameters, and instead look at the len($service_node_names) in puppet-tripleo?

Changed in tripleo:
status: New → Incomplete
status: Incomplete → Triaged
Steven Hardy (shardy) wrote :

I made similar comments and discussed this with beagles, see https://review.openstack.org/#/c/374835/

Brent Eagles (beagles) on 2016-09-30
Changed in tripleo:
importance: Undecided → High
assignee: nobody → Brent Eagles (beagles)
Steven Hardy (shardy) wrote :

I'm marking this incomplete, as I believe the data we put in hiera for per-service names/ips is enough to solve this in puppet-tripleo, please let me know what work remains if you disagree, thanks!

Changed in tripleo:
status: Triaged → Incomplete
milestone: ocata-1 → ocata-2
Steven Hardy (shardy) wrote :

Ok so marking this confirmed as further discussion indicates the specific example of auto_enable_l3_ha is causing operators problems when breaking out neutron services to a network role.

So lets re-focus this bug on fixing that specific issue.

Changed in tripleo:
status: Incomplete → Confirmed
summary: - {{role.name}}Count parameters are not enough
+ auto_enable_l3_ha should not be derived from ControllerCount

Fix proposed to branch: master
Review: https://review.openstack.org/398926

Changed in tripleo:
assignee: Brent Eagles (beagles) → Steven Hardy (shardy)
status: Confirmed → In Progress

Reviewed: https://review.openstack.org/398926
Committed: https://git.openstack.org/cgit/openstack/puppet-tripleo/commit/?id=6ae718560b4603d78b85de8a7df7ab218bb9be5a
Submitter: Jenkins
Branch: master

commit 6ae718560b4603d78b85de8a7df7ab218bb9be5a
Author: Steven Hardy <email address hidden>
Date: Thu Nov 17 11:02:57 2016 +0000

    Move calculation of neutron l3_ha into puppet profile

    This is currently calculated in t-h-t but has a hard-coded reference
    to the ControllerCount which is incompatible with custom-roles.

    So instead calculate the setting based on the number of neutron API
    services running (on any role, not just Controller), combined with
    whether DVR is enabled (equivalent to current t-h-t logic).

    To avoid breaking the NeutronL3HA parameter in t-h-t we maintain an
    optional parameter to override the calculated value.

    Change-Id: I01c50973eec8138ec61304f2982d5026142f267c
    Partial-Bug: #1629187

Reviewed: https://review.openstack.org/398934
Committed: https://git.openstack.org/cgit/openstack/tripleo-heat-templates/commit/?id=4a35893ad938b0e22767ba5c7b646ca49ccbab04
Submitter: Jenkins
Branch: master

commit 4a35893ad938b0e22767ba5c7b646ca49ccbab04
Author: Steven Hardy <email address hidden>
Date: Thu Nov 17 11:10:56 2016 +0000

    Remove conditional for neutron l3_ha

    This is handled in puppet-tripleo instead so we can remove the
    hard-coded reference to ControllerCount and instead use the
    hiera neutron_api_node_names to derive the number of neutron API
    nodes regardless of roles.

    Note that the NeutronL3HA parameter is maintained despite being
    marked deprecated because we need to backport this bugfix so we
    can't just remove it. I'm not sure if we want to consider removing
    the deprecation as leaving the override parameter in place seems
    fairly low overhead.

    Closes-Bug: #1629187
    Change-Id: I7a77836dcaf809cc7959fca7691a4cd7d4af5d6a
    Depends-On: I01c50973eec8138ec61304f2982d5026142f267c

Changed in tripleo:
status: In Progress → Fix Released

Reviewed: https://review.openstack.org/402369
Committed: https://git.openstack.org/cgit/openstack/puppet-tripleo/commit/?id=87e206942daf3f45ca14ed4f9df84ddbd637ecb3
Submitter: Jenkins
Branch: stable/newton

commit 87e206942daf3f45ca14ed4f9df84ddbd637ecb3
Author: Steven Hardy <email address hidden>
Date: Thu Nov 17 11:02:57 2016 +0000

    Move calculation of neutron l3_ha into puppet profile

    This is currently calculated in t-h-t but has a hard-coded reference
    to the ControllerCount which is incompatible with custom-roles.

    So instead calculate the setting based on the number of neutron API
    services running (on any role, not just Controller), combined with
    whether DVR is enabled (equivalent to current t-h-t logic).

    To avoid breaking the NeutronL3HA parameter in t-h-t we maintain an
    optional parameter to override the calculated value.

    Change-Id: I01c50973eec8138ec61304f2982d5026142f267c
    Partial-Bug: #1629187
    (cherry picked from commit 6ae718560b4603d78b85de8a7df7ab218bb9be5a)

tags: added: in-stable-newton

Reviewed: https://review.openstack.org/402370
Committed: https://git.openstack.org/cgit/openstack/tripleo-heat-templates/commit/?id=7450806b0c7d0bad20540442d69244eeafee6e3b
Submitter: Jenkins
Branch: stable/newton

commit 7450806b0c7d0bad20540442d69244eeafee6e3b
Author: Steven Hardy <email address hidden>
Date: Thu Nov 17 11:10:56 2016 +0000

    Remove conditional for neutron l3_ha

    This is handled in puppet-tripleo instead so we can remove the
    hard-coded reference to ControllerCount and instead use the
    hiera neutron_api_node_names to derive the number of neutron API
    nodes regardless of roles.

    Note that the NeutronL3HA parameter is maintained despite being
    marked deprecated because we need to backport this bugfix so we
    can't just remove it. I'm not sure if we want to consider removing
    the deprecation as leaving the override parameter in place seems
    fairly low overhead.

    Closes-Bug: #1629187
    Change-Id: I7a77836dcaf809cc7959fca7691a4cd7d4af5d6a
    Depends-On: I01c50973eec8138ec61304f2982d5026142f267c
    (cherry picked from commit 4a35893ad938b0e22767ba5c7b646ca49ccbab04)

This issue was fixed in the openstack/tripleo-heat-templates 6.0.0.0b2 development milestone.

This issue was fixed in the openstack/tripleo-heat-templates 5.2.0 release.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers