Puppet Platform 8

270 views
Skip to first unread message

Josh Cooper

unread,
Dec 6, 2022, 8:15:12 PM12/6/22
to Puppet Developers
Hi all,

Here are our current plans for the Puppet Platform 8 release due out in February 2023. The work for this effort is contained in https://tickets.puppetlabs.com/browse/PA-4664.

Ruby 3.2

Ruby 3.2 should be released December 25, 2022 and we plan to vendor that version in puppet-agent packages. Ruby 3.2 has several notable breaking changes that may affect Puppet extensions, such as functions, custom facts, types & providers, report processors, etc:

* Ruby 3.2 removes some deprecated classes and constants, see https://github.com/ruby/ruby/blob/v3_2_0_preview3/NEWS.md#compatibility-issues

* Ruby 3.2 vendors the ruby/openssl 3.0 gem (ruby bindings for openssl). Several OpenSSL related classes have changed, see https://github.com/ruby/openssl/blob/master/History.md#version-300

* Ruby 3.1 vendors psych 4 (ruby bindings for libyaml), which defaults to safe YAML loading. This means `YAML.load` will not load arbitrary objects or aliases, see https://bugs.ruby-lang.org/issues/17866

Support for Ruby 2.5 and 2.6 will also be dropped.

OpenSSL 3.0

OpenSSL 1.1.1 will reach EOL 2023-09-11, therefore, Puppet 8 will vendor OpenSSL 3.0. See https://www.openssl.org/policies/releasestrat.html

Ruby 3 on Windows

Ruby 3 on Windows initializes the default external encoding to UTF-8. Prior to this, Ruby used an encoding corresponding to the active code page, such as Encoding::CP1252. This change may break custom facts and types/providers that shell out or call ANSI versions of Windows APIs. See https://bugs.ruby-lang.org/issues/13488 and https://tickets.puppetlabs.com/browse/PUP-11348

Legacy Facts

By default, legacy facts will no longer be collected or sent to puppetserver. Also builtin types and providers will no longer use legacy facts to determine provider suitability. See https://groups.google.com/g/puppet-dev/c/hFIjgvOa5J0/m/-ROWsGTaBgAJ

Unchanged Resource Reporting

By default, puppet agents will no longer report on unchanged resources that were successfully managed and "insync". Doing so will dramatically reduce the amount of data sent to puppetserver and stored in puppetdb in the most common case where nothing has changed. See https://tickets.puppetlabs.com/browse/PUP-11684

Deferred Functions

The default value for the `preprocess_deferred` setting will be changed to false so that resources with deferred properties follow normal resource relationships and ordering. See https://puppet.com/docs/puppet/7/configuration.html#preprocess-deferred and https://tickets.puppetlabs.com/browse/PUP-11526

Hiera 3 Gem

The hiera 3 gem will no longer be a dependency of puppet and it will no longer be vendored in puppet-agent packages. Note this won't affect Puppet lookup functionality or modules that call the hiera, hiera_include, etc functions. It should only affect users relying on hiera 3 backends that extend the `Hiera::Backend` class. Anyone affected by this change can manually install the hiera gem using the `puppetserver_gem` provider. See https://tickets.puppetlabs.com/browse/PA-4646

Java 8

Puppet will drop support for Java 8, as mentioned in https://groups.google.com/g/puppet-dev/c/yg0YjNwhnTg/m/URqRFzanAgAJ

Puppet Modules

In order to test a Puppet module against Puppet 8, you'll need to remove the puppet-modules-gems dependencies from your Gemfile. This can be done automatically using "pdk update --template-ref 2.7.0" If you're not using the pdk, then look for future communication about how to migrate your modules in preparation for Puppet 8.

Josh
Reply all
Reply to author
Forward
0 new messages