-
Notifications
You must be signed in to change notification settings - Fork 260
Open
Description
Scenario
For module users that use resource-style declarations, integration classes become unusable due to the require datadog_agent declaration in each integration class.
Consider the following snippet:
$package_name = 'datadog-agent'
# Install the package
package { $package_name:
ensure => present,
provider => $package_provider,
install_options => $install_options,
}
# Implement the module
class { 'datadog_agent':
dd_user => $dd_user,
dd_group => $dd_group,
manage_install => false,
require => Package[$package_name],
}
class { 'datadog_agent::integrations::disk':
use_mount => 'no',
filesystem_exclude => [
'none',
'tmpfs',
'tracefs',
'squashfs',
],
}This implementation results in
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Evaluation Error: Error while evaluating a Resource Statement, Evaluation Error: Error while evaluating a Resource Statement, Duplicate declaration: Package[datadog-agent] is already declared at (file: /etc/puppetlabs/code/environments/test/modules/datadog_agent/manifests/init.pp, line: 491); cannot redeclare...
Proposal
The require datadog_agent statement in each module is not necessary, especially given many of the resources already contain statements to require datadog_agent::params::package_name.
Additional Background
My org must implement additional logic to install the datadog-agent package outside of this module, mainly due to limitations of the module (See #742 and #747) and would like to utilize the integration classes as well.
hgf-nharmann
Metadata
Metadata
Assignees
Labels
No labels