defaults = { 'apt': { 'packages': { 'resolvconf': { 'installed': False, }, }, }, } @metadata_reactor.provides( 'interfaces', ) def add_vlan_infos_to_interface(metadata): interfaces = {} for iface in metadata.get('interfaces', {}): if not '.' in iface: continue interface,vlan = iface.split('.') interfaces.setdefault(interface, {}).setdefault('vlans', set()) interfaces[interface]['vlans'].add(vlan) return { 'interfaces': interfaces, } @metadata_reactor.provides( 'telegraf/input_plugins/builtin/bond', ) def telegraf(metadata): if not node.has_bundle('telegraf'): raise DoNotRunAgain if metadata.get('systemd-networkd/bonds', {}): return { 'telegraf': { 'input_plugins': { 'builtin': { 'bond': [{ 'bond_interfaces': list(sorted(metadata.get('systemd-networkd/bonds').keys())), }], }, }, 'additional_capabilities': { 'CAP_NET_ADMIN', }, }, } return {}