If puppetserver fails to serialize a catalog to JSON it will fallback to PSON, because there was a time where rich data wasn't supported end-to-end between server and agents. However, rich data is now enabled by default and supported end-to-end. And it required when using Deferred or Sensitive parameters. Therefore, if puppetserver downgrades to PSON it can lead to surprising behavior as described in PUP-10928.
In Puppet 8, we will no longer fallback to PSON. If a user wants binary data in the if catalog, such as a Kerberos keytab file, then they should use `content => binary_file( rendering/serialization fails...)` in a file resource.
If puppetserver fails to serialize a catalog to JSON it will fallback to PSON, because there was a time where rich data wasn't supported end-to-end between server and agents. However, rich data is now enabled by default and supported end-to-end. And it required when using Deferred or Sensitive parameters. Therefore, if puppetserver downgrades to PSON it can lead to surprising behavior as described in PUP-10928.
In Puppet 8, we will no longer fallback if catalog rendering/serialization fails.
A new puppet setting will be added to 7.x in PUP-10928. For this ticket, the default value should be changed to not fallback and to raise an exception failing compilation (even if the puppet-pson gem has been installed).
Before, Puppet fell back to PSON when unable to serialize to JSON however this causes issues because rich data types cannot be serialized vis PSON. Due to this, the setting, allow_pson_serialization, was introduced in Puppet 7.x. This setting allows users to turn PSON serialization on or off using a boolean.
allow_pson_serialization defaults to true in Puppet 7.x and defaults to false in Puppet 8. When set to false, a warning will be raised when falling back to PSON and when set to true, an error will be raised instead. This option affects both puppetserver's configuration management service responses and when the agent saves its cached catalog. catalo
Before, Puppet fell back to PSON when unable to serialize to JSON however this causes issues because rich data types cannot be serialized vis PSON. Due to this, the setting, allow_pson_serialization, was introduced in Puppet 7.x. This setting allows users to turn PSON serialization on or off using a boolean.
allow_pson_serialization defaults to true in Puppet 7.x and defaults to false in Puppet 8. When set to false, a warning will be raised when falling back to PSON and when set to true, an error will be raised instead. This option affects both puppetserver's configuration management service responses and when the agent saves its cached catalog.
Before, Puppet fell back to PSON when unable to serialize to JSON however this causes issues because rich data types cannot be serialized vis PSON. Due to this, the setting, allow_pson_serialization, was introduced in Puppet 7.x. This setting allows users to turn PSON serialization on or off using a boolean.
allow_pson_serialization defaults to true in Puppet 7.x and defaults to false in Puppet 8. When set to false, a warning will be raised when falling back to PSON and when set to true, an error will be raised instead. This option affects both puppetserver's configuration management service responses and when the agent saves its cached catalo catalog
Before, Puppet fell back to PSON when unable to serialize to JSON however this causes issues because rich data types cannot be serialized vis PSON. Due to this, the setting, allow_pson_serialization, was introduced in Puppet 7.x. This setting allows users to turn PSON serialization on or off using a boolean.
allow_pson_serialization defaults to true in Puppet 7.x and defaults to false in Puppet 8. When set to false, a warning This means an error will be raised when falling back attempting to PSON and when set serialize to true, an error will be raised instead PSON. This option affects both puppetserver's configuration management service responses and when the agent saves its cached catalog