From dc99d1d5588fae6de0cb4e287f5942aa351974e0 Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Mon, 1 Sep 2025 09:14:52 +0100 Subject: [PATCH 01/25] enable management of facter blocking caching --- manifests/agent.pp | 5 +-- manifests/agent/facter.pp | 69 +++++++++++++++++++++++++++++++++++++++ manifests/init.pp | 9 +++++ 3 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 manifests/agent/facter.pp diff --git a/manifests/agent.pp b/manifests/agent.pp index 8ad790c9b..f26bd0fc3 100644 --- a/manifests/agent.pp +++ b/manifests/agent.pp @@ -3,8 +3,9 @@ class puppet::agent { contain puppet::agent::install contain puppet::agent::config + contain puppet::agent::facter contain puppet::agent::service - Class['puppet::agent::install'] ~> Class['puppet::agent::config', 'puppet::agent::service'] - Class['puppet::config', 'puppet::agent::config'] ~> Class['puppet::agent::service'] + Class['puppet::agent::install'] ~> Class['puppet::agent::config', 'puppet::agent::facter', 'puppet::agent::service'] + Class['puppet::config', 'puppet::agent::config', 'puppet::agent::facter'] ~> Class['puppet::agent::service'] } diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp new file mode 100644 index 000000000..f56650082 --- /dev/null +++ b/manifests/agent/facter.pp @@ -0,0 +1,69 @@ +# Puppet agent facter configuration +# @api private +class puppet::agent::facter inherits puppet::config { + puppet::config::agent { + 'blocklist': value => $puppet::facter_blocklist; + 'cachelist': value => $puppet::facter_cachelist; + 'cache_ttl': value => $puppet::cache_ttl; + } + + if versioncmp(fact('aio_agent_version'),'7') >= 0 { + file { '/etc/puppetlabs/facter': + ensure => directory, + } + + Hocon_setting { + path => '/etc/puppetlabs/facter/facter.conf', + require => File['/etc/puppetlabs/facter'], + } + + + if $blocklist { + hocon_setting { 'blocklist facts group': + ensure => present, + setting => 'fact-groups.blocked-facts', + value => $blocklist, + type => 'array', + } + -> hocon_setting { 'blocklist facts': + ensure => present, + setting => 'facts.blocklist', + value => ['blocked-facts'], + type => 'array', + } + } else { + hocon_setting { 'blocklist facts group': + ensure => absent, + setting => 'fact-groups.blocked-facts', + } + hocon_setting { 'blocklist facts': + ensure => absent, + setting => 'facts.blocklist', + } + } + if $cachelist { + hocon_setting { 'cachelist facts group': + ensure => present, + setting => 'fact-groups.cached-facts', + value => $cachelist, + type => 'array', + } + -> hocon_setting { 'cachelist facts': + ensure => present, + setting => 'facts.ttls', + value => [{'cached-facts' => $cache_ttl }], + type => 'array', + } + } else { + hocon_setting { 'cachelist facts group': + ensure => absent, + setting => 'fact-groups.cached-facts', + } + hocon_setting { 'cachelist facts': + ensure => absent, + setting => 'facts.ttls', + } + } + } +} + diff --git a/manifests/init.pp b/manifests/init.pp index 524736826..99932a1a9 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -188,6 +188,12 @@ # $agent_additional_settings:: A hash of additional agent settings. # Example: {stringify_facts => true} # +# $facter_blocklist:: A hash of facts that puppet agent will block from usage +# +# $facter_cachelist:: A hash of facts that puppet agent will cache +# +# $cache_ttl:: puppet agent fact time to live +# # $client_certname:: The node's certificate name, and the unique # identifier it uses when requesting catalogs. # @@ -616,6 +622,9 @@ Integer[0] $systemd_randomizeddelaysec = $puppet::params::systemd_randomizeddelaysec, Boolean $agent_noop = $puppet::params::agent_noop, Boolean $agent_default_schedules = $puppet::params::agent_default_schedules, + Optional[Array[String]] $facter_blocklist = undef, + Optional[Array[String]] $facter_cachelist = undef, + String $cache_ttl = '1 day', Boolean $show_diff = $puppet::params::show_diff, Optional[Stdlib::HTTPUrl] $module_repository = $puppet::params::module_repository, Optional[Integer[0]] $http_connect_timeout = $puppet::params::http_connect_timeout, From 9ee1f6c4e05de55eeb3e8a6b899dbcf07a1accad Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Mon, 1 Sep 2025 12:51:49 +0100 Subject: [PATCH 02/25] Test parameter location to try to remove top scope depeendcy --- manifests/agent/facter.pp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp index f56650082..0ea884fc1 100644 --- a/manifests/agent/facter.pp +++ b/manifests/agent/facter.pp @@ -1,10 +1,10 @@ # Puppet agent facter configuration # @api private class puppet::agent::facter inherits puppet::config { - puppet::config::agent { - 'blocklist': value => $puppet::facter_blocklist; - 'cachelist': value => $puppet::facter_cachelist; - 'cache_ttl': value => $puppet::cache_ttl; + puppet::config::agent::facter { + 'blocklist': value => $puppet::config::facter_blocklist; + 'cachelist': value => $puppet::config::facter_cachelist; + 'cache_ttl': value => $puppet::config::cache_ttl; } if versioncmp(fact('aio_agent_version'),'7') >= 0 { From 8e3f8144e18f3d14ffbf558db78bcbf2279bbbe9 Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Mon, 1 Sep 2025 21:03:09 +0000 Subject: [PATCH 03/25] corrected fact formatting inline with style guide --- manifests/agent/facter.pp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp index 0ea884fc1..720a565b4 100644 --- a/manifests/agent/facter.pp +++ b/manifests/agent/facter.pp @@ -18,11 +18,11 @@ } - if $blocklist { + if $facts['blocklist'] { hocon_setting { 'blocklist facts group': ensure => present, setting => 'fact-groups.blocked-facts', - value => $blocklist, + value => $facts['blocklist'], type => 'array', } -> hocon_setting { 'blocklist facts': @@ -41,17 +41,17 @@ setting => 'facts.blocklist', } } - if $cachelist { + if $facts['cachelist'] { hocon_setting { 'cachelist facts group': ensure => present, setting => 'fact-groups.cached-facts', - value => $cachelist, + value => $facts['cachelist'], type => 'array', } -> hocon_setting { 'cachelist facts': ensure => present, setting => 'facts.ttls', - value => [{'cached-facts' => $cache_ttl }], + value => [{'cached-facts' => $facts['cache_ttl'] }], type => 'array', } } else { From 15f6331365e3e249ab6945d286350c6a58d1993b Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Mon, 1 Sep 2025 21:12:13 +0000 Subject: [PATCH 04/25] set variables back to parameters --- manifests/agent/facter.pp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp index 720a565b4..82a219fa8 100644 --- a/manifests/agent/facter.pp +++ b/manifests/agent/facter.pp @@ -18,11 +18,11 @@ } - if $facts['blocklist'] { + if $puppet::config::blocklist { hocon_setting { 'blocklist facts group': ensure => present, setting => 'fact-groups.blocked-facts', - value => $facts['blocklist'], + value => $puppet::config::blocklist, type => 'array', } -> hocon_setting { 'blocklist facts': @@ -41,17 +41,17 @@ setting => 'facts.blocklist', } } - if $facts['cachelist'] { + if $puppet::config::cachelist { hocon_setting { 'cachelist facts group': ensure => present, setting => 'fact-groups.cached-facts', - value => $facts['cachelist'], + value => $puppet::config::cachelist, type => 'array', } -> hocon_setting { 'cachelist facts': ensure => present, setting => 'facts.ttls', - value => [{'cached-facts' => $facts['cache_ttl'] }], + value => [{'cached-facts' => $puppet::config::cache_ttl }], type => 'array', } } else { From b4aa199a30348f808503ed713a65ddb443dccf79 Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Mon, 1 Sep 2025 21:31:45 +0000 Subject: [PATCH 05/25] change variable root to params.pp --- manifests/agent/facter.pp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp index 82a219fa8..0589f706e 100644 --- a/manifests/agent/facter.pp +++ b/manifests/agent/facter.pp @@ -1,10 +1,10 @@ # Puppet agent facter configuration # @api private -class puppet::agent::facter inherits puppet::config { +class puppet::agent::facter inherits puppet::params { puppet::config::agent::facter { - 'blocklist': value => $puppet::config::facter_blocklist; - 'cachelist': value => $puppet::config::facter_cachelist; - 'cache_ttl': value => $puppet::config::cache_ttl; + 'blocklist': value => $puppet::params::facter_blocklist; + 'cachelist': value => $puppet::params::facter_cachelist; + 'cache_ttl': value => $puppet::params::cache_ttl; } if versioncmp(fact('aio_agent_version'),'7') >= 0 { @@ -18,11 +18,11 @@ } - if $puppet::config::blocklist { + if $puppet::params::blocklist { hocon_setting { 'blocklist facts group': ensure => present, setting => 'fact-groups.blocked-facts', - value => $puppet::config::blocklist, + value => $puppet::params::blocklist, type => 'array', } -> hocon_setting { 'blocklist facts': @@ -41,17 +41,17 @@ setting => 'facts.blocklist', } } - if $puppet::config::cachelist { + if $puppet::params::cachelist { hocon_setting { 'cachelist facts group': ensure => present, setting => 'fact-groups.cached-facts', - value => $puppet::config::cachelist, + value => $puppet::params::cachelist, type => 'array', } -> hocon_setting { 'cachelist facts': ensure => present, setting => 'facts.ttls', - value => [{'cached-facts' => $puppet::config::cache_ttl }], + value => [{'cached-facts' => $puppet::params::cache_ttl }], type => 'array', } } else { From 15253e83ce8b8c0dde32aefeb6e01b3b63135c51 Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Mon, 1 Sep 2025 21:36:37 +0000 Subject: [PATCH 06/25] define facter parameters for use --- manifests/init.pp | 6 +++--- manifests/params.pp | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/manifests/init.pp b/manifests/init.pp index 99932a1a9..d2bb15d7b 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -622,9 +622,9 @@ Integer[0] $systemd_randomizeddelaysec = $puppet::params::systemd_randomizeddelaysec, Boolean $agent_noop = $puppet::params::agent_noop, Boolean $agent_default_schedules = $puppet::params::agent_default_schedules, - Optional[Array[String]] $facter_blocklist = undef, - Optional[Array[String]] $facter_cachelist = undef, - String $cache_ttl = '1 day', + Optional[Array[String]] $facter_blocklist = $puppet::params::facter_blocklist, + Optional[Array[String]] $facter_cachelist = $puppet::params::facter_cachelist, + String $cache_ttl = $puppet::params::cache_ttl, Boolean $show_diff = $puppet::params::show_diff, Optional[Stdlib::HTTPUrl] $module_repository = $puppet::params::module_repository, Optional[Integer[0]] $http_connect_timeout = $puppet::params::http_connect_timeout, diff --git a/manifests/params.pp b/manifests/params.pp index 9426ba944..50c8e1070 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -34,6 +34,9 @@ $dns_alt_names = [] $use_srv_records = false $agent_default_schedules = false + $facter_blocklist = undef + $facter_cachelist = undef + $cache_ttl = '1 day', $srv_domain = fact('networking.domain') From 557c88c598817e27d1bc646b124ea0f6d1c730fb Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Mon, 1 Sep 2025 21:40:25 +0000 Subject: [PATCH 07/25] strip trailing parameter comma --- manifests/params.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/params.pp b/manifests/params.pp index 50c8e1070..697e3c14f 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -36,7 +36,7 @@ $agent_default_schedules = false $facter_blocklist = undef $facter_cachelist = undef - $cache_ttl = '1 day', + $cache_ttl = '1 day' $srv_domain = fact('networking.domain') From b7fec5b88cef04529407b495fa92e7a1a225c633 Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Mon, 1 Sep 2025 22:49:23 +0000 Subject: [PATCH 08/25] includ hocon module as dependency --- metadata.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/metadata.json b/metadata.json index d500b6619..c67f3d539 100644 --- a/metadata.json +++ b/metadata.json @@ -31,6 +31,10 @@ "name": "puppet/systemd", "version_requirement": ">= 2.9.0 < 9.0.0" } + { + "name": "puppetlabs/hocon", + "version_requirement": ">= 1.1.0 < 2.0.0" + } ], "requirements": [ { From 65c49435aa276a084f2e25deebcb78e5a3096841 Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Mon, 1 Sep 2025 23:05:55 +0000 Subject: [PATCH 09/25] formatting and linting tidy --- manifests/agent/facter.pp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp index 0589f706e..00d973dbe 100644 --- a/manifests/agent/facter.pp +++ b/manifests/agent/facter.pp @@ -1,18 +1,13 @@ # Puppet agent facter configuration # @api private class puppet::agent::facter inherits puppet::params { - puppet::config::agent::facter { - 'blocklist': value => $puppet::params::facter_blocklist; - 'cachelist': value => $puppet::params::facter_cachelist; - 'cache_ttl': value => $puppet::params::cache_ttl; - } if versioncmp(fact('aio_agent_version'),'7') >= 0 { file { '/etc/puppetlabs/facter': ensure => directory, } - Hocon_setting { + hocon_setting { 'facter.confi': path => '/etc/puppetlabs/facter/facter.conf', require => File['/etc/puppetlabs/facter'], } @@ -66,4 +61,3 @@ } } } - From 3323c41ba402c42b83bb704307e8d643bb7d7549 Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Tue, 2 Sep 2025 07:31:08 +0100 Subject: [PATCH 10/25] declare variables directly in facter.pp --- manifests/agent/facter.pp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp index 00d973dbe..e556414fb 100644 --- a/manifests/agent/facter.pp +++ b/manifests/agent/facter.pp @@ -1,7 +1,11 @@ # Puppet agent facter configuration # @api private -class puppet::agent::facter inherits puppet::params { - +class puppet::agent::facter ( + Optional[Array[String]] $blocklist = undef, + Optional[Array[String]] $cachelist = undef, + String $cache_ttl = '1 day', +) { + notify {"Running Facter Manifest":} if versioncmp(fact('aio_agent_version'),'7') >= 0 { file { '/etc/puppetlabs/facter': ensure => directory, @@ -13,11 +17,11 @@ } - if $puppet::params::blocklist { + if $blocklist { hocon_setting { 'blocklist facts group': ensure => present, setting => 'fact-groups.blocked-facts', - value => $puppet::params::blocklist, + value => $blocklist, type => 'array', } -> hocon_setting { 'blocklist facts': @@ -36,17 +40,17 @@ setting => 'facts.blocklist', } } - if $puppet::params::cachelist { + if $cachelist { hocon_setting { 'cachelist facts group': ensure => present, setting => 'fact-groups.cached-facts', - value => $puppet::params::cachelist, + value => $cachelist, type => 'array', } -> hocon_setting { 'cachelist facts': ensure => present, setting => 'facts.ttls', - value => [{'cached-facts' => $puppet::params::cache_ttl }], + value => [{'cached-facts' => $cache_ttl }], type => 'array', } } else { From 04439aa8ceb0098dc30593cd1f3c6165e8024a42 Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Tue, 2 Sep 2025 07:32:21 +0100 Subject: [PATCH 11/25] remove facter_blocklist parameters from class scope --- manifests/init.pp | 9 --------- manifests/params.pp | 3 --- 2 files changed, 12 deletions(-) diff --git a/manifests/init.pp b/manifests/init.pp index d2bb15d7b..524736826 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -188,12 +188,6 @@ # $agent_additional_settings:: A hash of additional agent settings. # Example: {stringify_facts => true} # -# $facter_blocklist:: A hash of facts that puppet agent will block from usage -# -# $facter_cachelist:: A hash of facts that puppet agent will cache -# -# $cache_ttl:: puppet agent fact time to live -# # $client_certname:: The node's certificate name, and the unique # identifier it uses when requesting catalogs. # @@ -622,9 +616,6 @@ Integer[0] $systemd_randomizeddelaysec = $puppet::params::systemd_randomizeddelaysec, Boolean $agent_noop = $puppet::params::agent_noop, Boolean $agent_default_schedules = $puppet::params::agent_default_schedules, - Optional[Array[String]] $facter_blocklist = $puppet::params::facter_blocklist, - Optional[Array[String]] $facter_cachelist = $puppet::params::facter_cachelist, - String $cache_ttl = $puppet::params::cache_ttl, Boolean $show_diff = $puppet::params::show_diff, Optional[Stdlib::HTTPUrl] $module_repository = $puppet::params::module_repository, Optional[Integer[0]] $http_connect_timeout = $puppet::params::http_connect_timeout, diff --git a/manifests/params.pp b/manifests/params.pp index 697e3c14f..9426ba944 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -34,9 +34,6 @@ $dns_alt_names = [] $use_srv_records = false $agent_default_schedules = false - $facter_blocklist = undef - $facter_cachelist = undef - $cache_ttl = '1 day' $srv_domain = fact('networking.domain') From 5b11968c699b3913c70b8b007150f9b6ed6d7149 Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Tue, 2 Sep 2025 08:56:07 +0100 Subject: [PATCH 12/25] syntax tidy up --- manifests/agent/facter.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp index e556414fb..69b19ef57 100644 --- a/manifests/agent/facter.pp +++ b/manifests/agent/facter.pp @@ -5,7 +5,7 @@ Optional[Array[String]] $cachelist = undef, String $cache_ttl = '1 day', ) { - notify {"Running Facter Manifest":} + if versioncmp(fact('aio_agent_version'),'7') >= 0 { file { '/etc/puppetlabs/facter': ensure => directory, From fe715e57771db9d7108ddee14389f277ac4435b8 Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Tue, 2 Sep 2025 09:44:39 +0100 Subject: [PATCH 13/25] add missing comma to new dependency definition --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index c67f3d539..a7b6bd36d 100644 --- a/metadata.json +++ b/metadata.json @@ -30,7 +30,7 @@ { "name": "puppet/systemd", "version_requirement": ">= 2.9.0 < 9.0.0" - } + }, { "name": "puppetlabs/hocon", "version_requirement": ">= 1.1.0 < 2.0.0" From 57a59e434f3d709e0c0d8d562c8224b5f07bd915 Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Tue, 2 Sep 2025 09:46:37 +0100 Subject: [PATCH 14/25] syntax clean up --- manifests/agent.pp | 2 +- manifests/agent/facter.pp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/manifests/agent.pp b/manifests/agent.pp index f26bd0fc3..5b619f987 100644 --- a/manifests/agent.pp +++ b/manifests/agent.pp @@ -7,5 +7,5 @@ contain puppet::agent::service Class['puppet::agent::install'] ~> Class['puppet::agent::config', 'puppet::agent::facter', 'puppet::agent::service'] - Class['puppet::config', 'puppet::agent::config', 'puppet::agent::facter'] ~> Class['puppet::agent::service'] + Class['puppet::config', 'puppet::agent::config'] ~> Class['puppet::agent::service'] } diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp index 69b19ef57..48492e515 100644 --- a/manifests/agent/facter.pp +++ b/manifests/agent/facter.pp @@ -17,7 +17,7 @@ } - if $blocklist { + if $::blocklist { hocon_setting { 'blocklist facts group': ensure => present, setting => 'fact-groups.blocked-facts', From 33439fd1f35d1d31b615f58010480b57db97b576 Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Tue, 2 Sep 2025 09:49:32 +0100 Subject: [PATCH 15/25] strip empty line, style compliance --- manifests/agent/facter.pp | 1 - 1 file changed, 1 deletion(-) diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp index 48492e515..e07ab6f02 100644 --- a/manifests/agent/facter.pp +++ b/manifests/agent/facter.pp @@ -16,7 +16,6 @@ require => File['/etc/puppetlabs/facter'], } - if $::blocklist { hocon_setting { 'blocklist facts group': ensure => present, From 6ecd129433f1c1d1a16207aa5b22759d15d62f7c Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Tue, 2 Sep 2025 09:55:55 +0100 Subject: [PATCH 16/25] correct additional white space, style compliance --- manifests/agent/facter.pp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp index e07ab6f02..2a62b3f1d 100644 --- a/manifests/agent/facter.pp +++ b/manifests/agent/facter.pp @@ -11,12 +11,12 @@ ensure => directory, } - hocon_setting { 'facter.confi': + hocon_setting { 'facter.confi': path => '/etc/puppetlabs/facter/facter.conf', require => File['/etc/puppetlabs/facter'], } - if $::blocklist { + if $::blocklist { hocon_setting { 'blocklist facts group': ensure => present, setting => 'fact-groups.blocked-facts', From da167fd65822843a5c006dbf5230b515aaa66199 Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Tue, 2 Sep 2025 09:58:04 +0100 Subject: [PATCH 17/25] removed top scope test value for lint testing --- manifests/agent/facter.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp index 2a62b3f1d..18bf4002f 100644 --- a/manifests/agent/facter.pp +++ b/manifests/agent/facter.pp @@ -16,7 +16,7 @@ require => File['/etc/puppetlabs/facter'], } - if $::blocklist { + if $blocklist { hocon_setting { 'blocklist facts group': ensure => present, setting => 'fact-groups.blocked-facts', From d14d800d95cb90e2392c6c0bc5fdc1029e9c7f0f Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Tue, 2 Sep 2025 10:00:58 +0100 Subject: [PATCH 18/25] reformat whitespaces, style guide --- manifests/agent/facter.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp index 18bf4002f..d27eef2e2 100644 --- a/manifests/agent/facter.pp +++ b/manifests/agent/facter.pp @@ -6,7 +6,7 @@ String $cache_ttl = '1 day', ) { - if versioncmp(fact('aio_agent_version'),'7') >= 0 { + if versioncmp(fact('aio_agent_version'),'7') >= 0 { file { '/etc/puppetlabs/facter': ensure => directory, } From 5be11e3da27f8fe536b7bcf81e338936a7882c1f Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Tue, 2 Sep 2025 10:29:18 +0100 Subject: [PATCH 19/25] strip trailing i of facter.conf value --- manifests/agent/facter.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp index d27eef2e2..03aa2082c 100644 --- a/manifests/agent/facter.pp +++ b/manifests/agent/facter.pp @@ -11,7 +11,7 @@ ensure => directory, } - hocon_setting { 'facter.confi': + hocon_setting { 'facter.conf': path => '/etc/puppetlabs/facter/facter.conf', require => File['/etc/puppetlabs/facter'], } From 212a699cae1e34a2a43626d62016945d6431f6d1 Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Tue, 2 Sep 2025 10:56:34 +0100 Subject: [PATCH 20/25] test-suit linter style update --- manifests/agent/facter.pp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp index 03aa2082c..5b794e898 100644 --- a/manifests/agent/facter.pp +++ b/manifests/agent/facter.pp @@ -5,7 +5,6 @@ Optional[Array[String]] $cachelist = undef, String $cache_ttl = '1 day', ) { - if versioncmp(fact('aio_agent_version'),'7') >= 0 { file { '/etc/puppetlabs/facter': ensure => directory, @@ -49,7 +48,7 @@ -> hocon_setting { 'cachelist facts': ensure => present, setting => 'facts.ttls', - value => [{'cached-facts' => $cache_ttl }], + value => [{ 'cached-facts' => $cache_ttl }], type => 'array', } } else { From 8cf1db8e792c43f99c751e05b6d8966d2c486b60 Mon Sep 17 00:00:00 2001 From: mattd Date: Wed, 3 Sep 2025 15:32:41 +0100 Subject: [PATCH 21/25] Functionally Complete --- manifests/agent/facter.pp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp index 5b794e898..fcd52936e 100644 --- a/manifests/agent/facter.pp +++ b/manifests/agent/facter.pp @@ -13,16 +13,20 @@ hocon_setting { 'facter.conf': path => '/etc/puppetlabs/facter/facter.conf', require => File['/etc/puppetlabs/facter'], + setting => 'managed', + value => 'puppet', } if $blocklist { hocon_setting { 'blocklist facts group': + path => '/etc/puppetlabs/facter/facter.conf', ensure => present, setting => 'fact-groups.blocked-facts', value => $blocklist, type => 'array', } -> hocon_setting { 'blocklist facts': + path => '/etc/puppetlabs/facter/facter.conf', ensure => present, setting => 'facts.blocklist', value => ['blocked-facts'], @@ -30,22 +34,26 @@ } } else { hocon_setting { 'blocklist facts group': + path => '/etc/puppetlabs/facter/facter.conf', ensure => absent, setting => 'fact-groups.blocked-facts', } hocon_setting { 'blocklist facts': + path => '/etc/puppetlabs/facter/facter.conf', ensure => absent, setting => 'facts.blocklist', } } if $cachelist { hocon_setting { 'cachelist facts group': + path => '/etc/puppetlabs/facter/facter.conf', ensure => present, setting => 'fact-groups.cached-facts', value => $cachelist, type => 'array', } -> hocon_setting { 'cachelist facts': + path => '/etc/puppetlabs/facter/facter.conf', ensure => present, setting => 'facts.ttls', value => [{ 'cached-facts' => $cache_ttl }], @@ -53,10 +61,12 @@ } } else { hocon_setting { 'cachelist facts group': + path => '/etc/puppetlabs/facter/facter.conf', ensure => absent, setting => 'fact-groups.cached-facts', } hocon_setting { 'cachelist facts': + path => '/etc/puppetlabs/facter/facter.conf', ensure => absent, setting => 'facts.ttls', } From cc85a185b66e02140d72f03993c21a30f80c758c Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Wed, 3 Sep 2025 16:50:11 +0100 Subject: [PATCH 22/25] fix missed linting of parameter ordering --- manifests/agent/facter.pp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp index fcd52936e..7cf75b085 100644 --- a/manifests/agent/facter.pp +++ b/manifests/agent/facter.pp @@ -19,8 +19,8 @@ if $blocklist { hocon_setting { 'blocklist facts group': - path => '/etc/puppetlabs/facter/facter.conf', ensure => present, + path => '/etc/puppetlabs/facter/facter.conf', setting => 'fact-groups.blocked-facts', value => $blocklist, type => 'array', @@ -34,40 +34,40 @@ } } else { hocon_setting { 'blocklist facts group': - path => '/etc/puppetlabs/facter/facter.conf', ensure => absent, + path => '/etc/puppetlabs/facter/facter.conf', setting => 'fact-groups.blocked-facts', } hocon_setting { 'blocklist facts': - path => '/etc/puppetlabs/facter/facter.conf', ensure => absent, + path => '/etc/puppetlabs/facter/facter.conf', setting => 'facts.blocklist', } } if $cachelist { hocon_setting { 'cachelist facts group': - path => '/etc/puppetlabs/facter/facter.conf', ensure => present, + path => '/etc/puppetlabs/facter/facter.conf', setting => 'fact-groups.cached-facts', value => $cachelist, type => 'array', } -> hocon_setting { 'cachelist facts': - path => '/etc/puppetlabs/facter/facter.conf', ensure => present, + path => '/etc/puppetlabs/facter/facter.conf', setting => 'facts.ttls', value => [{ 'cached-facts' => $cache_ttl }], type => 'array', } } else { hocon_setting { 'cachelist facts group': - path => '/etc/puppetlabs/facter/facter.conf', ensure => absent, + path => '/etc/puppetlabs/facter/facter.conf', setting => 'fact-groups.cached-facts', } hocon_setting { 'cachelist facts': - path => '/etc/puppetlabs/facter/facter.conf', ensure => absent, + path => '/etc/puppetlabs/facter/facter.conf', setting => 'facts.ttls', } } From ae857e5baeb270f952b71119f478430bef62d537 Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Wed, 3 Sep 2025 16:52:52 +0100 Subject: [PATCH 23/25] fix additional parameter ordering error --- manifests/agent/facter.pp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp index 7cf75b085..636556280 100644 --- a/manifests/agent/facter.pp +++ b/manifests/agent/facter.pp @@ -5,7 +5,6 @@ Optional[Array[String]] $cachelist = undef, String $cache_ttl = '1 day', ) { - if versioncmp(fact('aio_agent_version'),'7') >= 0 { file { '/etc/puppetlabs/facter': ensure => directory, } @@ -26,8 +25,8 @@ type => 'array', } -> hocon_setting { 'blocklist facts': - path => '/etc/puppetlabs/facter/facter.conf', ensure => present, + path => '/etc/puppetlabs/facter/facter.conf', setting => 'facts.blocklist', value => ['blocked-facts'], type => 'array', From db5be24207386d1ec0d90a1b5231bb223b42ae79 Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Wed, 3 Sep 2025 16:55:24 +0100 Subject: [PATCH 24/25] remove conditional puppet version check and brace tidy --- manifests/agent/facter.pp | 1 - 1 file changed, 1 deletion(-) diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp index 636556280..91588e9f5 100644 --- a/manifests/agent/facter.pp +++ b/manifests/agent/facter.pp @@ -71,4 +71,3 @@ } } } -} From 3d033424c172ec3672239babda69beb7b404952d Mon Sep 17 00:00:00 2001 From: Matt Darcy Date: Wed, 3 Sep 2025 17:03:51 +0100 Subject: [PATCH 25/25] refactor identing post if statement removeal --- manifests/agent/facter.pp | 120 +++++++++++++++++++------------------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/manifests/agent/facter.pp b/manifests/agent/facter.pp index 91588e9f5..cd6db2c09 100644 --- a/manifests/agent/facter.pp +++ b/manifests/agent/facter.pp @@ -5,69 +5,69 @@ Optional[Array[String]] $cachelist = undef, String $cache_ttl = '1 day', ) { - file { '/etc/puppetlabs/facter': - ensure => directory, - } + file { '/etc/puppetlabs/facter': + ensure => directory, + } - hocon_setting { 'facter.conf': + hocon_setting { 'facter.conf': + path => '/etc/puppetlabs/facter/facter.conf', + require => File['/etc/puppetlabs/facter'], + setting => 'managed', + value => 'puppet', + } + + if $blocklist { + hocon_setting { 'blocklist facts group': + ensure => present, path => '/etc/puppetlabs/facter/facter.conf', - require => File['/etc/puppetlabs/facter'], - setting => 'managed', - value => 'puppet', + setting => 'fact-groups.blocked-facts', + value => $blocklist, + type => 'array', } - - if $blocklist { - hocon_setting { 'blocklist facts group': - ensure => present, - path => '/etc/puppetlabs/facter/facter.conf', - setting => 'fact-groups.blocked-facts', - value => $blocklist, - type => 'array', - } - -> hocon_setting { 'blocklist facts': - ensure => present, - path => '/etc/puppetlabs/facter/facter.conf', - setting => 'facts.blocklist', - value => ['blocked-facts'], - type => 'array', - } - } else { - hocon_setting { 'blocklist facts group': - ensure => absent, - path => '/etc/puppetlabs/facter/facter.conf', - setting => 'fact-groups.blocked-facts', - } - hocon_setting { 'blocklist facts': - ensure => absent, - path => '/etc/puppetlabs/facter/facter.conf', - setting => 'facts.blocklist', - } + -> hocon_setting { 'blocklist facts': + ensure => present, + path => '/etc/puppetlabs/facter/facter.conf', + setting => 'facts.blocklist', + value => ['blocked-facts'], + type => 'array', + } + } else { + hocon_setting { 'blocklist facts group': + ensure => absent, + path => '/etc/puppetlabs/facter/facter.conf', + setting => 'fact-groups.blocked-facts', + } + hocon_setting { 'blocklist facts': + ensure => absent, + path => '/etc/puppetlabs/facter/facter.conf', + setting => 'facts.blocklist', } - if $cachelist { - hocon_setting { 'cachelist facts group': - ensure => present, - path => '/etc/puppetlabs/facter/facter.conf', - setting => 'fact-groups.cached-facts', - value => $cachelist, - type => 'array', - } - -> hocon_setting { 'cachelist facts': - ensure => present, - path => '/etc/puppetlabs/facter/facter.conf', - setting => 'facts.ttls', - value => [{ 'cached-facts' => $cache_ttl }], - type => 'array', - } - } else { - hocon_setting { 'cachelist facts group': - ensure => absent, - path => '/etc/puppetlabs/facter/facter.conf', - setting => 'fact-groups.cached-facts', - } - hocon_setting { 'cachelist facts': - ensure => absent, - path => '/etc/puppetlabs/facter/facter.conf', - setting => 'facts.ttls', - } + } + if $cachelist { + hocon_setting { 'cachelist facts group': + ensure => present, + path => '/etc/puppetlabs/facter/facter.conf', + setting => 'fact-groups.cached-facts', + value => $cachelist, + type => 'array', + } + -> hocon_setting { 'cachelist facts': + ensure => present, + path => '/etc/puppetlabs/facter/facter.conf', + setting => 'facts.ttls', + value => [{ 'cached-facts' => $cache_ttl }], + type => 'array', + } + } else { + hocon_setting { 'cachelist facts group': + ensure => absent, + path => '/etc/puppetlabs/facter/facter.conf', + setting => 'fact-groups.cached-facts', + } + hocon_setting { 'cachelist facts': + ensure => absent, + path => '/etc/puppetlabs/facter/facter.conf', + setting => 'facts.ttls', } } +}