From ff098e030b95fa95131bb8e65585c8bdecc23a3d Mon Sep 17 00:00:00 2001 From: Tim Meusel Date: Tue, 7 Sep 2021 10:51:16 +0200 Subject: [PATCH] Migrate static data from hiera to init.pp This allows us to get rid of one file and represents the data within the REFERENCE.md --- REFERENCE.md | 74 ++++++++++++++++++++++++++++++++++++++++++-- data/common.yaml | 36 ---------------------- manifests/init.pp | 78 +++++++++++++++++++++++------------------------ 3 files changed, 110 insertions(+), 78 deletions(-) delete mode 100644 data/common.yaml diff --git a/REFERENCE.md b/REFERENCE.md index 20362cb0..495dcb32 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -105,18 +105,24 @@ Data type: `Hash[String,Hash[String, Any]]` May be passed a resource hash suitable for passing directly into the ``create_resources()`` function as called on ``systemd::service_limits`` +Default value: `{}` + ##### `manage_resolved` Data type: `Boolean` Manage the systemd resolver +Default value: ``false`` + ##### `resolved_ensure` Data type: `Enum['stopped','running']` The state that the ``resolved`` service should be in +Default value: `'running'` + ##### `dns` Data type: `Optional[Variant[Array[String],String]]` @@ -126,6 +132,8 @@ DNS requests are sent to one of the listed DNS servers in parallel to suitable per-link DNS servers acquired from systemd-networkd.service(8) or set at runtime by external applications. requires puppetlabs-inifile +Default value: ``undef`` + ##### `fallback_dns` Data type: `Optional[Variant[Array[String],String]]` @@ -134,6 +142,8 @@ A space-separated list of IPv4 and IPv6 addresses to use as the fallback DNS servers. Any per-link DNS servers obtained from systemd-networkd take precedence over this setting. requires puppetlabs-inifile +Default value: ``undef`` + ##### `domains` Data type: `Optional[Variant[Array[String],String]]` @@ -141,43 +151,57 @@ Data type: `Optional[Variant[Array[String],String]]` A space-separated list of domains host names or IP addresses to be used systemd-resolved take precedence over this setting. +Default value: ``undef`` + ##### `llmnr` Data type: `Optional[Variant[Boolean,Enum['resolve']]]` Takes a boolean argument or "resolve". +Default value: ``undef`` + ##### `multicast_dns` Data type: `Optional[Variant[Boolean,Enum['resolve']]]` Takes a boolean argument or "resolve". +Default value: ``undef`` + ##### `dnssec` Data type: `Optional[Variant[Boolean,Enum['allow-downgrade']]]` Takes a boolean argument or "allow-downgrade". +Default value: ``undef`` + ##### `dnsovertls` -Data type: `Optional[Variant[Boolean,Enum['yes', 'opportunistic', 'no']]]` +Data type: `Variant[Boolean,Enum['yes', 'opportunistic', 'no']]` Takes a boolean argument or one of "yes", "opportunistic" or "no". "true" corresponds to "opportunistic" and "false" (default) to "no". +Default value: ``false`` + ##### `cache` -Data type: `Optional[Variant[Boolean,Enum['no-negative']]]` +Data type: `Variant[Boolean,Enum['no-negative']]` Takes a boolean argument or "no-negative". +Default value: ``false`` + ##### `dns_stub_listener` Data type: `Optional[Variant[Boolean,Enum['udp','tcp']]]` Takes a boolean argument or one of "udp" and "tcp". +Default value: ``undef`` + ##### `use_stub_resolver` Data type: `Boolean` @@ -185,30 +209,40 @@ Data type: `Boolean` Takes a boolean argument. When "false" (default) it uses /run/systemd/resolve/resolv.conf as /etc/resolv.conf. When "true", it uses /run/systemd/resolve/stub-resolv.conf +Default value: ``false`` + ##### `manage_networkd` Data type: `Boolean` Manage the systemd network daemon +Default value: ``false`` + ##### `networkd_ensure` Data type: `Enum['stopped','running']` The state that the ``networkd`` service should be in +Default value: `'running'` + ##### `manage_timesyncd` Data type: `Boolean` Manage the systemd tiemsyncd daemon +Default value: ``false`` + ##### `timesyncd_ensure` Data type: `Enum['stopped','running']` The state that the ``timesyncd`` service should be in +Default value: `'running'` + ##### `ntp_server` Data type: `Optional[Variant[Array,String]]` @@ -216,6 +250,8 @@ Data type: `Optional[Variant[Array,String]]` comma separated list of ntp servers, will be combined with interface specific addresses from systemd-networkd. requires puppetlabs-inifile +Default value: ``undef`` + ##### `fallback_ntp_server` Data type: `Optional[Variant[Array,String]]` @@ -224,60 +260,80 @@ A space-separated list of NTP server host names or IP addresses to be used as the fallback NTP servers. Any per-interface NTP servers obtained from systemd-networkd take precedence over this setting. requires puppetlabs-inifile +Default value: ``undef`` + ##### `manage_journald` Data type: `Boolean` Manage the systemd journald +Default value: ``true`` + ##### `journald_settings` Data type: `Systemd::JournaldSettings` Config Hash that is used to configure settings in journald.conf +Default value: `{}` + ##### `manage_udevd` Data type: `Boolean` Manage the systemd udev daemon +Default value: ``false`` + ##### `udev_log` Data type: `Optional[Variant[Integer,String]]` The value of /etc/udev/udev.conf udev_log +Default value: ``undef`` + ##### `udev_children_max` Data type: `Optional[Integer]` The value of /etc/udev/udev.conf children_max +Default value: ``undef`` + ##### `udev_exec_delay` Data type: `Optional[Integer]` The value of /etc/udev/udev.conf exec_delay +Default value: ``undef`` + ##### `udev_event_timeout` Data type: `Optional[Integer]` The value of /etc/udev/udev.conf event_timeout +Default value: ``undef`` + ##### `udev_resolve_names` Data type: `Optional[Enum['early', 'late', 'never']]` The value of /etc/udev/udev.conf resolve_names +Default value: ``undef`` + ##### `udev_timeout_signal` Data type: `Optional[Variant[Integer,String]]` The value of /etc/udev/udev.conf timeout_signal +Default value: ``undef`` + ##### `udev_rules` Data type: `Hash` @@ -293,12 +349,16 @@ Data type: `Boolean` Manage the systemd logind +Default value: ``false`` + ##### `logind_settings` Data type: `Systemd::LogindSettings` Config Hash that is used to configure settings in logind.conf +Default value: `{}` + ##### `loginctl_users` Data type: `Hash` @@ -322,23 +382,29 @@ Data type: `Boolean` +Default value: ``false`` + ##### `network_path` Data type: `Stdlib::Absolutepath` where all networkd files are placed in +Default value: `'/etc/systemd/network'` + ##### `manage_accounting` Data type: `Boolean` when enabled, the different accounting options (network traffic, IO, CPU util...) are enabled for units +Default value: ``false`` + ##### `accounting` Data type: `Hash[String,String]` -Hash of the different accounting options. This highly depends on the used systemd version. The module provides sane defaults. +Hash of the different accounting options. This highly depends on the used systemd version. The module provides sane defaults per operating system using Hiera. ##### `purge_dropin_dirs` @@ -346,6 +412,8 @@ Data type: `Boolean` When enabled, unused directories for dropin files will be purged +Default value: ``true`` + ### `systemd::tmpfiles` Update the systemd temp files diff --git a/data/common.yaml b/data/common.yaml deleted file mode 100644 index 0898e32c..00000000 --- a/data/common.yaml +++ /dev/null @@ -1,36 +0,0 @@ ---- -systemd::service_limits: {} -systemd::manage_resolved: false -systemd::resolved_ensure: 'running' -systemd::dns: ~ -systemd::fallback_dns: ~ -systemd::domains: ~ -systemd::llmnr: ~ -systemd::multicast_dns: ~ -systemd::dnssec: ~ -systemd::dnsovertls: false -systemd::cache: false -systemd::dns_stub_listener: ~ -systemd::use_stub_resolver: false -systemd::manage_networkd: false -systemd::networkd_ensure: 'running' -systemd::manage_timesyncd: false -systemd::timesyncd_ensure: 'running' -systemd::ntp_server: ~ -systemd::fallback_ntp_server: ~ -systemd::manage_accounting: false -systemd::accounting: {} -systemd::purge_dropin_dirs: true -systemd::manage_journald: true -systemd::journald_settings: {} -systemd::manage_udevd: false -systemd::udev_log: ~ -systemd::udev_children_max: ~ -systemd::udev_exec_delay: ~ -systemd::udev_event_timeout: ~ -systemd::udev_timeout_signal: ~ -systemd::udev_resolve_names: ~ -systemd::manage_logind: false -systemd::logind_settings: {} -systemd::manage_all_network_files: false -systemd::network_path: '/etc/systemd/network' diff --git a/manifests/init.pp b/manifests/init.pp index dc19411a..1f1dbfb4 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -123,50 +123,50 @@ # when enabled, the different accounting options (network traffic, IO, CPU util...) are enabled for units # # @param accounting -# Hash of the different accounting options. This highly depends on the used systemd version. The module provides sane defaults. +# Hash of the different accounting options. This highly depends on the used systemd version. The module provides sane defaults per operating system. # # @param purge_dropin_dirs # When enabled, unused directories for dropin files will be purged # class systemd ( - Hash[String,Hash[String, Any]] $service_limits, - Boolean $manage_resolved, - Enum['stopped','running'] $resolved_ensure, - Optional[Variant[Array[String],String]] $dns, - Optional[Variant[Array[String],String]] $fallback_dns, - Optional[Variant[Array[String],String]] $domains, - Optional[Variant[Boolean,Enum['resolve']]] $llmnr, - Optional[Variant[Boolean,Enum['resolve']]] $multicast_dns, - Optional[Variant[Boolean,Enum['allow-downgrade']]] $dnssec, - Optional[Variant[Boolean,Enum['yes', 'opportunistic', 'no']]] $dnsovertls, - Optional[Variant[Boolean,Enum['no-negative']]] $cache, - Optional[Variant[Boolean,Enum['udp','tcp']]] $dns_stub_listener, - Boolean $use_stub_resolver, - Boolean $manage_networkd, - Enum['stopped','running'] $networkd_ensure, - Boolean $manage_timesyncd, - Enum['stopped','running'] $timesyncd_ensure, - Optional[Variant[Array,String]] $ntp_server, - Optional[Variant[Array,String]] $fallback_ntp_server, - Boolean $manage_accounting, - Hash[String,String] $accounting, - Boolean $purge_dropin_dirs, - Boolean $manage_journald, - Systemd::JournaldSettings $journald_settings, - Boolean $manage_udevd, - Optional[Variant[Integer,String]] $udev_log, - Optional[Integer] $udev_children_max, - Optional[Integer] $udev_exec_delay, - Optional[Integer] $udev_event_timeout, - Optional[Enum['early', 'late', 'never']] $udev_resolve_names, - Optional[Variant[Integer,String]] $udev_timeout_signal, - Boolean $manage_logind, - Systemd::LogindSettings $logind_settings, - Boolean $manage_all_network_files, - Stdlib::Absolutepath $network_path, - Hash $loginctl_users = {}, - Hash $dropin_files = {}, - Hash $udev_rules = {}, + Hash[String,String] $accounting, + Hash[String,Hash[String, Any]] $service_limits = {}, + Boolean $manage_resolved = false, + Enum['stopped','running'] $resolved_ensure = 'running', + Optional[Variant[Array[String],String]] $dns = undef, + Optional[Variant[Array[String],String]] $fallback_dns = undef, + Optional[Variant[Array[String],String]] $domains = undef, + Optional[Variant[Boolean,Enum['resolve']]] $llmnr = undef, + Optional[Variant[Boolean,Enum['resolve']]] $multicast_dns = undef, + Optional[Variant[Boolean,Enum['allow-downgrade']]] $dnssec = undef, + Variant[Boolean,Enum['yes', 'opportunistic', 'no']] $dnsovertls = false, + Variant[Boolean,Enum['no-negative']] $cache = false, + Optional[Variant[Boolean,Enum['udp','tcp']]] $dns_stub_listener = undef, + Boolean $use_stub_resolver = false, + Boolean $manage_networkd = false, + Enum['stopped','running'] $networkd_ensure = 'running', + Boolean $manage_timesyncd = false, + Enum['stopped','running'] $timesyncd_ensure = 'running', + Optional[Variant[Array,String]] $ntp_server = undef, + Optional[Variant[Array,String]] $fallback_ntp_server = undef, + Boolean $manage_accounting = false, + Boolean $purge_dropin_dirs = true, + Boolean $manage_journald = true, + Systemd::JournaldSettings $journald_settings = {}, + Boolean $manage_udevd = false, + Optional[Variant[Integer,String]] $udev_log = undef, + Optional[Integer] $udev_children_max = undef, + Optional[Integer] $udev_exec_delay = undef, + Optional[Integer] $udev_event_timeout = undef, + Optional[Enum['early', 'late', 'never']] $udev_resolve_names = undef, + Optional[Variant[Integer,String]] $udev_timeout_signal = undef, + Boolean $manage_logind = false, + Systemd::LogindSettings $logind_settings = {}, + Boolean $manage_all_network_files = false, + Stdlib::Absolutepath $network_path = '/etc/systemd/network', + Hash $loginctl_users = {}, + Hash $dropin_files = {}, + Hash $udev_rules = {}, ) { create_resources('systemd::service_limits', $service_limits)