Alexandros Kosiaris has uploaded a new change for review.
https://gerrit.wikimedia.org/r/313650
Change subject: Rework network::subnets
......................................................................
Rework network::subnets
network::subnets was recently made a hiera variable instead of a puppet
hash. Various realms were meant to use it as is without really
overriding it however. The nature of the different hiera configurations
of the realms also meant it was difficult to create a cross realm hiera
variable. Due to this, move the data into the module, into a YAML file
and away from hiera. Amend network::constants to load it into scope and
amend slice_network_constants to use that Puppet variable to get the
data instead of using a hiera lookup
Change-Id: Ia80e5263db88a0b3a845ae6ac21548725120f0eb
---
M hieradata/labs.yaml
M hieradata/regex.yaml
R modules/network/data/data.yaml
M modules/network/lib/puppet/parser/functions/slice_network_constants.rb
M modules/network/manifests/constants.pp
D modules/network/spec/fixtures/hiera.yaml
D modules/network/spec/fixtures/hieradata/common.yaml
M modules/network/spec/functions/slice_network_constants_spec.rb
M modules/network/spec/spec_helper.rb
9 files changed, 34 insertions(+), 720 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/operations/puppet
refs/changes/50/313650/1
diff --git a/hieradata/labs.yaml b/hieradata/labs.yaml
index e70bc12..f15e90c 100644
--- a/hieradata/labs.yaml
+++ b/hieradata/labs.yaml
@@ -142,193 +142,3 @@
labsldapconfig:
hostname: ldap-labs.eqiad.wikimedia.org
secondary_hostname: ldap-labs.codfw.wikimedia.org
-
-network::subnets:
- production:
- eqiad:
- public:
- public1-a-eqiad:
- ipv4: 208.80.154.0/26
- ipv6: 2620:0:861:1::/64
- public1-b-eqiad:
- ipv4: 208.80.154.128/26
- ipv6: 2620:0:861:2::/64
- public1-c-eqiad:
- ipv4: 208.80.154.64/26
- ipv6: 2620:0:861:3::/64
- public1-d-eqiad:
- ipv4: 208.80.155.96/27
- ipv6: 2620:0:861:4::/64
- public1-lvs-eqiad:
- ipv4: 208.80.154.224/27
- ipv6: 2620:0:861:ed1a::/64
- private:
- private1-a-eqiad:
- ipv4: 10.64.0.0/22
- ipv6: 2620:0:861:101::/64
- private1-b-eqiad:
- ipv4: 10.64.16.0/22
- ipv6: 2620:0:861:102::/64
- private1-c-eqiad:
- ipv4: 10.64.32.0/22
- ipv6: 2620:0:861:103::/64
- private1-d-eqiad:
- ipv4: 10.64.48.0/22
- ipv6: 2620:0:861:107::/64
- labs-hosts1-a-eqiad:
- ipv4: 10.64.4.0/24
- ipv6: 2620:0:861:117::/64
- labs-hosts1-b-eqiad:
- ipv4: 10.64.20.0/24
- ipv6: 2620:0:861:118::/64
- labs-hosts1-d-eqiad:
- ipv4: 10.64.52.0/24
- labs-support1-c-eqiad:
- ipv4: 10.64.37.0/24
- ipv6: 2620:0:861:119::/64
- analytics1-a-eqiad:
- ipv4: 10.64.5.0/24
- ipv6: 2620:0:861:104::/64
- analytics1-b-eqiad:
- ipv4: 10.64.21.0/24
- ipv6: 2620:0:861:105::/64
- analytics1-c-eqiad:
- ipv4: 10.64.36.0/24
- ipv6: 2620:0:861:106::/64
- analytics1-d-eqiad:
- ipv4: 10.64.53.0/24
- ipv6: 2620:0:861:108::/64
- codfw:
- public:
- public1-a-codfw:
- ipv4: 208.80.153.0/27
- ipv6: 2620:0:860:1::/64
- public1-b-codfw:
- ipv4: 208.80.153.32/27
- ipv6: 2620:0:860:2::/64
- public1-c-codfw:
- ipv4: 208.80.153.64/27
- ipv6: 2620:0:860:3::/64
- public1-d-codfw:
- ipv4: 208.80.153.96/27
- ipv6: 2620:0:860:4::/64
- public1-lvs-codfw:
- ipv4: 208.80.153.224/27
- ipv6: 2620:0:860:ed1a::/64
- private:
- private1-a-codfw:
- ipv4: 10.192.0.0/22
- ipv6: 2620:0:860:101::/64
- private1-b-codfw:
- ipv4: 10.192.16.0/22
- ipv6: 2620:0:860:102::/64
- private1-c-codfw:
- ipv4: 10.192.32.0/22
- ipv6: 2620:0:860:103::/64
- private1-d-codfw:
- ipv4: 10.192.48.0/22
- ipv6: 2620:0:860:104::/64
- esams:
- public:
- public1-esams:
- ipv4: 91.198.174.0/25
- ipv6: 2620:0:862:1::/64
- public1-lvs-esams:
- ipv4: 91.198.174.192/27
- ipv6: 2620:0:862:ed1a::/64
- private:
- private1-esams:
- ipv4: 10.20.0.0/24
- ipv6: 2620:0:862:102::/64
- ulsfo:
- public:
- public1-ulsfo:
- ipv4: 198.35.26.0/28
- ipv6: 2620:0:863:1::/64
- public1-lvs-ulsfo:
- ipv4: 198.35.26.96/27
- ipv6: 2620:0:863:ed1a::/64
- private:
- private1-ulsfo:
- ipv4: 10.128.0.0/24
- ipv6: 2620:0:863:101::/64
- frack:
- eqiad:
- public:
- frack-external1-c-eqiad:
- ipv4: 208.80.155.0/27
- private:
- frack-payments1-c-eqiad:
- ipv4: 10.64.40.0/27
- frack-bastion1-c-eqiad:
- ipv4: 10.64.40.32/27
- frack-administration1-c-eqiad:
- ipv4: 10.64.40.64/27
- frack-fundraising1-c-eqiad:
- ipv4: 10.64.40.96/27
- frack-DMZ1-c-eqiad:
- ipv4: 10.64.40.128/27
- frack-listenerdmz1-c-eqiad:
- ipv4: 10.64.40.160/27
- codfw:
- public:
- frack-external-codfw:
- ipv4: 208.80.152.224/28
- private:
- frack-payments-codfw:
- ipv4: 10.195.0.0/27
- frack-bastion-codfw:
- ipv4: 10.195.0.64/29
- frack-administration-codfw:
- ipv4: 10.195.0.72/29
- frack-fundraising-codfw:
- ipv4: 10.195.0.32/27
- frack-listenerdmz-codfw:
- ipv4: 10.195.0.80/29
- frack-management-codfw:
- ipv4: 10.195.0.96/27
- sandbox:
- eqiad:
- public:
- sandbox1-b-eqiad:
- ipv4: 208.80.155.64/28
- ipv6: 2620:0:861:202::/64
- codfw:
- public:
- sandbox1-a-codfw:
- ipv4: 208.80.152.240/28
- ipv6: 2620:0:860:201::/64
- ulsfo:
- public:
- sandbox1-ulsfo:
- ipv4: 198.35.26.240/28
- ipv6: 2620:0:863:201::/64
- labs:
- eqiad:
- private:
- labs-instances1-a-eqiad:
- ipv4: 10.68.0.0/24
- ipv6: 2620:0:861:201::/64
- labs-instances1-b-eqiad:
- ipv4: 10.68.16.0/21
- ipv6: 2620:0:861:202::/64
- labs-instances1-c-eqiad:
- ipv4: 10.68.32.0/24
- ipv6: 2620:0:861:203::/64
- labs-instances1-d-eqiad:
- ipv4: 10.68.48.0/24
- ipv6: 2620:0:861:204::/64
- codfw:
- private:
- labs-instances1-a-codfw:
- ipv4: 10.196.0.0/24
- ipv6: 2620:0:860:201::/64
- labs-instances1-b-codfw:
- ipv4: 10.196.16.0/21
- ipv6: 2620:0:860:202::/64
- labs-instances1-c-codfw:
- ipv4: 10.196.32.0/24
- ipv6: 2620:0:860:203::/64
- labs-instances1-d-codfw:
- ipv4: 10.196.48.0/24
- ipv6: 2620:0:860:204::/64
diff --git a/hieradata/regex.yaml b/hieradata/regex.yaml
index 865c83c..c5300c8 100644
--- a/hieradata/regex.yaml
+++ b/hieradata/regex.yaml
@@ -472,313 +472,4 @@
openstack::horizon::service::webserver_hostname:
'labtesthorizon.wikimedia.org'
admin::groups:
- labtest-roots
- network::subnets:
- labtest:
- eqiad:
- public:
- public1-a-eqiad:
- ipv4: 208.80.154.0/26
- ipv6: 2620:0:861:1::/64
- public1-b-eqiad:
- ipv4: 208.80.154.128/26
- ipv6: 2620:0:861:2::/64
- public1-c-eqiad:
- ipv4: 208.80.154.64/26
- ipv6: 2620:0:861:3::/64
- public1-d-eqiad:
- ipv4: 208.80.155.96/27
- ipv6: 2620:0:861:4::/64
- public1-lvs-eqiad:
- ipv4: 208.80.154.224/27
- ipv6: 2620:0:861:ed1a::/64
- private:
- private1-a-eqiad:
- ipv4: 10.64.0.0/22
- ipv6: 2620:0:861:101::/64
- private1-b-eqiad:
- ipv4: 10.64.16.0/22
- ipv6: 2620:0:861:102::/64
- private1-c-eqiad:
- ipv4: 10.64.32.0/22
- ipv6: 2620:0:861:103::/64
- private1-d-eqiad:
- ipv4: 10.64.48.0/22
- ipv6: 2620:0:861:107::/64
- labs-hosts1-a-eqiad:
- ipv4: 10.64.4.0/24
- ipv6: 2620:0:861:117::/64
- labs-hosts1-b-eqiad:
- ipv4: 10.64.20.0/24
- ipv6: 2620:0:861:118::/64
- labs-hosts1-d-eqiad:
- ipv4: 10.64.52.0/24
- labs-support1-c-eqiad:
- ipv4: 10.64.37.0/24
- ipv6: 2620:0:861:119::/64
- analytics1-a-eqiad:
- ipv4: 10.64.5.0/24
- ipv6: 2620:0:861:104::/64
- analytics1-b-eqiad:
- ipv4: 10.64.21.0/24
- ipv6: 2620:0:861:105::/64
- analytics1-c-eqiad:
- ipv4: 10.64.36.0/24
- ipv6: 2620:0:861:106::/64
- analytics1-d-eqiad:
- ipv4: 10.64.53.0/24
- ipv6: 2620:0:861:108::/64
- codfw:
- public:
- public1-a-codfw:
- ipv4: 208.80.153.0/27
- ipv6: 2620:0:860:1::/64
- public1-b-codfw:
- ipv4: 208.80.153.32/27
- ipv6: 2620:0:860:2::/64
- public1-c-codfw:
- ipv4: 208.80.153.64/27
- ipv6: 2620:0:860:3::/64
- public1-d-codfw:
- ipv4: 208.80.153.96/27
- ipv6: 2620:0:860:4::/64
- public1-lvs-codfw:
- ipv4: 208.80.153.224/27
- ipv6: 2620:0:860:ed1a::/64
- private:
- private1-a-codfw:
- ipv4: 10.192.0.0/22
- ipv6: 2620:0:860:101::/64
- private1-b-codfw:
- ipv4: 10.192.16.0/22
- ipv6: 2620:0:860:102::/64
- private1-c-codfw:
- ipv4: 10.192.32.0/22
- ipv6: 2620:0:860:103::/64
- private1-d-codfw:
- ipv4: 10.192.48.0/22
- ipv6: 2620:0:860:104::/64
- labs-hosts1-b-codfw:
- ipv4: 10.192.20.0/24
- ipv6: 2620:0:860:118::/64
- labs-support1-b-codfw:
- ipv4: 10.192.21.0/24
- ipv6: 2620:0:860:122::/64
- esams:
- public:
- public1-esams:
- ipv4: 91.198.174.0/25
- ipv6: 2620:0:862:1::/64
- public1-lvs-esams:
- ipv4: 91.198.174.192/27
- ipv6: 2620:0:862:ed1a::/64
- private:
- private1-esams:
- ipv4: 10.20.0.0/24
- ipv6: 2620:0:862:102::/64
- ulsfo:
- public:
- public1-ulsfo:
- ipv4: 198.35.26.0/28
- ipv6: 2620:0:863:1::/64
- public1-lvs-ulsfo:
- ipv4: 198.35.26.96/27
- ipv6: 2620:0:863:ed1a::/64
- private:
- private1-ulsfo:
- ipv4: 10.128.0.0/24
- ipv6: 2620:0:863:101::/64
- production:
- eqiad:
- public:
- public1-a-eqiad:
- ipv4: 208.80.154.0/26
- ipv6: 2620:0:861:1::/64
- public1-b-eqiad:
- ipv4: 208.80.154.128/26
- ipv6: 2620:0:861:2::/64
- public1-c-eqiad:
- ipv4: 208.80.154.64/26
- ipv6: 2620:0:861:3::/64
- public1-d-eqiad:
- ipv4: 208.80.155.96/27
- ipv6: 2620:0:861:4::/64
- public1-lvs-eqiad:
- ipv4: 208.80.154.224/27
- ipv6: 2620:0:861:ed1a::/64
- private:
- private1-a-eqiad:
- ipv4: 10.64.0.0/22
- ipv6: 2620:0:861:101::/64
- private1-b-eqiad:
- ipv4: 10.64.16.0/22
- ipv6: 2620:0:861:102::/64
- private1-c-eqiad:
- ipv4: 10.64.32.0/22
- ipv6: 2620:0:861:103::/64
- private1-d-eqiad:
- ipv4: 10.64.48.0/22
- ipv6: 2620:0:861:107::/64
- labs-hosts1-a-eqiad:
- ipv4: 10.64.4.0/24
- ipv6: 2620:0:861:117::/64
- labs-hosts1-b-eqiad:
- ipv4: 10.64.20.0/24
- ipv6: 2620:0:861:118::/64
- labs-hosts1-d-eqiad:
- ipv4: 10.64.52.0/24
- labs-support1-c-eqiad:
- ipv4: 10.64.37.0/24
- ipv6: 2620:0:861:119::/64
- analytics1-a-eqiad:
- ipv4: 10.64.5.0/24
- ipv6: 2620:0:861:104::/64
- analytics1-b-eqiad:
- ipv4: 10.64.21.0/24
- ipv6: 2620:0:861:105::/64
- analytics1-c-eqiad:
- ipv4: 10.64.36.0/24
- ipv6: 2620:0:861:106::/64
- analytics1-d-eqiad:
- ipv4: 10.64.53.0/24
- ipv6: 2620:0:861:108::/64
- codfw:
- public:
- public1-a-codfw:
- ipv4: 208.80.153.0/27
- ipv6: 2620:0:860:1::/64
- public1-b-codfw:
- ipv4: 208.80.153.32/27
- ipv6: 2620:0:860:2::/64
- public1-c-codfw:
- ipv4: 208.80.153.64/27
- ipv6: 2620:0:860:3::/64
- public1-d-codfw:
- ipv4: 208.80.153.96/27
- ipv6: 2620:0:860:4::/64
- public1-lvs-codfw:
- ipv4: 208.80.153.224/27
- ipv6: 2620:0:860:ed1a::/64
- private:
- private1-a-codfw:
- ipv4: 10.192.0.0/22
- ipv6: 2620:0:860:101::/64
- private1-b-codfw:
- ipv4: 10.192.16.0/22
- ipv6: 2620:0:860:102::/64
- private1-c-codfw:
- ipv4: 10.192.32.0/22
- ipv6: 2620:0:860:103::/64
- private1-d-codfw:
- ipv4: 10.192.48.0/22
- ipv6: 2620:0:860:104::/64
- labs-hosts1-b-codfw:
- ipv4: 10.192.20.0/24
- ipv6: 2620:0:860:118::/64
- labs-support1-b-codfw:
- ipv4: 10.192.21.0/24
- ipv6: 2620:0:860:122::/64
- esams:
- public:
- public1-esams:
- ipv4: 91.198.174.0/25
- ipv6: 2620:0:862:1::/64
- public1-lvs-esams:
- ipv4: 91.198.174.192/27
- ipv6: 2620:0:862:ed1a::/64
- private:
- private1-esams:
- ipv4: 10.20.0.0/24
- ipv6: 2620:0:862:102::/64
- ulsfo:
- public:
- public1-ulsfo:
- ipv4: 198.35.26.0/28
- ipv6: 2620:0:863:1::/64
- public1-lvs-ulsfo:
- ipv4: 198.35.26.96/27
- ipv6: 2620:0:863:ed1a::/64
- private:
- private1-ulsfo:
- ipv4: 10.128.0.0/24
- ipv6: 2620:0:863:101::/64
- frack:
- eqiad:
- public:
- frack-external1-c-eqiad:
- ipv4: 208.80.155.0/27
- private:
- frack-payments1-c-eqiad:
- ipv4: 10.64.40.0/27
- frack-bastion1-c-eqiad:
- ipv4: 10.64.40.32/27
- frack-administration1-c-eqiad:
- ipv4: 10.64.40.64/27
- frack-fundraising1-c-eqiad:
- ipv4: 10.64.40.96/27
- frack-DMZ1-c-eqiad:
- ipv4: 10.64.40.128/27
- frack-listenerdmz1-c-eqiad:
- ipv4: 10.64.40.160/27
- codfw:
- public:
- frack-external-codfw:
- ipv4: 208.80.152.224/28
- private:
- frack-payments-codfw:
- ipv4: 10.195.0.0/27
- frack-bastion-codfw:
- ipv4: 10.195.0.64/29
- frack-administration-codfw:
- ipv4: 10.195.0.72/29
- frack-fundraising-codfw:
- ipv4: 10.195.0.32/27
- frack-listenerdmz-codfw:
- ipv4: 10.195.0.80/29
- frack-management-codfw:
- ipv4: 10.195.0.96/27
- sandbox:
- eqiad:
- public:
- sandbox1-b-eqiad:
- ipv4: 208.80.155.64/28
- ipv6: 2620:0:861:202::/64
- codfw:
- public:
- sandbox1-a-codfw:
- ipv4: 208.80.152.240/28
- ipv6: 2620:0:860:201::/64
- ulsfo:
- public:
- sandbox1-ulsfo:
- ipv4: 198.35.26.240/28
- ipv6: 2620:0:863:201::/64
- labs:
- eqiad:
- private:
- labs-instances1-a-eqiad:
- ipv4: 10.68.0.0/24
- ipv6: 2620:0:861:201::/64
- labs-instances1-b-eqiad:
- ipv4: 10.68.16.0/21
- ipv6: 2620:0:861:202::/64
- labs-instances1-c-eqiad:
- ipv4: 10.68.32.0/24
- ipv6: 2620:0:861:203::/64
- labs-instances1-d-eqiad:
- ipv4: 10.68.48.0/24
- ipv6: 2620:0:861:204::/64
- codfw:
- private:
- labs-instances1-a-codfw:
- ipv4: 10.196.0.0/24
- ipv6: 2620:0:860:201::/64
- labs-instances1-b-codfw:
- ipv4: 10.196.16.0/21
- ipv6: 2620:0:860:202::/64
- labs-instances1-c-codfw:
- ipv4: 10.196.32.0/24
- ipv6: 2620:0:860:203::/64
- labs-instances1-d-codfw:
- ipv4: 10.196.48.0/24
- ipv6: 2620:0:860:204::/64
openstack::version: 'liberty'
diff --git a/hieradata/common/network.yaml b/modules/network/data/data.yaml
similarity index 98%
rename from hieradata/common/network.yaml
rename to modules/network/data/data.yaml
index 6a80c16..e0681a9 100644
--- a/hieradata/common/network.yaml
+++ b/modules/network/data/data.yaml
@@ -1,4 +1,4 @@
-subnets:
+network::subnets:
production:
eqiad:
public:
diff --git
a/modules/network/lib/puppet/parser/functions/slice_network_constants.rb
b/modules/network/lib/puppet/parser/functions/slice_network_constants.rb
index 35f2a0c..d4c6b33 100644
--- a/modules/network/lib/puppet/parser/functions/slice_network_constants.rb
+++ b/modules/network/lib/puppet/parser/functions/slice_network_constants.rb
@@ -39,7 +39,7 @@
newfunction(:slice_network_constants, :type => :rvalue, :arity => -2) do
|args|
fail ArgumentError, 'slice_network_constants() requires an argument' if
args.empty?
fail ArgumentError, 'slice_network_constants() cannot handle more than 2
values' if args.length > 2
- all_network_subnets = function_hiera(['network::subnets'])
+ all_network_subnets = lookupvar('all_network_subnets')
realm = args[0]
options = args[1] if args.length > 1
requested_site = options['site'] if options
diff --git a/modules/network/manifests/constants.pp
b/modules/network/manifests/constants.pp
index ada9c0a..bf47f5a 100644
--- a/modules/network/manifests/constants.pp
+++ b/modules/network/manifests/constants.pp
@@ -10,6 +10,9 @@
'185.15.56.0/22',
'2a02:ec80::/32',
]
+ $module_path = get_module_path($module_name)
+ $network_data = loadyaml("${module_path}/data/data.yaml")
+ $all_network_subnets = $network_data['network::subnets']
# are you really sure you want to use this? maybe what you really
# the trusted/production networks. See $production_networks for this.
@@ -108,7 +111,6 @@
}
}
- $all_network_subnets = hiera('network::subnets')
# Networks hosting MediaWiki application servers
# These are:
diff --git a/modules/network/spec/fixtures/hiera.yaml
b/modules/network/spec/fixtures/hiera.yaml
deleted file mode 100644
index 4f2ee1c..0000000
--- a/modules/network/spec/fixtures/hiera.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-:backends:
- - yaml
-:yaml:
- :datadir: 'spec/fixtures/hieradata'
-:hierarchy:
- - common
diff --git a/modules/network/spec/fixtures/hieradata/common.yaml
b/modules/network/spec/fixtures/hieradata/common.yaml
deleted file mode 100644
index fb63041..0000000
--- a/modules/network/spec/fixtures/hieradata/common.yaml
+++ /dev/null
@@ -1,197 +0,0 @@
-# TODO: Once all usages of all_network_constants have migrated to use the
-# slice_network_subnets functions, this should be turned into dummy data
-network::subnets:
- production:
- eqiad:
- public:
- public1-a-eqiad:
- ipv4: 208.80.154.0/26
- ipv6: 2620:0:861:1::/64
- public1-b-eqiad:
- ipv4: 208.80.154.128/26
- ipv6: 2620:0:861:2::/64
- public1-c-eqiad:
- ipv4: 208.80.154.64/26
- ipv6: 2620:0:861:3::/64
- public1-d-eqiad:
- ipv4: 208.80.155.96/27
- ipv6: 2620:0:861:4::/64
- public1-lvs-eqiad:
- ipv4: 208.80.154.224/27
- ipv6: 2620:0:861:ed1a::/64
- private:
- private1-a-eqiad:
- ipv4: 10.64.0.0/22
- ipv6: 2620:0:861:101::/64
- private1-b-eqiad:
- ipv4: 10.64.16.0/22
- ipv6: 2620:0:861:102::/64
- private1-c-eqiad:
- ipv4: 10.64.32.0/22
- ipv6: 2620:0:861:103::/64
- private1-d-eqiad:
- ipv4: 10.64.48.0/22
- ipv6: 2620:0:861:107::/64
- labs-hosts1-a-eqiad:
- ipv4: 10.64.4.0/24
- ipv6: 2620:0:861:117::/64
- labs-hosts1-b-eqiad:
- ipv4: 10.64.20.0/24
- ipv6: 2620:0:861:118::/64
- labs-hosts1-d-eqiad:
- ipv4: 10.64.52.0/24
- labs-support1-c-eqiad:
- ipv4: 10.64.37.0/24
- ipv6: 2620:0:861:119::/64
- analytics1-a-eqiad:
- ipv4: 10.64.5.0/24
- ipv6: 2620:0:861:104::/64
- analytics1-b-eqiad:
- ipv4: 10.64.21.0/24
- ipv6: 2620:0:861:105::/64
- analytics1-c-eqiad:
- ipv4: 10.64.36.0/24
- ipv6: 2620:0:861:106::/64
- analytics1-d-eqiad:
- ipv4: 10.64.53.0/24
- ipv6: 2620:0:861:108::/64
- codfw:
- public:
- public1-a-codfw:
- ipv4: 208.80.153.0/27
- ipv6: 2620:0:860:1::/64
- public1-b-codfw:
- ipv4: 208.80.153.32/27
- ipv6: 2620:0:860:2::/64
- public1-c-codfw:
- ipv4: 208.80.153.64/27
- ipv6: 2620:0:860:3::/64
- public1-d-codfw:
- ipv4: 208.80.153.96/27
- ipv6: 2620:0:860:4::/64
- public1-lvs-codfw:
- ipv4: 208.80.153.224/27
- ipv6: 2620:0:860:ed1a::/64
- private:
- private1-a-codfw:
- ipv4: 10.192.0.0/22
- ipv6: 2620:0:860:101::/64
- private1-b-codfw:
- ipv4: 10.192.16.0/22
- ipv6: 2620:0:860:102::/64
- private1-c-codfw:
- ipv4: 10.192.32.0/22
- ipv6: 2620:0:860:103::/64
- private1-d-codfw:
- ipv4: 10.192.48.0/22
- ipv6: 2620:0:860:104::/64
- labs-hosts1-b-codfw:
- ipv4: 10.192.20.0/24
- ipv6: 2620:0:860:118::/64
- labs-support1-b-codfw:
- ipv4: 10.192.21.0/24
- ipv6: 2620:0:860:122::/64
- esams:
- public:
- public1-esams:
- ipv4: 91.198.174.0/25
- ipv6: 2620:0:862:1::/64
- public1-lvs-esams:
- ipv4: 91.198.174.192/27
- ipv6: 2620:0:862:ed1a::/64
- private:
- private1-esams:
- ipv4: 10.20.0.0/24
- ipv6: 2620:0:862:102::/64
- ulsfo:
- public:
- public1-ulsfo:
- ipv4: 198.35.26.0/28
- ipv6: 2620:0:863:1::/64
- public1-lvs-ulsfo:
- ipv4: 198.35.26.96/27
- ipv6: 2620:0:863:ed1a::/64
- private:
- private1-ulsfo:
- ipv4: 10.128.0.0/24
- ipv6: 2620:0:863:101::/64
- frack:
- eqiad:
- public:
- frack-external1-c-eqiad:
- ipv4: 208.80.155.0/27
- private:
- frack-payments1-c-eqiad:
- ipv4: 10.64.40.0/27
- frack-bastion1-c-eqiad:
- ipv4: 10.64.40.32/27
- frack-administration1-c-eqiad:
- ipv4: 10.64.40.64/27
- frack-fundraising1-c-eqiad:
- ipv4: 10.64.40.96/27
- frack-DMZ1-c-eqiad:
- ipv4: 10.64.40.128/27
- frack-listenerdmz1-c-eqiad:
- ipv4: 10.64.40.160/27
- codfw:
- public:
- frack-external-codfw:
- ipv4: 208.80.152.224/28
- private:
- frack-payments-codfw:
- ipv4: 10.195.0.0/27
- frack-bastion-codfw:
- ipv4: 10.195.0.64/29
- frack-administration-codfw:
- ipv4: 10.195.0.72/29
- frack-fundraising-codfw:
- ipv4: 10.195.0.32/27
- frack-listenerdmz-codfw:
- ipv4: 10.195.0.80/29
- frack-management-codfw:
- ipv4: 10.195.0.96/27
- sandbox:
- eqiad:
- public:
- sandbox1-b-eqiad:
- ipv4: 208.80.155.64/28
- ipv6: 2620:0:861:202::/64
- codfw:
- public:
- sandbox1-a-codfw:
- ipv4: 208.80.152.240/28
- ipv6: 2620:0:860:201::/64
- ulsfo:
- public:
- sandbox1-ulsfo:
- ipv4: 198.35.26.240/28
- ipv6: 2620:0:863:201::/64
- labs:
- eqiad:
- private:
- labs-instances1-a-eqiad:
- ipv4: 10.68.0.0/24
- ipv6: 2620:0:861:201::/64
- labs-instances1-b-eqiad:
- ipv4: 10.68.16.0/21
- ipv6: 2620:0:861:202::/64
- labs-instances1-c-eqiad:
- ipv4: 10.68.32.0/24
- ipv6: 2620:0:861:203::/64
- labs-instances1-d-eqiad:
- ipv4: 10.68.48.0/24
- ipv6: 2620:0:861:204::/64
- codfw:
- private:
- labs-instances1-a-codfw:
- ipv4: 10.196.0.0/24
- ipv6: 2620:0:860:201::/64
- labs-instances1-b-codfw:
- ipv4: 10.196.16.0/21
- ipv6: 2620:0:860:202::/64
- labs-instances1-c-codfw:
- ipv4: 10.196.32.0/24
- ipv6: 2620:0:860:203::/64
- labs-instances1-d-codfw:
- ipv4: 10.196.48.0/24
- ipv6: 2620:0:860:204::/64
diff --git a/modules/network/spec/functions/slice_network_constants_spec.rb
b/modules/network/spec/functions/slice_network_constants_spec.rb
index a3c9821..ec2a7ba 100644
--- a/modules/network/spec/functions/slice_network_constants_spec.rb
+++ b/modules/network/spec/functions/slice_network_constants_spec.rb
@@ -1,74 +1,90 @@
require 'spec_helper'
+require 'puppetlabs_spec_helper/puppetlabs_spec/puppet_internals'
+require 'yaml'
describe "slice_network_constants" do
+ all_network_subnets = YAML.load_file(File.dirname(__FILE__) +
"/../../data/data.yaml")['network::subnets']
+ let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
+
it "should exist" do
expect(Puppet::Parser::Functions.function("slice_network_constants")).to
eq "function_slice_network_constants"
end
it "should raise a ParseError if there are less than 1 arguments" do
- expect { subject.call([]) }.to raise_error(ArgumentError)
+ expect { scope.function_slice_network_constants([])}.to
raise_error(ArgumentError)
end
it "should raise a ParseError if there are more than 2 arguments" do
- expect { subject.call(['a', 'b', 'c']) }.to raise_error(ArgumentError)
+ expect { scope.function_slice_network_constants(['a', 'b', 'c']) }.to
raise_error(ArgumentError)
end
# Test realm
it "should complain about invalid realm" do
- expect { subject.call(['nosuchrealm']) }.to raise_error(ArgumentError)
+
scope.stubs(:lookupvar).with('all_network_subnets').returns(all_network_subnets)
+ expect { scope.function_slice_network_constants(['nosuchrealm']) }.to
raise_error(ArgumentError)
end
it "should return for valid realm" do
- result = subject.call(['production'])
+
scope.stubs(:lookupvar).with('all_network_subnets').returns(all_network_subnets)
+ result = scope.function_slice_network_constants(['production'])
expect(result).to be_an Array
end
# Test site
it "should complain about invalid site" do
- expect { subject.call(['production', { 'site' => 'nosuchsite'}])}.to
raise_error(ArgumentError)
+
scope.stubs(:lookupvar).with('all_network_subnets').returns(all_network_subnets)
+ expect { scope.function_slice_network_constants(['production', { 'site' =>
'nosuchsite'}])}.to raise_error(ArgumentError)
end
it "should return for valid site" do
- result = subject.call(['production', { 'site' => 'eqiad'}])
+
scope.stubs(:lookupvar).with('all_network_subnets').returns(all_network_subnets)
+ result = scope.function_slice_network_constants(['production', { 'site' =>
'eqiad'}])
expect(result).to be_an Array
# TODO: After migrating to dummy data actually test this result for
equality
end
# Test sphere
it "should complain about invalid sphere" do
- expect{ subject.call(['production', { 'sphere' => 'nosuchsphere'}])}.to
raise_error(ArgumentError)
+
scope.stubs(:lookupvar).with('all_network_subnets').returns(all_network_subnets)
+ expect{ scope.function_slice_network_constants(['production', { 'sphere'
=> 'nosuchsphere'}])}.to raise_error(ArgumentError)
end
it "should return for valid sphere" do
- result = subject.call(['production', { 'sphere' => 'public'}])
+
scope.stubs(:lookupvar).with('all_network_subnets').returns(all_network_subnets)
+ result = scope.function_slice_network_constants(['production', { 'sphere'
=> 'public'}])
expect(result).to be_an Array
# TODO: After migrating to dummy data actually test this result for
equality
end
# Test AF
it "should complain about invalid af" do
- expect{ subject.call(['production', { 'af' => 'nosuchaf'}])}.to
raise_error(ArgumentError)
+
scope.stubs(:lookupvar).with('all_network_subnets').returns(all_network_subnets)
+ expect{ scope.function_slice_network_constants(['production', { 'af' =>
'nosuchaf'}])}.to raise_error(ArgumentError)
end
it "should return for valid af" do
- result = subject.call(['production', { 'af' => 'ipv6'}])
+
scope.stubs(:lookupvar).with('all_network_subnets').returns(all_network_subnets)
+ result = scope.function_slice_network_constants(['production', { 'af' =>
'ipv6'}])
expect(result).to be_an Array
# TODO: After migrating to dummy data actually test this result for
equality
end
# Multiple together
it "should return for valid site/af" do
- result = subject.call(['production', { 'site' => 'eqiad', 'af' => 'ipv6'}])
+
scope.stubs(:lookupvar).with('all_network_subnets').returns(all_network_subnets)
+ result = scope.function_slice_network_constants(['production', { 'site' =>
'eqiad', 'af' => 'ipv6'}])
expect(result).to be_an Array
# TODO: After migrating to dummy data actually test this result for
equality
end
it "should return for valid site/sphere" do
- result = subject.call(['production', { 'site' => 'eqiad', 'sphere' =>
'public'}])
+
scope.stubs(:lookupvar).with('all_network_subnets').returns(all_network_subnets)
+ result = scope.function_slice_network_constants(['production', { 'site' =>
'eqiad', 'sphere' => 'public'}])
expect(result).to be_an Array
# TODO: After migrating to dummy data actually test this result for
equality
end
it "should return for valid description" do
- result = subject.call(['production', { 'site' => 'eqiad', 'description' =>
'analytics'}])
+
scope.stubs(:lookupvar).with('all_network_subnets').returns(all_network_subnets)
+ result = scope.function_slice_network_constants(['production', { 'site' =>
'eqiad', 'description' => 'analytics'}])
expect(result).to be_an Array
# TODO: After migrating to dummy data actually test this result for
equality
end
diff --git a/modules/network/spec/spec_helper.rb
b/modules/network/spec/spec_helper.rb
index 7965c90..421fd71 100644
--- a/modules/network/spec/spec_helper.rb
+++ b/modules/network/spec/spec_helper.rb
@@ -6,6 +6,4 @@
RSpec.configure do |c|
c.module_path = File.join(fixture_path, 'modules')
c.manifest_dir = File.join(fixture_path, 'manifests')
- c.environmentpath = File.join(Dir.pwd, 'spec')
- c.hiera_config = File.join(fixture_path, 'hiera.yaml')
end
--
To view, visit https://gerrit.wikimedia.org/r/313650
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia80e5263db88a0b3a845ae6ac21548725120f0eb
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Alexandros Kosiaris <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits