Skip to content

Commit ac2fdb0

Browse files
Rathiosekohl
authored andcommitted
Add unmanaged Puppet Agent runmode
Fixes GH-383
1 parent 3739509 commit ac2fdb0

File tree

6 files changed

+22
-5
lines changed

6 files changed

+22
-5
lines changed

manifests/agent/service.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
$cron_enabled = false
1919
$systemd_enabled = true
2020
}
21-
'none': {
21+
'none', 'unmanaged': {
2222
$service_enabled = false
2323
$cron_enabled = false
2424
$systemd_enabled = false

manifests/agent/service/cron.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
class puppet::agent::service::cron (
44
Boolean $enabled = false,
55
) {
6-
unless 'cron' in $::puppet::unavailable_runmodes {
6+
unless $::puppet::runmode == 'unmanaged' or 'cron' in $::puppet::unavailable_runmodes {
77
if $enabled {
88
$command = pick($::puppet::cron_cmd, "${::puppet::puppet_cmd} agent --config ${::puppet::dir}/puppet.conf --onetime --no-daemonize")
99
$times = extlib::ip_to_cron($::puppet::runinterval)

manifests/agent/service/daemon.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
class puppet::agent::service::daemon (
44
Boolean $enabled = false,
55
) {
6-
unless 'service' in $::puppet::unavailable_runmodes {
6+
unless $::puppet::runmode == 'unmanaged' or 'service' in $::puppet::unavailable_runmodes {
77
if $enabled {
88
service {'puppet':
99
ensure => running,

manifests/agent/service/systemd.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
class puppet::agent::service::systemd (
44
Boolean $enabled = false,
55
) {
6-
unless 'systemd.timer' in $::puppet::unavailable_runmodes {
6+
unless $::puppet::runmode == 'unmanaged' or 'systemd.timer' in $::puppet::unavailable_runmodes {
77
exec { 'systemctl-daemon-reload-puppet':
88
refreshonly => true,
99
path => $::path,

manifests/init.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -559,7 +559,7 @@
559559
Optional[String] $autosign_source = $puppet::params::autosign_source,
560560
Variant[Integer[0],Pattern[/^\d+[smhdy]?$/]] $runinterval = $puppet::params::runinterval,
561561
Boolean $usecacheonfailure = $puppet::params::usecacheonfailure,
562-
Enum['cron', 'service', 'systemd.timer', 'none'] $runmode = $puppet::params::runmode,
562+
Enum['cron', 'service', 'systemd.timer', 'none', 'unmanaged'] $runmode = $puppet::params::runmode,
563563
Array[Enum['cron', 'service', 'systemd.timer', 'none']] $unavailable_runmodes = $puppet::params::unavailable_runmodes,
564564
Optional[String] $cron_cmd = $puppet::params::cron_cmd,
565565
Optional[String] $systemd_cmd = $puppet::params::systemd_cmd,

spec/classes/puppet_agent_spec.rb

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,23 @@
308308
it { is_expected.not_to contain_service('puppet-run.timer') }
309309
end
310310
end
311+
312+
describe 'when runmode => unmanaged' do
313+
let :params do
314+
super().merge(runmode: 'unmanaged')
315+
end
316+
317+
# For windows we specify a package provider which doesn't compile
318+
if facts[:osfamily] != 'windows'
319+
it { is_expected.to compile.with_all_deps }
320+
end
321+
it { is_expected.to contain_class('puppet::agent::service::daemon').with_enabled(false) }
322+
it { is_expected.to contain_class('puppet::agent::service::cron').with_enabled(false) }
323+
it { is_expected.to contain_class('puppet::agent::service::systemd').with_enabled(false) }
324+
it { is_expected.not_to contain_cron('puppet') }
325+
it { is_expected.not_to contain_service('puppet') }
326+
it { is_expected.not_to contain_service('puppet-run.timer') }
327+
end
311328
end
312329

313330
describe 'when unavailable_runmodes => ["cron"]' do

0 commit comments

Comments
 (0)