Showing with 78 additions and 56 deletions.
  1. +8 −0 CHANGELOG.md
  2. +55 −49 README.md
  3. +4 −4 manifests/init.pp
  4. +1 −1 manifests/server.pp
  5. +1 −1 manifests/server/puppetserver.pp
  6. +1 −1 metadata.json
  7. +8 −0 spec/classes/puppet_server_puppetserver_spec.rb
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## [16.5.0](https://github.com/theforeman/puppet-puppet/tree/16.5.0) (2023-02-21)

[Full Changelog](https://github.com/theforeman/puppet-puppet/compare/16.4.0...16.5.0)

**Implemented enhancements:**

- Fixes [\#35728](https://projects.theforeman.org/issues/35728) - Disable telemetry by default [\#851](https://github.com/theforeman/puppet-puppet/pull/851) ([ekohl](https://github.com/ekohl))

## [16.4.0](https://github.com/theforeman/puppet-puppet/tree/16.4.0) (2023-02-02)

[Full Changelog](https://github.com/theforeman/puppet-puppet/compare/16.3.0...16.4.0)
Expand Down
104 changes: 55 additions & 49 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,56 +98,60 @@ or as part of the Foreman installer.
As a parameterized class, all the configurable options can be overridden from your
wrapper classes or even your ENC (if it supports param classes). For example:

# Agent and cron (or daemon):
class { '::puppet': runmode => 'cron' }

# Agent and puppetmaster:
class { '::puppet': server => true }

# You want to use git?
class { '::puppet':
server => true
server_git_repo => true
}

# Maybe you're using gitolite, new hooks, and a different port?
class { '::puppet':
server => true
server_port => 8141,
server_git_repo => true,
server_git_repo_path => '/var/lib/gitolite/repositories/puppet.git',
server_post_hook_name => 'post-receive.puppet',
server_post_hook_content => 'puppetserver/post-hook.puppet',
}

# Configure master without Foreman integration
class { '::puppet':
server => true,
server_foreman => false,
server_reports => 'store',
server_external_nodes => '',
}

# Want to integrate with an existing PuppetDB?
class { '::puppet':
server => true,
server_reports => 'puppetdb,foreman',
server_storeconfigs => true,
}
class { 'puppet::server::puppetdb':
server => 'mypuppetdb.example.com',
}
```puppet
# Agent and cron (or daemon):
class { 'puppet': runmode => 'cron' }
# Agent and puppetmaster:
class { 'puppet': server => true }
# You want to use git?
class { 'puppet':
server => true
server_git_repo => true
}
# Maybe you're using gitolite, new hooks, and a different port?
class { 'puppet':
server => true
server_port => 8141,
server_git_repo => true,
server_git_repo_path => '/var/lib/gitolite/repositories/puppet.git',
server_post_hook_name => 'post-receive.puppet',
server_post_hook_content => 'puppetserver/post-hook.puppet',
}
# Configure master without Foreman integration
class { 'puppet':
server => true,
server_foreman => false,
server_reports => 'store',
server_external_nodes => '',
}
# Want to integrate with an existing PuppetDB?
class { 'puppet':
server => true,
server_reports => 'puppetdb,foreman',
server_storeconfigs => true,
}
class { 'puppet::server::puppetdb':
server => 'mypuppetdb.example.com',
}
```

Look in _init.pp_ for what can be configured this way, see Contributing if anything
doesn't work.

To use this in standalone mode, edit a file (e.g. install.pp), put in a class resource,
as per the examples above, and the execute _puppet apply_ e.g:

cat > install.pp <<EOF
class { '::puppet': server => true }
EOF
puppet apply install.pp --modulepath /path_to/extracted_tarball
```sh
cat > install.pp <<EOF
class { '::puppet': server => true }
EOF
puppet apply install.pp --modulepath /path_to/extracted_tarball
```

# Advanced scenarios

Expand All @@ -165,12 +169,14 @@ For puppetserver, this HTTP instance accepts **ALL** connections and no further
configured. Allowed hosts should be tightly controlled; anyone with access to an allowed
host can access all client catalogues and client certificates.**

# Configure an HTTP puppetmaster vhost in addition to the standard SSL vhost
class { '::puppet':
server => true,
server_http => true,
server_http_port => 8130, # default: 8139
}
```puppet
# Configure an HTTP puppetmaster vhost in addition to the standard SSL vhost
class { '::puppet':
server => true,
server_http => true,
server_http_port => 8130, # default: 8139
}
```

## Puppet Server configuration

Expand Down
8 changes: 4 additions & 4 deletions manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -455,9 +455,9 @@
# If set to false, compiler and function metrics will not be available, (eg. when enabling graphite metrics)
#
# $server_puppetserver_telemetry:: Enable Dropsonde telemetry.
# Defaults to true, matching defaults in Puppetserver 7.
# If set to false, will disable module metrics submission via Dropsonde.
# Note that is only valid since Puppetserver 7.
# Undef means disabled while booleans are explicit opt-in or opt-out.
# This is different from Puppetserver's default values.
# Only valid since Puppetserver 7.
#
# $server_metrics_jmx_enable:: Enable or disable JMX metrics reporter. Defaults to true
#
Expand Down Expand Up @@ -730,7 +730,7 @@
Integer[0] $server_web_idle_timeout = $puppet::params::server_web_idle_timeout,
Boolean $server_puppetserver_metrics = true,
Boolean $server_puppetserver_profiler = true,
Boolean $server_puppetserver_telemetry = true,
Optional[Boolean] $server_puppetserver_telemetry = undef,
Boolean $server_metrics_jmx_enable = $puppet::params::server_metrics_jmx_enable,
Boolean $server_metrics_graphite_enable = $puppet::params::server_metrics_graphite_enable,
String $server_metrics_graphite_host = $puppet::params::server_metrics_graphite_host,
Expand Down
2 changes: 1 addition & 1 deletion manifests/server.pp
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,7 @@
Boolean $allow_header_cert_info = $puppet::server_allow_header_cert_info,
Optional[Boolean] $puppetserver_metrics = $puppet::server_puppetserver_metrics,
Boolean $puppetserver_profiler = $puppet::server_puppetserver_profiler,
Boolean $puppetserver_telemetry = $puppet::server_puppetserver_telemetry,
Optional[Boolean] $puppetserver_telemetry = $puppet::server_puppetserver_telemetry,
Boolean $metrics_jmx_enable = $puppet::server_metrics_jmx_enable,
Boolean $metrics_graphite_enable = $puppet::server_metrics_graphite_enable,
String $metrics_graphite_host = $puppet::server_metrics_graphite_host,
Expand Down
2 changes: 1 addition & 1 deletion manifests/server/puppetserver.pp
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@
Boolean $server_environment_class_cache_enabled = $puppet::server::environment_class_cache_enabled,
Optional[Boolean] $server_metrics = $puppet::server::puppetserver_metrics,
Boolean $server_profiler = $puppet::server::puppetserver_profiler,
Boolean $server_telemetry = $puppet::server::puppetserver_telemetry,
Boolean $server_telemetry = pick($puppet::server::puppetserver_telemetry, false),
Boolean $metrics_jmx_enable = $puppet::server::metrics_jmx_enable,
Boolean $metrics_graphite_enable = $puppet::server::metrics_graphite_enable,
String $metrics_graphite_host = $puppet::server::metrics_graphite_host,
Expand Down
2 changes: 1 addition & 1 deletion metadata.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "theforeman-puppet",
"version": "16.4.0",
"version": "16.5.0",
"author": "theforeman",
"summary": "Puppet agent and server configuration",
"license": "GPL-3.0+",
Expand Down
8 changes: 8 additions & 0 deletions spec/classes/puppet_server_puppetserver_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,14 @@
context 'when server_puppetserver_version == 7.0.0' do
let(:params) { super().merge(server_puppetserver_version: '7.0.0') }
context 'with default parameters' do
it {
should contain_file(puppetserver_conf)
.with_content(/^dropsonde: \{\n # enable or disable telemetry\n enabled: false/)
}
end

context 'when server_telemetry => true' do
let(:params) { super().merge(server_puppetserver_telemetry: true) }
it {
should contain_file(puppetserver_conf)
.with_content(/^dropsonde: \{\n # enable or disable telemetry\n enabled: true/)
Expand Down