[VIPs] VIP allocation is restricted to controller node group now

Bug #1487021 reported by Aleksey Kasatkin on 2015-08-20
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
High
Ihor Kalnytskyi
7.0.x
High
Ihor Kalnytskyi

Bug Description

VIP allocation is restricted to controller node group now in Nailgun.
It should be allowed to allocate VIP in any node group to allow proper separation of HA services into different nodes for 7.0 environments.
But other restriction remains the same: VIP can be allocated only if all nodes which conform to its node_roles section are in the same node group.

Changed in fuel:
assignee: Fuel Python Team (fuel-python) → Aleksey Kasatkin (alekseyk-ru)
description: updated
tags: added: feature
tags: removed: feature
tags: added: feature-nodegroup
tags: added: tricky
Aleksey Kasatkin (alekseyk-ru) wrote :

VIPs allocation for 7.0 is done in AllocateVIPs70Mixin, methods get_end_point_ip and _assign_vips_for_net_groups . objects.Cluster.get_controllers_node_group is used there as for earlier env versions. It should be changed to the following:
for every VIP:
1. Check that all target nodes (which VIP is allocated for) are in the same node group.
2. If 1 is true then allocate VIP in that node group. It can be any node group in the environment.
    If 1 is false then raise an error that VIP cannot be shared between node groups.

It should be changed in AllocateVIPs70Mixin only (i.e. for 7.0 environments only).

Changed in fuel:
assignee: Aleksey Kasatkin (alekseyk-ru) → Fuel Python Team (fuel-python)
description: updated
Aleksey Kasatkin (alekseyk-ru) wrote :

>> 1. Check that all target nodes (which VIP is allocated for) are in the same node group.

It should be checked differently with and without a template.

Changed in fuel:
status: Confirmed → Triaged
oleksii shyman (oshyman) on 2015-08-25
Changed in fuel:
assignee: Fuel Python Team (fuel-python) → oleksii shyman (oshyman)
Changed in fuel:
assignee: oleksii shyman (oshyman) → Fuel Python Team (fuel-python)
Ivan Kliuk (ivankliuk) on 2015-08-28
Changed in fuel:
assignee: Fuel Python Team (fuel-python) → Ivan Kliuk (ivankliuk)
Dmitry Pyzhov (dpyzhov) on 2015-08-31
Changed in fuel:
milestone: 7.0 → 8.0
tags: added: feature
Ivan Kliuk (ivankliuk) on 2015-09-01
Changed in fuel:
assignee: Ivan Kliuk (ivankliuk) → Fuel Python Team (fuel-python)
Changed in fuel:
assignee: Fuel Python Team (fuel-python) → Igor Kalnitsky (ikalnitsky)
Matthew Mosesohn (raytrac3r) wrote :

The cluster which manages a VIP can be allocated across multiple networks, but you can't allocate a VIP for a separate network from the node IP on that network. This has nothing to do with controllers or node roles, but instead just L3 network segments. I don't think this bug is valid.

Ihor Kalnytskyi (ikalnytskyi) wrote :

Matt,

Thanks for the input. Still, I can't understand why it's invalid? Let's consider the following situation -

* We have a multi-rack cluster, where

     - "controllers" nodes have management net 172.16.0.0/16
     - "standalone-keystone" nodes have management net 172.17.0.0/16

* standalone-keystone nodes manage their own management VIP; obviously it has to be allocated in 172.17.0.0/16, not in 172.16.0.0/16

So currently Nailgun will allocate it in controllers node group (i.e. 172.16.0.0/16), and it should be fixed in the way to allocate it in 172.17.0.0/16.

So why it's invalid? It looks valid to me.

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

Changed in fuel:
status: Triaged → In Progress

Reviewed: https://review.openstack.org/231575
Committed: https://git.openstack.org/cgit/stackforge/fuel-web/commit/?id=eea8e2accb3ddf87993591671bc09f0a1b3e5c39
Submitter: Jenkins
Branch: master

commit eea8e2accb3ddf87993591671bc09f0a1b3e5c39
Author: Igor Kalnitsky <email address hidden>
Date: Mon Oct 5 15:47:58 2015 +0300

    Assign VIPs not only for controllers' node group

    Recently we had an assumption that VIPs could be allocated only for
    controllers, so we used controllers' node group to do allocation.
    That was incorrect assumption, and led to incorrect behaviour for
    envs with standalone-* roles (e.g. standalone-keystone) if it's
    in separate node group.

    So let's use proper node group for VIP allocation based on provided
    node role(s) information. Obviously, all nodes with provided node
    role(s) MUST have the same node group, otherwise the error will be
    thrown.

    Closes-Bug: #1487021
    Change-Id: I0ae2e5395fb4fe5cd921bc336718cc94003f156d

Changed in fuel:
status: In Progress → Fix Committed
tags: removed: feature
Dmitry Pyzhov (dpyzhov) on 2015-10-22
tags: added: area-python
tags: added: on-verification
Changed in fuel:
status: Fix Committed → Fix Released
tags: removed: on-verification

Change abandoned by Igor Kalnitsky (<email address hidden>) on branch: stable/7.0
Review: https://review.openstack.org/233047
Reason: No interest from Maintenance team for 4 months.

Vitaly Sedelnik (vsedelnik) wrote :

Won't Fix for 7.0-updates as this is too risky change to be accepted to stable branch

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

Other bug subscribers