Feature #832

parameterized class support

Added by Ashley Penney over 8 years ago. Updated almost 7 years ago.

Puppet integration
Target version:
Bugzilla link:
Pull request:
Fixed in Releases:
Found in Releases:

Description is the ticket for this.

Basically I think the UI should be updated so that when you select a class it either gives you the parameters directly below or creates new boxes (like the existing parameters one) below that list:

Class name:
Parameter name [ box to type in ]
Parameter name 2 [ box to type in ]

Related issues

Related to Foreman - Feature #1165: Host details should display inherited hostgroup parameterClosed2011-09-13
Related to Foreman - Feature #1028: Ability to edit custom fields in the host edit pageClosed2011-07-06
Related to Foreman - Feature #1995: Enable parameterized class support by defaultClosed2012-12-04

Associated revisions

Revision f8d94608 (diff)
Added by Amos Benari almost 7 years ago

fixes #832 - adds parameterized class support

This patch is based on the original work of Olivier Favre
<> many many thanks!

This patch adds the following features
  • import class parameters, and try to understand their types
  • support a complex matrix of environments, puppet classes and their
    signature - each class can have a different set of parameters per environment.
  • adds an ignore yaml file 'config/ignored_environments.yml.sample' file were
    users can add regexp or class names that the importer should ignore.
    common usage case for this is classes such as ::config, ::install etc.
  • introduce a new type of smart variable - parameterized.
  • adds complex data types to smart vars, arrays, hashes, json, yaml etc are all supported now.

in order to use the new ENC format for puppet 2.6.5+ you should enable the
Parametrized_Classes_in_ENC and Enable_Smart_Variables_in_ENC within Foreman Settings

This is the initial patch just to get param classes support in, follow-up patches
would include a better UI and the relevant UI updates to host edit page etc.

Signed-off-by: Ohad Levy <>

Revision 75bd351e (diff)
Added by Ohad Levy almost 7 years ago

refs #832 - making sure that ENC values cast - skipped this patch somehow

Revision 77a8080a (diff)
Added by Ohad Levy almost 7 years ago

refs #832 do not force smartvars order saved if they are the default or not sent over the wire.


#1 Updated by Romain Vrignaud over 8 years ago

+1 It would be very usefull !

#2 Updated by Ignace Mouzannar about 8 years ago

I agree, this would be greatly useful.

I there a way to take advantage of puppet's parameterized classes via Foreman's ENC (even if it isn't supported in GUI yet)?

#3 Updated by Romain Vrignaud almost 8 years ago

For me, the use case should be :

  • After importing puppet classes, I should be able to edit class and in a "Parameterized Class" Tab I should be able to add as many paramaters as I want and optional default value for each parameter.
  • When I edit an hostgroup and I add a parameterized class to this hostgroup : it should show under the list class (or in parameter tab ?) the list of declared paramater for that class and I should be able to edit the keys. If I don't set any value then it should be mandatory to be done during host edition.
  • In the same idea, If I add a parameterized class to an host, I should be able to configure the parameterized class in the same way.
  • If one of my host is declared as a member of an hostgroup which include a parameterized class, I should see the value affected in hostgroup. (see Feature #1165)

#4 Updated by James Kerby over 7 years ago

There was an IRC meetup to discuss this issue in December. Does anyone have any feedback on that discussion and whether this will be implemented anytime soon?

#5 Updated by Glen Ogilvie over 7 years ago

Any progress on this? I see that ticket 5045, has been merged, so puppet itself supports parameterized classes from an external node classifier.
Maybe this could go into foreman release 0.5?

#6 Updated by James Kerby over 7 years ago

Yes, we've been kicking our heels waiting for puppet to support this. It would be great in Foreman could get this into 0.5

#7 Updated by Olivier Favre about 7 years ago

  • Assignee set to Olivier Favre

#8 Updated by Ohad Levy about 7 years ago

#9 Updated by Ohad Levy about 7 years ago

  • Target version set to 1.1

#10 Updated by Ohad Levy almost 7 years ago

  • Category set to Puppet integration
  • Assignee changed from Olivier Favre to Ohad Levy

a more recent hopefully soon to be merged here:

#11 Updated by Amos Benari almost 7 years ago

  • Status changed from New to Closed
  • % Done changed from 0 to 100

Also available in: Atom PDF