if node.has_bundle('pacman'): package = 'pkg_pacman:nftables' else: package = 'pkg_apt:nftables' directories = { # used by other bundles '/etc/nftables-rules.d': { 'purge': True, 'triggers': { 'svc_systemd:nftables:reload', }, }, } files = { '/etc/nftables.conf': { 'content_type': 'mako', 'context': { 'blocked_v4': node.metadata.get('nftables/blocked_v4', set()), 'blocked_v6': node.metadata.get('nftables/blocked_v6', set()), 'forward': node.metadata.get('nftables/forward', {}), 'input': node.metadata.get('nftables/input', {}), 'postrouting': node.metadata.get('nftables/postrouting', {}), 'prerouting': node.metadata.get('nftables/prerouting', {}), }, 'triggers': { 'svc_systemd:nftables:reload', }, }, '/etc/systemd/system/nftables.service.d/bundlewrap.conf': { 'source': 'override.conf', 'content_type': 'mako', 'triggers': { 'action:systemd-reload', 'svc_systemd:nftables:reload', }, }, } svc_systemd = { 'nftables': { 'needs': { 'file:/etc/nftables.conf', package, }, }, }