Commit 45ccb189 authored by James T. Lee's avatar James T. Lee
Browse files

Refactor (refacter?) is_container

parent 5d6067c1
Facter.add('is_container') do
confine :kernel => 'Linux'
setcode do
Facter.value(:virtual) == 'lxc' or File.exist? '/run/.containerenv'
end
end
class nest::base::bootloader::systemd { class nest::base::bootloader::systemd {
if $::is_container or $facts['os']['architecture'] =~ /^(arm|aarch64)/ { if $facts['is_container'] or $facts['os']['architecture'] =~ /^(arm|aarch64)/ {
$bootctl_args = '--no-variables' $bootctl_args = '--no-variables'
} else { } else {
$bootctl_args = '' $bootctl_args = ''
......
class nest::base::containers { class nest::base::containers {
unless $::is_container { unless $facts['is_container'] {
zfs { 'containers': zfs { 'containers':
name => "${facts['rpool']}/containers", name => "${facts['rpool']}/containers",
mountpoint => '/var/lib/containers', mountpoint => '/var/lib/containers',
......
...@@ -57,22 +57,21 @@ class nest::base::puppet { ...@@ -57,22 +57,21 @@ class nest::base::puppet {
content => "fqdn: ${trusted['certname']}.nest\n", content => "fqdn: ${trusted['certname']}.nest\n",
} }
class { '::puppet': $puppet_runmode = $facts['is_container'] ? {
true => 'unmanaged',
default => 'systemd.timer',
}
class { 'puppet':
dns_alt_names => $dns_alt_names, dns_alt_names => $dns_alt_names,
dir => '/etc/puppetlabs/puppet', dir => '/etc/puppetlabs/puppet',
codedir => '/etc/puppetlabs/code', codedir => '/etc/puppetlabs/code',
ssldir => '/etc/puppetlabs/puppet/ssl', ssldir => '/etc/puppetlabs/puppet/ssl',
runmode => 'systemd.timer', runmode => $puppet_runmode,
unavailable_runmodes => ['cron'], unavailable_runmodes => ['cron'],
} }
if $::is_container {
Exec <| title == 'systemctl-daemon-reload-puppet' |> {
noop => true,
}
}
} else { } else {
class { '::puppet': class { 'puppet':
dns_alt_names => $dns_alt_names, dns_alt_names => $dns_alt_names,
} }
} }
......
...@@ -50,7 +50,7 @@ class nest::base::systemd { ...@@ -50,7 +50,7 @@ class nest::base::systemd {
changes => flatten($nsswitch_id_changes + $nsswitch_hosts_changes), changes => flatten($nsswitch_id_changes + $nsswitch_hosts_changes),
} }
unless $::is_container { unless $facts['is_container'] {
file { '/etc/resolv.conf': file { '/etc/resolv.conf':
ensure => link, ensure => link,
target => '/run/systemd/resolve/stub-resolv.conf', target => '/run/systemd/resolve/stub-resolv.conf',
......
...@@ -142,7 +142,7 @@ class nest::base::users { ...@@ -142,7 +142,7 @@ class nest::base::users {
group => 'users'; group => 'users';
} }
if $::is_container { if $facts['is_container'] {
$user_homes = {} $user_homes = {}
} else { } else {
$user_homes = { 'james' => '/home/james' } $user_homes = { 'james' => '/home/james' }
......
...@@ -113,7 +113,7 @@ class nest::base::zfs { ...@@ -113,7 +113,7 @@ class nest::base::zfs {
::nest::lib::systemd_reload { 'zfs': } ::nest::lib::systemd_reload { 'zfs': }
unless $::is_container { unless $facts['is_container'] {
# Manage swap volume properties for experimenting with workarounds listed in # Manage swap volume properties for experimenting with workarounds listed in
# https://github.com/openzfs/zfs/issues/7734 # https://github.com/openzfs/zfs/issues/7734
zfs { "${facts['rpool']}/swap": zfs { "${facts['rpool']}/swap":
......
...@@ -4,7 +4,7 @@ define nest::lib::srv ( ...@@ -4,7 +4,7 @@ define nest::lib::srv (
Optional[String] $owner = undef, Optional[String] $owner = undef,
Optional[String] $group = undef, Optional[String] $group = undef,
) { ) {
unless $::is_container { unless $facts['is_container'] {
ensure_resource('zfs', 'srv', { ensure_resource('zfs', 'srv', {
'name' => "${facts['rpool']}/srv", 'name' => "${facts['rpool']}/srv",
'mountpoint' => '/srv', 'mountpoint' => '/srv',
......
define nest::lib::systemd_reload { define nest::lib::systemd_reload {
exec { "systemd-daemon-reload-${name}": unless $facts['is_container'] {
command => '/bin/systemctl daemon-reload', exec { "systemd-daemon-reload-${name}":
refreshonly => true, command => '/bin/systemctl daemon-reload',
noop => $::is_container, refreshonly => true,
}
} }
} }
...@@ -13,7 +13,7 @@ class nest::service::mysql { ...@@ -13,7 +13,7 @@ class nest::service::mysql {
service_provider => 'systemd', service_provider => 'systemd',
} }
unless $::is_container { unless $facts['is_container'] {
exec { 'mysql-tmpfiles-create': exec { 'mysql-tmpfiles-create':
command => '/usr/bin/systemd-tmpfiles --create /usr/lib/tmpfiles.d/mysql.conf', command => '/usr/bin/systemd-tmpfiles --create /usr/lib/tmpfiles.d/mysql.conf',
creates => '/run/mysqld', creates => '/run/mysqld',
......
...@@ -18,25 +18,16 @@ unless defined('$role') { ...@@ -18,25 +18,16 @@ unless defined('$role') {
case $facts['osfamily'] { case $facts['osfamily'] {
'Gentoo': { 'Gentoo': {
$is_container = $facts['virtual'] == 'lxc' or $facts['build'] # Effectively disable firewall and service resources in containers
if $facts['is_container'] {
Firewall { Firewall <||> {
noop => $is_container, ensure => absent,
} }
Firewallchain {
noop => $is_container,
}
Sysctl {
noop => $is_container,
}
Service { Firewallchain <||> {
provider => systemd, policy => accept,
} }
if $is_container {
Service <||> { Service <||> {
ensure => undef, ensure => undef,
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment