+site = ENV['ICN_SITE'] || 'vm'
+with_jenkins = ENV['WITH_JENKINS'] || false
+
+# Calculate the baremetal network address from the bmcAddress (aka
+# IPMI address) specified in the machine pool values. IPMI in the
+# virtual environment is emulated by virtualbmc listening on the host.
+baremetal4_gw = '192.168.151.1'
+baremetal4_netmask = '255.255.255.0'
+baremetal6_gw = nil
+baremetal6_prefix = nil
+bmc_host = '192.168.121.1' # From the default vagrant-libvirt network
+registry_mirrors = nil
+Dir.glob("deploy/site/#{site}/deployment/*.yaml") do |file|
+ YAML.load_stream(File.read(file)) do |document|
+ values = document.fetch('spec', {}).fetch('values', {})
+ unless values['networkData'].nil? or values['networkData']['networks'].nil?
+ networks = values['networkData']['networks']
+ unless networks['ipv4'].nil?
+ networks['ipv4'].select {|name,network| network.fetch('link', name) == 'baremetal'}.each_value do |network|
+ if network.key?('gateway')
+ baremetal4_gw = network['gateway']
+ elsif network.key?('fromIPPool')
+ pool = network['fromIPPool']
+ if values['ipPools']["#{pool}"].key?('gateway')
+ baremetal4_gw = values['ipPools']["#{pool}"]['gateway']
+ end
+ end
+ end
+ end
+ unless networks['ipv6'].nil?
+ networks['ipv6'].select {|name,network| network.fetch('link', name) == 'baremetal'}.each_value do |network|
+ if network.key?('gateway')
+ baremetal6_gw = network['gateway']
+ baremetal6_prefix = 64
+ elsif network.key?('fromIPPool')
+ pool = network['fromIPPool']
+ if values['ipPools']["#{pool}"].key?('gateway')
+ baremetal6_gw = values['ipPools']["#{pool}"]['gateway']
+ baremetal6_prefix = 64
+ end
+ end
+ end
+ end
+ end
+ unless values['bmcAddress'].nil?
+ bmc_host = URI.parse(values['bmcAddress']).host
+ end
+ unless values['dockerRegistryMirrors'].nil?
+ registry_mirrors = values['dockerRegistryMirrors'].join(' ')
+ end
+ end
+end