Issue #15062 has been updated by Mariusz Gronczewski.
Enforcing utf8 would break any binary data that is feed to "content" parameter, and it's not only templates. For example we use content for passing crypto keys so no other node can read it, using source doesnt work very well because each client would have to have ACL for their content or else all clients can read anything from fileserver. Also some config files require to use specific encoding (or even binary command) in some parts of it, while rest of it (comments etc) is UTF-8 and it's not always feasible to fix it (like some non-free software). IMO it should pass data "as is" + add iconv function with optional "ignore invalid characters" option ---------------------------------------- Bug #15062: puppet fails if template contains invalid utf-8 https://projects.puppetlabs.com/issues/15062#change-69040 Author: Chris Price Status: Needs Decision Priority: Normal Assignee: eric sorenson Category: templates Target version: Affected Puppet version: 2.7.16 Keywords: character encoding binary utf8 Branch: If you attempt to use a file resource with a 'content' parameter pointing at a template, and the template contains binary content, you may get an error like this: Error: Failed to apply catalog: Parameter content failed: Munging failed for value ... invalid byte sequence in UTF-8 I've reproduced the failure in 2.7.16 and 3.x, though the error messages differ slightly between the two (and also depending on whether you repro via 'apply' or via master/agent run). I'm attaching the binary file that I'm using to repro. Save it into a directory structure like this: modules/mymod/templates/mytemplate.erb Add the "modules" directory to your module path and then you can repro with the following manifest: file { "/tmp/myfile": mode => 755, content => template("mymod/mytemplate.erb"), } Note that if you use the 'source' parameter rather than the 'content' parameter (and avoid calling the template function), the manifest can be applied successfully; so the issue is when bringing in binary data as a string. -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
