Refs #29005 - Require theforeman/dns 7.x
fecf9c8 started to depend on parameters only present in 7.0.0, but was merged before it could be added.
Update the compatibility matrix in the README
This makes it clear that 13.x is Foreman Proxy 2.0 only.
Skip acceptance tests for remote_file on 6.14.0
In Puppet 6.13.0 and 6.14.0 the system store is not used for file content on HTTPS resources due to a regression tracked as https://tickets.puppetlabs.com/browse/PUP-10365 Since puppetversion is not available via the command line, fact() can't return it so testing for 6.14.0 isn't possible. That means the patch needs to be reverted once it's fixed.
This uses the correct variable which means it'll only listen on HTTPS as intended.
Remove all OS testing for f_p:feature
This define contains no OS logic and doesn't need facts so testing on every OS is wasting time.
Document classes using puppet-strings
This doesn't convert all classes since the installer still relies on rdoc groups. However, not all classes are public and this converts what makes sense.
The parameter hasstatus has defaulted to true since Puppet 2.7.0 and that's long been the minimum supported version. The require is already ensured in init.pp.
Introduce foreman_proxy::globals
This class is intended to allow overriding some parameters that basically never change. This makes the parameters of init.pp slightly easier to digest. It also allows testing of some modules by just including params without the entire foreman_proxy class. This makes tests faster but also more focused.
Drop group parameter on plugins
Setting the group can be useful if other processes need to read the file, but for foreman-proxy this is not the case.
Move Ruby package prefix to params
Rather than redefining the package prefix, this introduces the variable in params.pp.
Use $f_p::plugin::dynflow::external_core
Since 5bde9c7 there is a variable that explicitly sets the external core. Rather than copying the logic, this reuses the variable.
Introduce foreman_proxy::module
This define introduced an abstraction for Foreman Proxy modules slightly more explicit than just the settings_file.
Introduce foreman_proxy::provider
This is an abstraction to clearly indicate a provider is being configured. All built in providers are converted to use this.
Introduce foreman_proxy::plugin::module
This introduces a define for plugins that have a package and a config file, which is most of them.
Introduce foreman_proxy::plugin::provider
This additional abstraction makes it easier to configure plugins that are providers when they follow conventions.
Move feature and module definitions to f_p::module
This moves the definition of foreman_proxy::feature from foreman_proxy::settings_file to foreman_proxy::module. It also simplified it by only passing a $module_enabled variable. This is still needed because it needs to be in context for template().
this PR adds support for flatcar linux on the omaha smart proxy: theforeman/smart_proxy_omaha#21 We need to add this as an option to the puppet module too.
Switch AIO detection to use aio_agent_version fact
This also changes the tests to AIO paths on AIO distros.
Drop unused MySQL module fixture
c57d7fc and possible Foreman itself used this in the past, but is no longer needed.
Remove old Red Hat TFTP install methods
This module doesn't support EL 6 or < EL 7.5. To verify it does work, an acceptance test is added.
Explicitly pass in the tftp root
This makes it clearer how the variables flow.