Has anyone run into this issue before? http://projects.puppetlabs.com/issues/5046#note-17
Is there something obvious that I'm missing?
Thanks John,
Unfortunately, we're using Foreman in our shop for the ENC, so using Hiera is currently not possible (AFAIK)
For some reason, I thought the "require" statement was analogous to the "require" metaparameter. But looking at the documentation, clearly that's not the case. Still, this seems like a bug to me. If this is a duplicate declaration, shouldn't it error regardless of the ordering within the manifest?
Anyways, would writing something like this work?class { "foo::bar":
Class["foo:baz"] -> Class["foo::bar"]
}
class foo::bam {
include 'foo::bar'
class {'foo::baz': }
Class['foo::baz'] -> Class['foo::bar']
}
If indeed the relationship declaration is safe in foo::bar in the first place, then there must be one or more such higher-level places that would be suitable for declaring the relationship.
John
What does one have to do with the other?
Thanks for the replies and being patient with me!
Maybe I'm thinking about this incorrectly, but it seems to me that announcing a dependency ("I need x defined somewhere in order to work properly") shouldn't require a class to declare the dependency as well. It seems to me that the dependent class should not have to know anything about how a particular dependency is defined, just that it is defined.
As an analogy to RPM package dependencies, if I have a package called Django that requires a package which provides the "python" capability, the Django package shouldn't need to include it's own version of Python. It should be able to re-use any package which has the capability.
What does one have to do with the other?
You were suggesting using auto-lookups via Hiera to populate class parameters, but we're using Foreman to populate those parameters. AFAIK, there's no interoperability between Foreman's ENC and Hiera (without writing my own).