The f5_irule class adds an additional \n when comparing existing rules, so puppet "thinks", there's a change neccessary which indeed isn't. code: ` f5_irule { "/Common/${irule_name}": ensure => 'present', name => "/Common/${irule_name}", definition => file("profile/f5/irules/${irule_file}"), verify_signature => false, ` pupet device shows: ` Notice: /Stage[main]/Profile::F5::Server/F5_irule[/Common/AccessVhostRequireNetwork]/definition: current_value "[....] return\n }\n}", should be "[....]return\n }\n}\n" (noop) (corrective) ` The irule File doesn't contain a trailing newline.