feat: add region fact

- add fact that maps primary ip subnet to a region code
- defaults to 'lost' if there is no subnet to region mapping
This commit is contained in:
Ben Vincent 2023-12-24 14:12:54 +11:00
parent 685d7db264
commit 7431ebf51c

View File

@ -0,0 +1,28 @@
# frozen_string_literal: true
# set region based on the subnet
Facter.add('region') do
setcode do
# use facts['networking']['ip']to find the promary IP address
ip = Facter.value(:networking)['ip']
# subnet to region mapping
subnet_to_region = {
'198.18.17.0/24' => 'au-drw-1'
}
require 'ipaddr'
# Find the region for the IP
region = 'lost' # default to 'lost' if no region matches
subnet_to_region.each do |subnet, region_name|
if IPAddr.new(subnet).include?(IPAddr.new(ip))
region = region_name
break
end
end
region
end
end