List of issues and observations when moving from PE 2019 to PE 2021

Puppet 6 to Puppet 7 (although Puppet 6.x agents will work on PE2021)
Facter 3 to Facter 4
JRuby to JRbuy
Viewing user access token from the PE console
New Orchestrator scheduling API
Using the RBAC API to set the disclaimer text on the console login page

EL5, Debian 8 and 9, SLES 11, Ubuntu 14.04 and 16.04, Solaris 10, MacOSx 10.14, Fedora 30, 31, 32, 34 and Windows 2008 agents

Upgrading from Puppet 6 to 7 
Run "puppet facts diff" before upgrading agents from 6 to 7

Puppet 7 Agent deprecations
func3x_check setting 
master_used report parameter
facterng feature flag
held removed from apt provider
DirectoryService, Puppet::Provider::NameService, TypeCalculator, Puppet.define_settings Methods
Puppet::Resource methods; set_default_parameters, validate_complete, Type.assign_parameter_values
Legacy authorization, auth.conf 
Puppet key, cert, and status commands
Ruby 2.3 and 2.4

PE Agents
On a first puppet run to PE2021 with agent v6.x you may see the following error message:
error while resolving custom fact "agent_status_check": undefined method `enabled?' for PEStatusCheck:Module
The message doesn't appear after subsequent runs and may be avoided if upgrading to agent v7.x ahead of the first run. 

In PE 2021.4, warning messages were added to increase awareness that the length of fact names, values and number of facts, and top level facts affect performance. If you want to ignore the messages, you’ll have to edit the puppet.conf on the agents. pe2021-rs is identical to pe2019-rs as far as resources and os config goes. PE and Facter are different but I expect to see similar results in performance and puppet runs.

If you use patch-management, be aware of the following:
Before upgrading, you might want to back up existing patching log files, located on patch-managed nodes at /var/cache/pe_patch/run_history or C:\ProgramData\pe_patch. Existing log files are deleted when the patching directory is moved.

After upgrading, you must run Puppet on patch-managed nodes before running the patching task again, or the task fails.

For more details see:

OLD (but may still be relevant)

List of issues and observations when moving from PE 2018 to PE 2019

  • By default, PE 2019 uses the intermediate CA architecture. Pre 6.x agents can not be used against new servers. 
  • Puppet built-in types has moved into external modules. The fix is to add the proper module to your Puppetfile. 
  • The node name search bar on the Nodes page in the PE web console does not respond to the Enter key to search for a node. You must select Submit manually.
  • Code Management 
    • Deployment config files will need to be updated from the PE 2018 server instance to the PE 2019 server instance; specifically, API service-url, token-file and certificate-file. Separation of config files is encouraged when running 'puppet code deploy' by using the '--config-file=<path>' option to avoid deploying development code on your PE 2018 server instance. See Code Deployment for more info. 
    • Code Manager and r10k do not identify the default branch for module repositories. When using Code Manager or r10k to deploy modules from a Git source, the default branch of the source repository is always assumed to be master. If the module repository uses a default branch that is not master, an error occurs. To work around this issue, specify the default branch with the ref: key in the Puppetfile. 
    • If deleting a branch from a control repository with lockless deploys enabled, some artifacts can remain on disk and increase disk usage. 
    • Deploying code from the command line or API with the --wait flag produces a timeout error, even though the code deploy completes. 
Article number: 
Last updated: 
November 1, 2022