This task is in place so we can track the tasks required to prepare are systems for a move to puppet version 6. It is not envisaged that we will move to puppet6 untill at least bullseye is releases however we should try to get our code base to a level where the transition should be simple
[x] update the current infrastructure to the latest 5.5 version T265139
[] update the puppet compiler T236373
[] migrate all `cron` types to `systemd::timer::job` (the cron type is no longer a native puppet type in puppet version6)
[] Check if which other native types [[ https://puppet.com/docs/puppet/6.0/type.html#supported-type-modules-in-puppet-agent | need to be migrated ]]
[] if still using nagios migrate to puppetlabs/nagios_core as nagios types are no longer core puppet
[] migrate any scripts away from [[ https://puppet.com/docs/puppet/6.18/release_notes_puppet.html#certificate-handling-commands-deprecated-but-not-removed | deprecated CA functions ]] and [[ https://puppet.com/docs/puppet/6.18/release_notes_puppet.html#certificate-authority-subcommands-and-v1-ca-http-api | certificate authority api and subcommands ]]
[] ensure manifests use the correct name space [[ https://tickets.puppetlabs.com/browse/PUP-4242 | PUP-4242 ]]
[] Check if we prefer the chatty tidy behaviour [[ https://tickets.puppetlabs.com/browse/PUP-8667 | PUP-8667 ]]
[] drop the pluginsync config [[ https://tickets.puppetlabs.com/browse/PUP-8532 | PUP-8532 ]]
[] upgrade puppetdb servers
[] migrate puppet master away from webrick to clojure app [[ https://tickets.puppetlabs.com/browse/PUP-8591 | PUP-8591 ]]
[] migrate puppet CA (likley the same work as moving to clojure) [[ https://tickets.puppetlabs.com/browse/PUP-8912 | PUP-8912 ]]
[] update puppet agents
[] update CI jobs to have a minimum [[ https://puppet.com/docs/puppet/6.18/release_notes_puppet.html#upgrade-to-ruby-2.3-or-later | ruby version of 2.3 ]]. This implies no jessie agents
[] Remove any features or functions [[ https://puppet.com/docs/puppet/5.5/deprecated_language.html | deprecated in puppet 5.5 ]] (including hiera version3 and hiera_* functions)
Benefits to explore (some of theses benefits will be realized by updating to the latest 5.5 branch
[] explore rich_data type T236481
[] deferred functions
[] [[ https://tickets.puppetlabs.com/browse/PUP-9028 | puppet ssl command ]]
[] [[ https://puppet.com/docs/puppet/6.0/create_types_and_providers_resource_api.html | A sane API for custom type/providers ]]
[] Check if we still need to `systemd reload-daemon` our self [[ https://tickets.puppetlabs.com/browse/PUP-3483 | PUP-3483 ]]
[] [[ https://github.com/puppetlabs/puppet/pull/7310 | group_by/partition_by ]]
[] ECC keys [[ https://tickets.puppetlabs.com/browse/PUP-2606 | PUP-2606 ]]
[] Scriptable `external_trusted_facts` [[ https://tickets.puppetlabs.com/browse/PUP-9994 | PUP-9994 ]]
[] `resubmit_facts` could be usefull for cumin? [[ https://tickets.puppetlabs.com/browse/PUP-5934 | PUP-5934 ]]
[] can makr packages as manule [[ https://tickets.puppetlabs.com/browse/PUP-6631 | PUP-6631 ]] T195981