Feature #2260
closedSupport dynamic ERB parameters in global and class params
Description
Sometimes you want to pass information that Foreman knows (such as hostnames, IPs, MACs, subnets, etc) to Puppet through the ENC. At present it is not possible to do
parameters:
test: '<%= @host.name %>'
or
classes:
puppet:
certname: '<%= @host.certname %>'
Foreman will simply send this static string to Puppet. It would be nice to be able to send dynamic data to Puppet via ERB, just like we do in the templates.
Updated by Ohad Levy over 11 years ago
- Description updated (diff)
- Target version set to 1.3.0
Updated by Greg Sutcliffe over 11 years ago
- Status changed from Assigned to Closed
- % Done changed from 0 to 100
Applied in changeset 84ae9603d480bfe88b722cde8d91c9bb10b88be6.
Updated by Dominic Cleal about 11 years ago
- Related to Feature #1107: variables in settings added
Updated by Glen Ogilvie about 11 years ago
This looks like what I am looking for, but don't seem to be able to do everything I would expect, like:
classes: envtest: two: <%= scope.lookupvar(envtest::params::one) %>
or
classes: envtest: two: '<%= @envtest::params::one) %>'
Should ERB functions work? and should it be possible to lookup other variables set in Foreman, rather than just facts?
Updated by Dominic Cleal about 11 years ago
There's a difference between ERB templating in Foreman and in Puppet, as it changes what variables you'll have access to. This feature allows for interpolation as per TemplateWriting in Foreman, which is long before Puppet classes and parameters are available. You won't be able to reference any Puppet ERB functionality from Foreman.