Hiera nodes is out of date after post_deployment stage when ip addresses are modified before deployment, plugins impacted

Bug #1476957 reported by Swann Croiset
28
This bug affects 5 people
Affects Status Importance Assigned to Milestone
Fuel Plugins
Confirmed
High
Fuel Python (Deprecated)
Fuel for OpenStack
Confirmed
High
Fuel Sustaining
6.1.x
Won't Fix
High
Fuel Python (Deprecated)
7.0.x
Won't Fix
High
Fuel Python (Deprecated)
8.0.x
Won't Fix
High
Fuel Python (Deprecated)
Mitaka
Won't Fix
High
Fuel Python (Deprecated)

Bug Description

Steps to reproduce:

1/ .. create and configure a new cluster via Fuel UI (roles assignement, network config, plugins settings ..) BUT not "deploy changes"
2/ # fuel --env 1 deployment default
3/ .. update IP addresses for some/all nodes (sections nodes and endpoints) ..
4/ # fuel --env 1 deployment upload
5/ # fuel deploy-changes (or via Fuel UI)

Expected results:
After the OSt deployment the "hiera('nodes')" from puppet manifests returns correct information (with ip addresses configured)

Actual results:
after the OSt deployment the "hiera('nodes')" from puppet manifests returns outdated data (with ip addresses by default).

Impacts:
All Fuel plugins using hiera('nodes') will fail to configure its stuff with bad IP addresses.
Since Fuel allows to update IP addresses before deployment, (potentially) users will do it. Fuel must update the same way it does for astute.yaml the nodes.yaml with the modified data.

Environement:
Fuel 6.1 / Ubuntu (surely the same result with CentOS)
Plugins LMA collector 0.7.2

Other informations / pre diagnostic :
* OpenStack and others services (rabbitmq, haproxy ..) are correctly configured with good IPs (those updated before deployment), fortunately because the /etc/hiera/nodes.yaml is generated at post_deployment stage.
* the hiera hierarchy cannot be updated (ie move down 'nodes' after 'astute') because this will break a whole lot of stuff

Workaround:
on the plugin manifests side, instead using "hiera('nodes')", use the old school way 'parseyaml($astute_settings_yaml)'
but this workaround is not acceptable.

Swann Croiset (swann-w)
description: updated
Revision history for this message
Irina Povolotskaya (ipovolotskaya) wrote :

Swann, I suppose we could move this to Fuel Plugins project in LP (or mark the bug as impacting Fuel Plugins project as well).

tags: added: feature-plugins
Changed in fuel:
milestone: none → 7.0
assignee: nobody → Fuel Library Team (fuel-library)
importance: Undecided → Medium
status: New → Confirmed
Revision history for this message
Bogdan Dobrelya (bogdando) wrote :

Added fuel pugins project. I'd say the UX impact is high or even critical here

Revision history for this message
Aleksandr Didenko (adidenko) wrote :

Guys, this is not library bug, nodes.yaml is being created and uploaded by nailgun. Python team should check if it's possible to make it pull correct data from deployment settings like it does for astute.yaml.

Changed in fuel:
assignee: Fuel Library Team (fuel-library) → Fuel Python Team (fuel-python)
Changed in fuel:
importance: Medium → High
Revision history for this message
Sheena Conant (sheena-conant) wrote :

I would propose that we also fix this in 6.1 as an update since we have affected plugins that are available for customer use right now (ex. Zabbix).

Revision history for this message
Patrick Petit (patrick-michel-petit) wrote :

+1 with Sheena's request. This bug is impacting Orange who's in the process of deploying MOS 6.1 with LMA plugins.

Changed in fuel-plugins:
status: New → Confirmed
assignee: nobody → Fuel Python Team (fuel-python)
Changed in fuel:
assignee: Fuel Python Team (fuel-python) → Andriy Popovych (popovych-andrey)
Changed in fuel:
assignee: Andriy Popovych (popovych-andrey) → Fuel Python Team (fuel-python)
Revision history for this message
Evgeniy L (rustyrobot) wrote :

Using "fuel --env 1 deployment upload" is not the best way to change ip addresses, and non-working plugin is not the worst case which user can get, since this data do not get deserialized from json into db models form, you can get ips duplication problem easily.

It will be much easier to implement and to support fully functional cli for ip management, instead of a hack ("fuel --env 1 deployment upload") which creates only problems, also I don't see that we have documented somewhere that user mustn't use until he understands consequences pretty well.

1. there won't be simple backport, we should document that user should not use "fuel --env 1 deployment upload" to change ip addresses, and it should be used for developers only

2. for 7.0 (or higher) we should create appropriate handler for ip management, I think we should decide weather it's feature or not and how difficult it will be to implement

Revision history for this message
Ihor Kalnytskyi (ikalnytskyi) wrote :

Yeah, I agree with Evgeniy. We are unable to work correctly in this case with any overwritten information, not only ip addresses. This is something that is incompatible with such actions by design.

If someone wants just to be able to change IP addresses it'd be better to implement a separate API call / IP addresses management. But I want to point out that would be a feature, and obvious will require much time. Hence, I'd move it to 8.0.

Fedor Zhadaev (fzhadaev)
Changed in fuel:
assignee: Fuel Python Team (fuel-python) → Fedor Zhadaev (fzhadaev)
assignee: Fedor Zhadaev (fzhadaev) → nobody
assignee: nobody → Fuel Python Team (fuel-python)
Revision history for this message
Ihor Kalnytskyi (ikalnytskyi) wrote :

Move it to 8.0 since it couldn't be fixed, we have a limitation by design and it should be done as feature.

tags: added: feature
Changed in fuel:
milestone: 7.0 → 8.0
Revision history for this message
Simon Pasquier (simon-pasquier) wrote :

I don't know if this should be tracked in this bug or not but to add to Evgeniy and Igor comments, the Operations guide should be fixed to remove references to the 'fuel environment upload' command [1].

[1] https://docs.mirantis.com/openstack/fuel/fuel-6.1/operations.html#adding-new-modules

Changed in fuel:
status: Confirmed → Triaged
Dmitry Pyzhov (dpyzhov)
tags: added: area-python
Revision history for this message
Vitaly Sedelnik (vsedelnik) wrote :

Feature requests - Won't Fix for updates

Changed in fuel:
milestone: 8.0 → 9.0
status: Triaged → New
Maciej Relewicz (rlu)
Changed in fuel-plugins:
importance: Undecided → High
Maciej Relewicz (rlu)
Changed in fuel-plugins:
milestone: none → 8.0
Artem Roma (aroma-x)
Changed in fuel:
status: New → Confirmed
Revision history for this message
Bug Checker Bot (esikachev-l) wrote : Autochecker

(This check performed automatically)
Please, make sure that bug description contains the following sections filled in with the appropriate data related to the bug you are describing:

version

For more detailed information on the contents of each of the listed sections see https://wiki.openstack.org/wiki/Fuel/How_to_contribute#Here_is_how_you_file_a_bug

tags: added: need-info
tags: removed: need-info
Dmitry Pyzhov (dpyzhov)
no longer affects: fuel/future
Changed in fuel:
milestone: 9.0 → 10.0
Revision history for this message
Dmitry Pyzhov (dpyzhov) wrote :

It is a feature request and we cannot backport it to Mitaka.

Dmitry Pyzhov (dpyzhov)
Changed in fuel:
assignee: Fuel Python (Deprecated) (fuel-python) → Fuel Sustaining (fuel-sustaining-team)
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.