From 62837bb22d00883d54b2afcce9662c706b458a22 Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Sat, 21 Jun 2025 15:42:37 +1000 Subject: [PATCH] feat: add zone to subnet facts (#320) - add common and dmz zone fact information Reviewed-on: https://git.query.consul/unkinben/puppet-prod/pulls/320 --- modules/libs/lib/facter/subnet_facts.rb | 35 +++++++++++++------------ 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/modules/libs/lib/facter/subnet_facts.rb b/modules/libs/lib/facter/subnet_facts.rb index 6bc2886..a0ed78a 100644 --- a/modules/libs/lib/facter/subnet_facts.rb +++ b/modules/libs/lib/facter/subnet_facts.rb @@ -5,23 +5,23 @@ require 'ipaddr' # a class that creates facts based on the subnet class SubnetAttributes SUBNET_TO_ATTRIBUTES = { - '198.18.13.0/24' => { environment: 'prod', region: 'syd1', country: 'au' }, - '198.18.14.0/24' => { environment: 'prod', region: 'syd1', country: 'au' }, - '198.18.15.0/24' => { environment: 'prod', region: 'syd1', country: 'au' }, - '198.18.16.0/24' => { environment: 'test', region: 'syd1', country: 'au' }, - '198.18.17.0/24' => { environment: 'prod', region: 'drw1', country: 'au' }, - '198.18.18.0/24' => { environment: 'test', region: 'drw1', country: 'au' }, - '198.18.19.0/24' => { environment: 'prod', region: 'syd1', country: 'au' }, # loopbacks - '198.18.20.0/24' => { environment: 'prod', region: 'syd1', country: 'au' }, # MPLS CORE BLOCKS - '198.18.21.0/24' => { environment: 'prod', region: 'syd1', country: 'au' }, # physical network 2.5gbe - '198.18.22.0/24' => { environment: 'prod', region: 'syd1', country: 'au' }, # ceph cluster - '198.18.23.0/24' => { environment: 'prod', region: 'syd1', country: 'au' }, # ceph public - '198.18.24.0/24' => { environment: 'prod', region: 'syd1', country: 'au' }, # dmz 1 - '198.18.25.0/24' => { environment: 'prod', region: 'syd1', country: 'au' }, # common node0009 - '198.18.26.0/24' => { environment: 'prod', region: 'syd1', country: 'au' }, # common node0010 - '198.18.27.0/24' => { environment: 'prod', region: 'syd1', country: 'au' }, # common node0011 - '198.18.28.0/24' => { environment: 'prod', region: 'syd1', country: 'au' }, # common node0012 - '198.18.29.0/24' => { environment: 'prod', region: 'syd1', country: 'au' } # common node0013 + '198.18.13.0/24' => { environment: 'prod', region: 'syd1', country: 'au', zone: 'common' }, + '198.18.14.0/24' => { environment: 'prod', region: 'syd1', country: 'au', zone: 'common' }, + '198.18.15.0/24' => { environment: 'prod', region: 'syd1', country: 'au', zone: 'common' }, + '198.18.16.0/24' => { environment: 'test', region: 'syd1', country: 'au', zone: 'common' }, + '198.18.17.0/24' => { environment: 'prod', region: 'drw1', country: 'au', zone: 'common' }, + '198.18.18.0/24' => { environment: 'test', region: 'drw1', country: 'au', zone: 'common' }, + '198.18.19.0/24' => { environment: 'prod', region: 'syd1', country: 'au', zone: 'common' }, # loopbacks + '198.18.20.0/24' => { environment: 'prod', region: 'syd1', country: 'au', zone: 'common' }, # MPLS CORE BLOCKS + '198.18.21.0/24' => { environment: 'prod', region: 'syd1', country: 'au', zone: 'common' }, # physical network 2.5gbe + '198.18.22.0/24' => { environment: 'prod', region: 'syd1', country: 'au', zone: 'common' }, # ceph cluster + '198.18.23.0/24' => { environment: 'prod', region: 'syd1', country: 'au', zone: 'common' }, # ceph public + '198.18.24.0/24' => { environment: 'prod', region: 'syd1', country: 'au', zone: 'dmz' }, # dmz 1 + '198.18.25.0/24' => { environment: 'prod', region: 'syd1', country: 'au', zone: 'common' }, # common node0009 + '198.18.26.0/24' => { environment: 'prod', region: 'syd1', country: 'au', zone: 'common' }, # common node0010 + '198.18.27.0/24' => { environment: 'prod', region: 'syd1', country: 'au', zone: 'common' }, # common node0011 + '198.18.28.0/24' => { environment: 'prod', region: 'syd1', country: 'au', zone: 'common' }, # common node0012 + '198.18.29.0/24' => { environment: 'prod', region: 'syd1', country: 'au', zone: 'common' } # common node0013 }.freeze # Default attributes if no subnet matches, also defined as a constant @@ -47,3 +47,4 @@ subnet_attributes = SubnetAttributes.attributes(ip) Facter.add('environment') { setcode { subnet_attributes[:environment] } } Facter.add('region') { setcode { subnet_attributes[:region] } } Facter.add('country') { setcode { subnet_attributes[:country] } } +Facter.add('zone') { setcode { subnet_attributes[:zone] } }