Resolved issues
An environment reloaded during a single compilation could fail
Previously, Puppet Server could reload an environment while it was
being used to compile a catalog. If translations were
enabled (Puppet[:disable_i18n]
set to false
), compilation could
fail. Now Puppet Server prevents environments from being
reloaded while they are in use, and instead reloads the
environment the next time it is requested. PUP-11158
Catalog failure on first run due to pluginsync and environment switch
Previously, an agent failed its run if it switched to a new environment where the manifests relied on a fact that only existed in the new environment. Now the agent redirects to the server-specified environment and the run continues using that environment. PUP-9570
Changes to current working directory when listing modules
Puppet Server and agent no longer change their current working directories when listing modules in an environment directory. PUP-11166
Static catalogs not working for file resources when versioned_deploys
is
enabled
Previously, when :versioned_environment_dirs
was set to
true, catalog compilation failed to add metadata for static
catalog file resources; this meant that an agent receiving a
catalog would not attempt to request that static file
content. This has been fixed and the metadata is now
correctly added to the catalog when :versioned_environment_dirs
is set to
true
. PUP-11169
Agent cannot compile catalog if it specifies an non-existent
environment in puppet.conf
This release fixes an issue that caused the agent run to fail if the agent requested an environment that did not exist on the server — even when the classifier controlled the environment. PUP-6802
Rich data types can corrupt the transaction store
This release fixes an issue that prevented Puppet from reporting
corrective changes when using rich data types such as
Deferred
, Binary
, and Sensitive
. PUP-10820
Environment caches string and symbol environment names differently
This release fixes an issue that resulted in Puppet caching duplicate copies of an environment. PUP-10955
Failure to fetch node definition results in bad pluginsync and cascading failure
Previously, Puppet agents would make a node definition request to
the server to find out the correct environment to run in.
This request has now been removed, and the agent saves its
last used environment in the last_run_summary.yaml
file. If the
environment is not set in the CLI or config, agents attempt
to use the environment in last_run_summary.yaml
— only if the
previous run had an agent/server environment mismatch. PUP-10216
Puppet.lookup(:current_environment) is wrong if the environment changes during convergence
This release fixes an issue where an old environment could be used if the environment had changed due to pluginsync. PUP-10308
User resource exposes hashed password when changing password or adding a user
Previously, when managing passwords with the useradd
provider, the password hash
appeared when listing running processes. Now the password is
set with the chpasswd
command that uses stdin
to
receive the password from a temporary file, so it no longer
appears in the process list. PUP-3634
The launchd service provider fails if a parsable but invalid
LaunchAgent
or
LaunchDaemon
plist
file exists
This release fixes an issue where the launchd
service provider failed if a
parsable but invalid LaunchAgent
or LaunchDaemon
plist
file exists. PUP-11164
The pkg provider cannot unhold and update package in the same run
Previously, the pkg
package
provider was unable to handle manifests where a package was
updated and marked as unhold at the same time. This is now
fixed. PUP-10956
Undefined method '[]'
for
nil:NilClass
when
handling SemanticPuppet::Dependency::UnsatisfiableGraph
Previously, the puppet module
install
command broke when dependencies
could not be resolved. Puppet now emits an error message
instead. PUP-11172