Bugzilla will be upgraded to version 5.0. The upgrade date is tentatively scheduled for 2 December 2018, pending final testing and feedback.
Bug 1418335 - [RFE] Easy heterogeneous cluster management
[RFE] Easy heterogeneous cluster management
Status: CLOSED ERRATA
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-tripleo-heat-templates (Show other bugs)
12.0 (Pike)
x86_64 Linux
high Severity high
: Upstream M2
: 12.0 (Pike)
Assigned To: Saravanan KR
Yariv
: FutureFeature, Reopened, Triaged
: 1404208 1465547 (view as bug list)
Depends On:
Blocks: 1389435 1442136 1458798 1465537 1463145 1469642 1550658
  Show dependency treegraph
 
Reported: 2017-02-01 10:12 EST by Franck Baudin
Modified: 2018-03-01 12:47 EST (History)
16 users (show)

See Also:
Fixed In Version: openstack-tripleo-heat-templates-7.0.0-0.20170616123155.el7ost
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1463145 1550658 (view as bug list)
Environment:
Last Closed: 2017-12-13 16:06:26 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
OpenStack gerrit 437956 None None None 2017-03-15 02:00 EDT
Red Hat Product Errata RHEA-2017:3462 normal SHIPPED_LIVE Red Hat OpenStack Platform 12.0 Enhancement Advisory 2018-02-15 20:43:25 EST

  None (edit)
Description Franck Baudin 2017-02-01 10:12:11 EST
Description of problem:
Not all servers are identical: some have more RAM than other, some have more CPUs than others. NFV configuration however requires very specific parameters to be set, like core list to run OVS-DPDK. This list will obviously vary if not all the compute nodes are identical. So, for a given role, we would like to be able to override the template values for a given set of machines to match their HW characteristics.

Example:

How do we set a parameter, specific to a role? Like, I want to specific NeutronDpdkSocketMemory for Compute Role 1 as "2014,2014" and Compute Role 2 as "0,2048".
 
This is possible to configure parameter per role basis, with a workaround, which is explained below.
 
Creating Custom Role:
The document OVS DPDK Role with RHOSP10 (composable roles)  gives the steps involved in creating custom role for deploying OVS-DPDK as new role ComputeOvsDpdk. Additionally, if we experimented configuring a parameter only specific to this role. The same parameter is defined globally but it is overridden for this new role to validate that role-specific parameters are achievable.
 
Configuring Parameter Specific to Custom Role:
Below addition has been done in the environment file to achieve role specific parameter update.
network-environment.yaml
parameter_defaults:
  # Existing paramter (applied for all nodes)
  NeutronDpdkSocketMemory: "'2048,2048'"

  # Role Specific Parameter (overriden)
  ComputeOvsDpdkExtraConfig:
    vswitch::dpdk::socket_memory: "'0,2048'"

Expected results:
 
Ideally, it should be possible to provide THT parameter per role to reflect the differentiation as needed, which is NOT possible with RHOSP10.
Instead, the overriding can be done with "hiera" data, for that role.
 
In above case, the actual parameter name is NeutronDpdkSocketMemory but the overriding has been done to its corresponding hiera value which is vswitch::dpdk::socket_memory. The assignment to this parameter happens at tripleo-heat-templates/neutron-ovs-dpdk-agent.yaml at stable/newton · openstack/tripleo-heat-templates · GitHub
Comment 1 Franck Baudin 2017-02-01 10:15:01 EST
Related also to overcloud image customization per set of servers: https://review.openstack.org/#/c/423304/
Comment 2 Vijay Chundury 2017-02-03 08:39:49 EST
Franck,
With OSP-10 it is possible to set node-specific hiera-data is possible.
To be specific, with a heat environment file we can customise the "settingss" for a specific node regardless of the resource group.
It is possible to customize multiple and different keys for multiple nodes (UUID mapping).

The catch is the operator has to run introspection for the specific node (capture the UUID) and then create a template, then using extraconfig he can key in a value specific value to that target node. 
This should be possible with OSP-10.

Sanjay can you please test this scenario and update us please.
Comment 3 Sanjay Upadhyay 2017-02-21 03:43:17 EST
Created a blog at https://mojo.redhat.com/groups/openstack-community-of-practice/blog/2017/02/10/tripleo-composables-roles-and-passing-parameters-per-role, which shows how we can pass specific *Custom Role* specific parameters -

#Very specific a compute Role specific parameter is sent via ExtraConfigs and needs to be a hiera data format 
  ComputeOvsDpdkExtraConfig:
    vswitch::dpdk::memory_channels: "'0,2048'"

^^ above ComputeOvsDPDK is a custom role, and we are passing the parameters for memory channels.
Comment 4 Sanjay Upadhyay 2017-02-21 04:04:18 EST
*** Bug 1404208 has been marked as a duplicate of this bug. ***
Comment 5 Saravanan KR 2017-03-15 01:56:42 EDT
This bug is wrongly closed. The requirement of this bug is to provide easily configurable parameters per role. Currently we are able to provide role specific parameters using hiera variables, which is not correct approach for operators as they need to know 2 names for the same variable. 

We are working on role-specific parameters for each service. This has been discussed in PTG, please refer etherpad link below for more details.

https://etherpad.openstack.org/p/tripleo-ptg-nfv-updates
Comment 7 Saravanan KR 2017-05-25 00:42:28 EDT
Then service plugin interface change has been merged. For our usecase, we need to modify following templates:
1) neutron-ovs-dpdk-agent: Done (https://review.openstack.org/#/c/446093/)
2) nova-compute: In progress (https://review.openstack.org/#/c/465481/)
3) PreNetworkConfig: In progress (https://review.openstack.org/#/c/447051/)
4) neutron-sriov-agent: Not Started

All SR-IOV and DPDK parameters will be covered with this.
Comment 8 Saravanan KR 2017-06-16 03:51:55 EDT
All the DPDK and SR-IOV parameters can be role-specific - Documentation @https://docs.openstack.org/developer/tripleo-docs/advanced_deployment/role_specific_parameters.html
Comment 10 Ollie Walsh 2017-07-25 21:56:50 EDT
*** Bug 1465547 has been marked as a duplicate of this bug. ***
Comment 11 Ziv 2017-10-23 07:38:02 EDT
Heterogeneous cloud features have been verified.
Comment 14 errata-xmlrpc 2017-12-13 16:06:26 EST
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2017:3462

Note You need to log in before you can comment on or make changes to this bug.