So I'm working with puppet 5.5.1 and I have encountered what I think is a bug.
So on my site.pp i have the following line for ordering my firewall rules: site.pp --------- if $::kernel == 'Linux' { # Make sure every firewall rule not pre or post is created in the middle Firewall <| tag != 'pre' and tag != 'post' |> { before +> Class['profiles::fw_rules::post'], require +> Class['profiles::fw_rules::pre'], } } Then on another class I'm doing the following (This is a class for a postgresql client): @@firewall { "222 tcp:5432 pgpool from ${::ipaddress}/32" : action => 'accept', source => "${::ipaddress}/32", dport => '5432', proto => 'tcp', tag => [ $tag, 'postgresql_client' ], } On the postgresql servers I do: # Grab all firewall rules created for this cluster Firewall <<| tag == $tag and tag == 'postgresql_client' |>> I would expect that the rule to only appear on the postgresql server, but what ends up happening is that the rule is realized on both the server and the client. On the documentation for resource collector (https://puppet.com/docs/puppet/5.5/lang_collectors.html#exported-resource-collectors): Collectors realize virtual resources, are used in chaining statements, and override resource attributes. on that very same page we have the following for exported resource collectors: An exported resource collector uses a modified syntax that realizes exported resources <https://puppet.com/docs/puppet/5.5/lang_exported.html> and imports resources published by other nodes. Have anybody else found a similar issue? Thanks Julio Guevara -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/9b9118cd-81be-4452-a77a-732098d61c6a%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.