From 23dd962d891939c6d5c287a3adc7e3f7849030f2 Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Sat, 9 Aug 2025 17:07:36 +1000 Subject: [PATCH] feat: allow specifying consul addr for exporters - ensure frr/node exporter reachable on hosts with loopbacks --- hieradata/roles/infra/incus/node.yaml | 3 +++ hieradata/roles/infra/k8s/node.yaml | 3 +++ modules/exporters/manifests/frr_exporter.pp | 3 ++- modules/exporters/manifests/node_exporter.pp | 3 ++- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/hieradata/roles/infra/incus/node.yaml b/hieradata/roles/infra/incus/node.yaml index 3c6c078..9d85c5b 100644 --- a/hieradata/roles/infra/incus/node.yaml +++ b/hieradata/roles/infra/incus/node.yaml @@ -150,8 +150,11 @@ networking::interfaces: netmask: 255.255.255.255 mtu: 1500 +exporters::node_exporter::addr: "%{hiera('networking_loopback0_ip')}" + # frrouting exporters::frr_exporter::enable: true +exporters::frr_exporter::addr: "%{hiera('networking_loopback0_ip')}" frrouting::ospfd_router_id: "%{hiera('networking_loopback0_ip')}" frrouting::ospfd_redistribute: - connected diff --git a/hieradata/roles/infra/k8s/node.yaml b/hieradata/roles/infra/k8s/node.yaml index 67e7c01..24ea9b2 100644 --- a/hieradata/roles/infra/k8s/node.yaml +++ b/hieradata/roles/infra/k8s/node.yaml @@ -97,8 +97,11 @@ profiles::consul::client::node_rules: segment: frr_exporter disposition: write +exporters::node_exporter::addr: "%{hiera('networking_loopback0_ip')}" + # frrouting exporters::frr_exporter::enable: true +exporters::frr_exporter::addr: "%{hiera('networking_loopback0_ip')}" frrouting::ospfd_router_id: "%{hiera('networking_loopback0_ip')}" frrouting::ospfd_redistribute: - connected diff --git a/modules/exporters/manifests/frr_exporter.pp b/modules/exporters/manifests/frr_exporter.pp index 40f28ad..5efa7f8 100644 --- a/modules/exporters/manifests/frr_exporter.pp +++ b/modules/exporters/manifests/frr_exporter.pp @@ -4,6 +4,7 @@ class exporters::frr_exporter ( String $group = 'frr_exporter', Boolean $manage_user = true, Boolean $manage_service = true, + Stdlib::Host $addr = $facts['networking']['ip'], Stdlib::Port $port = 9342, Stdlib::Absolutepath $exec_path = '/usr/bin/frr_exporter', Stdlib::Absolutepath $socket_dir = '/var/run/frr', @@ -45,7 +46,7 @@ class exporters::frr_exporter ( # manage consul service consul::service { 'frr_exporter': service_name => 'frr_exporter', - address => $facts['networking']['ip'], + address => $addr, port => $port, tags => [ 'metrics', diff --git a/modules/exporters/manifests/node_exporter.pp b/modules/exporters/manifests/node_exporter.pp index 41f361e..9d2eeb6 100644 --- a/modules/exporters/manifests/node_exporter.pp +++ b/modules/exporters/manifests/node_exporter.pp @@ -4,6 +4,7 @@ class exporters::node_exporter ( String $group = 'node_exporter', Boolean $manage_user = true, Boolean $manage_service = true, + Stdlib::Host $addr = $facts['networking']['ip'], Stdlib::Port $port = 9100, Stdlib::Absolutepath $exec_path = '/usr/bin/node_exporter', Boolean $cleanup_old_node_exporter = false, @@ -58,7 +59,7 @@ class exporters::node_exporter ( # manage consul service consul::service { 'node_exporter': service_name => 'node_exporter', - address => $facts['networking']['ip'], + address => $addr, port => $port, tags => [ 'metrics',