From 07de570175a2f9bbd7ced57d2dbe52e9196f2d77 Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Sat, 23 Sep 2023 15:06:16 +0200 Subject: [PATCH] auto-generate full wireguard mesh between all nodes in libs.s2s.WG_AUTOGEN_NODES --- bundles/wireguard/metadata.py | 28 +++++++++++++++++++++++++++- nodes/home/router.py | 6 +----- nodes/htz-cloud/wireguard.py | 4 ---- nodes/icinga2.toml | 3 --- 4 files changed, 28 insertions(+), 13 deletions(-) diff --git a/bundles/wireguard/metadata.py b/bundles/wireguard/metadata.py index 561dfd2..a01f300 100644 --- a/bundles/wireguard/metadata.py +++ b/bundles/wireguard/metadata.py @@ -36,11 +36,37 @@ if node.has_bundle('telegraf'): } +@metadata_reactor.provides( + 'wireguard/peers', +) +def peers_auto_full_mesh(metadata): + peers = {} + + for rnode in repo.libs.s2s.WG_AUTOGEN_NODES: + if rnode is None or rnode == node.name: + continue + + try: + rnode = repo.get_node(rnode) + except NoSuchNode: + continue + + if rnode.dummy: + continue + + peers[rnode.name] = {} + + return { + 'wireguard': { + 'peers': peers, + }, + } + @metadata_reactor.provides( 'wireguard/peers', ) -def peer_psks_and_iface_names(metadata): +def peer_psks(metadata): peers = {} for peer_name in metadata.get('wireguard/peers', {}): diff --git a/nodes/home/router.py b/nodes/home/router.py index 1806918..480c2ed 100644 --- a/nodes/home/router.py +++ b/nodes/home/router.py @@ -1,5 +1,5 @@ nodes['home.router'] = { - 'hostname': '172.19.138.1', + 'hostname': 'router-remote', 'bundles': { 'bird', 'kea-dhcp-server', @@ -162,10 +162,6 @@ nodes['home.router'] = { 'wireguard': { 'external_hostname': 'franzi-home.kunbox.net', # Set via DynDNS 'snat_ip': '172.19.138.1', - 'peers': { - 'ovh.wireguard': {}, - 'icinga2': {}, - }, }, }, } diff --git a/nodes/htz-cloud/wireguard.py b/nodes/htz-cloud/wireguard.py index ea1086c..ac4a02a 100644 --- a/nodes/htz-cloud/wireguard.py +++ b/nodes/htz-cloud/wireguard.py @@ -51,10 +51,6 @@ nodes['htz-cloud.wireguard'] = { }, 'wireguard': { 'snat_ip': '172.19.137.2', - 'peers': { - 'ovh.wireguard': {}, - 'icinga2': {}, - }, }, }, } diff --git a/nodes/icinga2.toml b/nodes/icinga2.toml index 1c85347..3194c8b 100644 --- a/nodes/icinga2.toml +++ b/nodes/icinga2.toml @@ -59,9 +59,6 @@ version = 15 [metadata.wireguard] snat_ip = "172.19.136.4" -[metadata.wireguard.peers.'home.router'] -[metadata.wireguard.peers.'htz-cloud.wireguard'] - [metadata.vm] cpu = 2 ram = 2