Since Puppet 6 has extracted a few built in types and their providers to external modules which they vendor as _core modules. These are:
* augeas_core https://github.com/puppetlabs/puppetlabs-augeas_core
* cron_core https://github.com/puppetlabs/puppetlabs-cron_core
* host_core https://github.com/puppetlabs/puppetlabs-host_core
* mount_core https://github.com/puppetlabs/puppetlabs-mount_core
* scheduled_task https://github.com/puppetlabs/puppetlabs-scheduled_task
* selinux_core https://github.com/puppetlabs/puppetlabs-selinux_core
* sshkeys_core https://github.com/puppetlabs/puppetlabs-sshkeys_core
* yumrepo_core https://github.com/puppetlabs/puppetlabs-yumrepo_core
* zfs_core https://github.com/puppetlabs/puppetlabs-zfs_core
* zone_core https://github.com/puppetlabs/puppetlabs-zone_core
The result is that any manifest using any of these types will fail to apply.
Steps to Reproduce:
1. Write a manifest on the server using the new modules
2. Apply it on a Gentoo machine
3. Watch the logs
(/Stage[main]/Foreman_simple_user/Foreman_simple_user::User[username]/User[username]) Ssh_authorized_key type is not available. Cannot purge SSH keys.
To apply cleanly as it did with Puppet 5
For reference, here's how Arch Linux bundles the modules: https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/puppet
I'm torn between doing new packages for this and use flags. I think I prefer new packages due to each module having it's own releases. does this need to be done for puppet-agent as well?
They are needed in the agent part. I'm also a bit torn between separate packages. I think they're only used in the bundled agent package so I'm not sure how benefit splitting it off does make, but they are independent projects with their own release cycles so it could be beneficial.
ya, that independent release cycle is the main reason. I have a way to stay notified of releases (github has a atom feed for releases for each project). So will go with that. I really need to get a second person to help with puppet packages :|
For now I've added all the modules to my personal overlay (https://github.com/ekohl/webkiller71). I didn't check the exact versions and just used the latest versions. Let me know if you want to work with my to add these types.
IMHO the default vendor directory (vendormoduledir) should be changed from /opt/puppetlabs/puppet/vendor_modules to something outside of /opt. Probably /usr/share/puppet/vendor_modules. Related to that vardir should also be changed to something in /var. Probably /var/lib/puppet.