I'm running puppet open source 3.1.0 from the puppetlabs repos on RedHat Enterprise Linux 6 and using hiera 1.1.2. I'm running into what seems like either a bug or a fundamental misunderstanding on my part of how hiera works with parameterized classes. I've set up a parameterized subclass with a default value. I'm trying to set the value to a different one on a particular node. The node is declared in one of the main manifests without classes, and I have hiera_include('classes') in that manifest. I'm trying to change the value of the "activate" parameter in the "my_firewall" class. When my hiera node file looks like this:
--- classes: - puppetmaster rel::auth_users: ['puppet'] rel::my_firewall::activate: false rel::my_firewall does not even load (I have notifies for the two boolean values of "activate" and don't see them). The rel::auth_users parameter gets passed fine. The rel class is defined in a parent in hiera.
When I change it to this:
--- classes: - puppetmaster - rel::my_firewall rel::auth_users: ['puppet'] rel::my_firewall::activate: false It loads the rel::my_firewall class but uses the default value, not the false value.
As a sanity check, when I define things in the normal way in the node manifest, things work fine:
node 'puppet.my.domain' { class { 'rel::my_firewall': activate => false, } } properly declares the class and sets activate to false.
Am I doing things wrong? Is my syntax off? Any help would be awesome.