Skip to content

Commit

Permalink
Fixes #35728 - Disable telemetry by default
Browse files Browse the repository at this point in the history
Puppetserver 7.0 adopted opt-out telemetry[1], meaning telemetry is sent
by default. Foreman traditionally has had a policy where no telemetry
was sent by default. Disabling the telemetry would bring align
Puppetserver to this policy.

It uses Optional[Boolean] so the Foreman installer can explicitly record
the users answer if they choose anything, where undef means whatever
the module thinks is best.

[1]: https://puppet.com/docs/puppet/7/server/puppet_server_usage_telemetry.html
  • Loading branch information
ekohl committed Feb 21, 2023
1 parent a963f0a commit 95788e3
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 6 deletions.
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
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

0 comments on commit 95788e3

Please sign in to comment.