Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1033261

Summary: [RFE] Provide smaller modules of puppet classes to configure hosts
Product: Red Hat OpenStack Reporter: james labocki <jlabocki>
Component: openstack-foreman-installerAssignee: Gilles Dubreuil <gdubreui>
Status: CLOSED WONTFIX QA Contact: Ami Jeain <ajeain>
Severity: medium Docs Contact:
Priority: medium    
Version: 4.0CC: aberezin, dcleal, gdubreui, jshubin, mburns, morazi, rhos-maint, yeylon
Target Milestone: ---Keywords: FutureFeature, Reopened, ZStream
Target Release: Installer   
Hardware: Unspecified   
OS: Unspecified   
URL: https://trello.com/c/M4dfQISF/134-dynr-dynamic-roles
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-04-29 14:48:44 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1039278    

Description james labocki 2013-11-21 19:17:53 UTC
Currently the only applied class in a host group (for example, OpenStack Neturon Controller) is quickstack::neturon::controller. This needs to be changed so that a user can pick and choose specific puppet classes as desired to increase flexibility and re-usability.

Comment 2 Dominic Cleal 2013-11-22 10:22:11 UTC
The difficulty here will be ensuring classes can be composed and also only in supported manners.  I think higher level UIs for this are the way forward.

Comment 3 Mike Orazi 2013-11-22 21:44:20 UTC
I think the other alternative is that we have some layer between quickstack & the base puppet modules that provide some form w/o trying to specify what the end-machine looks like.

jayg has been noodling on something like:  http://www.craigdunn.org/2012/05/239/ where a profile is roughly what a host group is today & the role is that missing in between abstraction.  

Either that or higher level UIs seem like a great idea moving forward.

Comment 4 Mike Orazi 2013-11-22 21:44:59 UTC
Moving out of RHOS4.  This is forward looking.

Comment 5 Jason Guiditta 2013-11-22 23:46:05 UTC
To clarify terminology, Mike has the right idea, but in the example, profiles are the reusable chunks that compose roles, which in foreman parlance, are host groups.  Hopefully some combination of this plus whatever @dcleal and company are cooking up for ui magic will make this more palatable/flexible for the next (post 4.0) release.  However, at the current time, this is only in the research stages, so the rhos team needs to work with the foreman folks a bit as well as ref arch to see what combination of design approaches will solve this the best.

Comment 6 Gilles Dubreuil 2013-12-11 01:55:57 UTC
+1 

Actually, while working on adding monitoring with Nagios, I realized every service is a component Nagios needs to have defined, facing same structural issues.

As a matter of fact Nagios has "hostgroups" as well, bringing the question "What's the best way to build generic enough hostgroups?

Because a "controller" is a wrapper of services which are on some hosts, the latter being a user dependent choice makes it no candidate for Nagios hostgroup.

As we progressed away from All-in-One, the controller started breaking down in smaller controllers, such as neutron/swift/etc but again those are only user choices made based for some typical scenarios only, not offering the granularity OpenStack can.

Ultimately every OpenStack service need to be covered by a Puppet class to offer the bricks needed to be assembled someway, maybe using either:

- Roles (comment #3)
- Foreman multi-inheritance hostgroups 
- A dynamic puppet builder

Comment 11 Mike Orazi 2014-09-08 16:20:59 UTC
This has taken place on the HA host group puppet modules but will not be backported to the non-HA hostgroups as we hope to eventually deprecrate them in favor of a single node cluster for simple setups.

Comment 12 Gilles Dubreuil 2014-10-02 11:49:15 UTC
Reopening this one,

For Openstack-puppet-modules CI we need to have All-In-One with both NonHA and HA scenarios available.

Part of the reason is technical, because it's easier to build up from existing working ground in our ocean of complexity and as a matter of fact we already have the AIO NonHA ready, tests are in progress. This latter version is using a "multilithic" (as opposed to monolithic) approach, providing the building blocks to assemble pretty much any scenario. Next step will be to consolidate with HA.

Also, because quickstack AIO can help consolidate our resources from Packstack.
Discussion in progress.

And consequently, from a functional viewpoint a NonHA AIO still makes sense.