List of issues and observations when moving from PE 2021 to PE 2023
Puppet Enterprise component version releases.
PE | Agent | Facter | Hiera | Ruby | OpenSSL | PE Server | DB | r10k | Bolt | PostgreSQL | Java | Nginx |
2023.8.0 | 8.8.1 | 4.8.0 | 3.12.0 | 3.2.4 | 3.0.14 | 8.6.3 | 8.7.0 | 4.1.0 | 3.30 | 14.13 | 17.0.12.7 | 1.26.2 |
2021.7.9 | 7.32.1 | 4.8.0 | 3.12.0 | 2.7.8 | 1.1.1v | 7.17.2 | 7.19.1 | 3.16.2 | 3.30 | 14.13 | 11.00.24.8 | 1.26.2 |
Puppet 8:
https://www.puppet.com/docs/puppet/8/release_notes_puppet https://www.puppet.com/docs/pe/2023.8/upgrade_cautions#upgrade_cautions
Strict mode enabled by default. The strict mode setting can be set to "warning" instead of "error" on your PE server, please email the Puppet Infrastructure team if you would like this change.
Legacy facts are deprecated. Legacy facts can be re-enabled by setting include_legacy_facts=true
in puppet.conf on each agent.
r10k/Code Manager will not recognize 'master' as the default branch. It must be specified, or specify the default branch with the ref:
key in the Puppetfile.
Ruby 3.2 has several notable breaking changes that may affect Puppet extensions, such as functions, custom facts, types & providers, report processors, etc. For a complete list visit: https://github.com/puppetlabs/puppet/wiki/Puppet-8-Compatibility#ruby-32-compatibility
environment.conf and config_version no longer work. In the base directory of your environment’s control repository contains a file, environment.conf and it has a setting, config_version, that tries to run git to help display “useful” information during a puppet run. It originates from the base template Puppet provided for a standard env repo and now it no longer works. https://github.com/puppetlabs/control-repo
More info on environment.conf can be found here: https://www.puppet.com/docs/puppet/8/config_file_environment.html
Supported agent platforms:
https://www.puppet.com/docs/pe/2023.8/supported_operating_systems#supported_operating_systems_and_devices-supported-agent-platforms
Platform and agent deprecations:
https://www.puppet.com/docs/pe/2023.8/upgrade_cautions#eol_os
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 9.2.17.0 to JRbuy 9.3.4.0
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
Deprecations:
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.
FACTS Limit
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.
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:
https://puppet.com/docs/pe/2021.7/release_notes_pe_index.html
https://puppet.com/docs/puppet/7/release_notes_osp.html
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.
- https://puppet.com/docs/puppet/6.18/type.html#puppet-60-type-changes
- Anything not included in the puppet-agent will need to be added to Puppetfile
- Anything moved out (including the bits in the puppet-agent) will need to be included in .fixtures.yml if doing rspec testing
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.