From 463b0d35d4fd383e23b0eaf805465a8a3b2d0dec Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Thu, 14 Aug 2025 20:00:14 +1000 Subject: [PATCH] feat: enabling changing ip for consul client - enable ability to set consul client bind/advertise ip --- hieradata/roles/infra/incus/node.yaml | 1 + site/profiles/manifests/consul/client.pp | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/hieradata/roles/infra/incus/node.yaml b/hieradata/roles/infra/incus/node.yaml index d83f5cc..99e0815 100644 --- a/hieradata/roles/infra/incus/node.yaml +++ b/hieradata/roles/infra/incus/node.yaml @@ -37,6 +37,7 @@ profiles::ssh::sign::principals: - "%{facts.networking.interfaces.enp3s0.ip}" # configure consul service +profiles::consul::client::host_addr: "%{hiera('networking_loopback0_ip')}" consul::services: incus: service_name: 'incus' diff --git a/site/profiles/manifests/consul/client.pp b/site/profiles/manifests/consul/client.pp index 8d8d6ee..f79496f 100644 --- a/site/profiles/manifests/consul/client.pp +++ b/site/profiles/manifests/consul/client.pp @@ -11,6 +11,7 @@ class profiles::consul::client ( Stdlib::Absolutepath $data_dir = '/opt/consul', Array[Hash] $node_rules = [], Hash $ports = {}, + Stdlib::IP::Address $host_addr = $facts['networking']['ip'], ) { if $facts['enc_role'] != $members_role { @@ -42,8 +43,8 @@ class profiles::consul::client ( 'log_level' => 'INFO', 'node_name' => $facts['networking']['fqdn'], 'retry_join' => $servers_array, - 'bind_addr' => $::facts['networking']['ip'], - 'advertise_addr' => $::facts['networking']['ip'], + 'bind_addr' => $host_addr, + 'advertise_addr' => $host_addr, 'enable_script_checks' => true, 'ports' => $ports, 'acl' => {