Alexandros Kosiaris has submitted this change and it was merged.

Change subject: lvs::configuration: use hiera for lvs_service_ips
......................................................................


lvs::configuration: use hiera for lvs_service_ips

Use hiera for production lvs::configuration::lvs_service_ips, but do
still fallback to the defaults, if configuration does not exist. To
achieve that reliably, move all the realm dereferences in
lvs::configuration and use $service_ips everywhere. $service_ips is
guaranteed to be realm specific.

Change-Id: Ie2022d40b2ff4c110e62ddd8d5683e3a826e96f7
---
A hieradata/common/lvs/configuration.yaml
M manifests/role/dns.pp
M manifests/role/mediawiki.pp
M manifests/role/ocg.pp
M manifests/role/rcstream.pp
M modules/lvs/manifests/configuration.pp
M modules/lvs/manifests/monitor.pp
M modules/role/manifests/cache/bits.pp
M modules/role/manifests/cache/configuration.pp
M modules/role/manifests/cache/misc.pp
M modules/role/manifests/cache/mobile.pp
M modules/role/manifests/cache/parsoid.pp
M modules/role/manifests/cache/text.pp
M modules/role/manifests/cache/upload.pp
M modules/role/manifests/lvs/balancer.pp
15 files changed, 152 insertions(+), 24 deletions(-)

Approvals:
  Alexandros Kosiaris: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/hieradata/common/lvs/configuration.yaml 
b/hieradata/common/lvs/configuration.yaml
new file mode 100644
index 0000000..14722a5
--- /dev/null
+++ b/hieradata/common/lvs/configuration.yaml
@@ -0,0 +1,128 @@
+lvs_service_ips:
+  text:
+    codfw:
+      textlb: 208.80.153.224
+      loginlb: 208.80.153.233
+      textlb6: 2620:0:860:ed1a::1
+      loginlb6: 2620:0:860:ed1a::1:9
+    eqiad:
+      textsvc: 10.2.2.25
+      textlb: 208.80.154.224
+      loginlb: 208.80.154.233
+      textlb6: 2620:0:861:ed1a::1
+      loginlb6: 2620:0:861:ed1a::1:9
+    esams:
+      textsvc: 10.2.3.25
+      textlb: 91.198.174.192
+      loginlb: 91.198.174.201
+      textlb6: 2620:0:862:ed1a::1
+      loginlb6: 2620:0:862:ed1a::1:9
+    ulsfo:
+      textsvc: 10.2.4.25
+      textlb: 198.35.26.96
+      loginlb: 198.35.26.105
+      textlb6: 2620:0:863:ed1a::1
+      loginlb6: 2620:0:863:ed1a::1:9
+  bits:
+    codfw:
+      bitslb: 208.80.153.234
+      bitslb6: 2620:0:860:ed1a::1:a
+    eqiad:
+      bitslb: 208.80.154.234
+      bitslb6: 2620:0:861:ed1a::1:a
+      bitssvc: 10.2.2.23
+    esams:
+      bitslb: 91.198.174.202
+      bitslb6: 2620:0:862:ed1a::1:a
+      bitssvc: 10.2.3.23
+    ulsfo:
+      bitslb: 198.35.26.106
+      bitslb6: 2620:0:863:ed1a::1:a
+      bitssvc: 10.2.4.23
+  upload:
+    codfw:
+      uploadlb: 208.80.153.240
+      uploadlb6: 2620:0:860:ed1a::2:b
+    eqiad:
+      uploadlb: 208.80.154.240
+      uploadlb6: 2620:0:861:ed1a::2:b
+      uploadsvc: 10.2.2.24
+    esams:
+      uploadlb: 91.198.174.208
+      uploadlb6: 2620:0:862:ed1a::2:b
+      uploadsvc: 10.2.3.24
+    ulsfo:
+      uploadlb: 198.35.26.112
+      uploadlb6: 2620:0:863:ed1a::2:b
+      uploadsvc: 10.2.4.24
+  apaches:
+    eqiad: 10.2.2.1
+    codfw: 10.2.1.1
+  rendering:
+    eqiad: 10.2.2.21
+    codfw: 10.2.1.21
+  api:
+    eqiad: 10.2.2.22
+    codfw: 10.2.1.22
+  mobile:
+    codfw:
+      mobilelb: 208.80.153.236
+      mobilelb6: 2620:0:860:ed1a::1:c
+    eqiad:
+      mobilelb: 208.80.154.236
+      mobilelb6: 2620:0:861:ed1a::1:c
+      mobilesvc: 10.2.2.26
+    esams:
+      mobilelb: 91.198.174.204
+      mobilelb6: 2620:0:862:ed1a::1:c
+      mobilesvc: 10.2.3.26
+    ulsfo:
+      mobilelb: 198.35.26.108
+      mobilelb6: 2620:0:863:ed1a::1:c
+      mobilesvc: 10.2.4.26
+  swift:
+    eqiad: 10.2.2.27
+    codfw: 10.2.1.27
+  dns_rec:
+    eqiad:
+      dns_rec: 208.80.154.239
+      dns_rec6: 2620:0:861:ed1a::3:fe
+    codfw:
+      dns_rec: 208.80.153.254
+      dns_rec6: 2620:0:860:ed1a::3:fe
+    esams:
+      dns_rec: 91.198.174.216
+      dns_rec6: 2620:0:862:ed1a::3:fe
+  osm:
+    eqiad: 208.80.154.244
+  misc_web:
+    eqiad:
+      misc_web: 208.80.154.241
+      misc_web6: 2620:0:861:ed1a::11
+  parsoid:
+    eqiad: 10.2.2.28
+  parsoidcache:
+    eqiad:
+      parsoidlb: 208.80.154.248
+      parsoidlb6: 2620:0:861:ed1a::3:14
+      parsoidsvc: 10.2.2.29
+  search:
+    eqiad: 10.2.2.30
+  stream:
+    eqiad:
+      streamlb: 208.80.154.249
+      streamlb6: 2620:0:861:ed1a::3:15
+  ocg:
+    eqiad: 10.2.2.31
+  mathoid:
+    eqiad: 10.2.2.20
+  citoid:
+    eqiad: 10.2.2.19
+  cxserver:
+    eqiad: 10.2.2.18
+  graphoid:
+    eqiad: 10.2.2.15
+  restbase:
+    eqiad: 10.2.2.17
+  zotero:
+    eqiad: 10.2.2.16
diff --git a/manifests/role/dns.pp b/manifests/role/dns.pp
index a2a6334..4a11c3b 100644
--- a/manifests/role/dns.pp
+++ b/manifests/role/dns.pp
@@ -59,12 +59,12 @@
 
     class {
         'lvs::realserver':
-            realserver_ips => 
$lvs::configuration::lvs_service_ips[$::realm]['dns_rec'][$::site];
+            realserver_ips => 
$lvs::configuration::service_ips['dns_rec'][$::site];
         '::dnsrecursor':
             require             => Class['lvs::realserver'],
             listen_addresses    => [$::ipaddress,
                                     $::ipaddress6_eth0,
-                                    
$lvs::configuration::lvs_service_ips[$::realm]['dns_rec'][$::site],
+                                    
$lvs::configuration::service_ips['dns_rec'][$::site],
                                   ],
             allow_from          => $network::constants::all_networks;
     }
diff --git a/manifests/role/mediawiki.pp b/manifests/role/mediawiki.pp
index faa5419..a43441e 100644
--- a/manifests/role/mediawiki.pp
+++ b/manifests/role/mediawiki.pp
@@ -73,7 +73,7 @@
 
     if hiera('has_lvs', true) {
         include ::lvs::configuration
-        $ips = $lvs::configuration::lvs_service_ips[$::realm][$pool][$::site]
+        $ips = $lvs::configuration::service_ips[$pool][$::site]
 
         class { 'lvs::realserver':
             realserver_ips => $ips,
diff --git a/manifests/role/ocg.pp b/manifests/role/ocg.pp
index 25f1eef..6a31e4f 100644
--- a/manifests/role/ocg.pp
+++ b/manifests/role/ocg.pp
@@ -52,7 +52,7 @@
     }
 
     include lvs::configuration
-    class { 'lvs::realserver': realserver_ips => 
$lvs::configuration::lvs_service_ips[$::realm]['ocg'][$::site] }
+    class { 'lvs::realserver': realserver_ips => 
$lvs::configuration::service_ips['ocg'][$::site] }
 }
 
 class role::ocg::test {
diff --git a/manifests/role/rcstream.pp b/manifests/role/rcstream.pp
index 39dcd6c..823f35e 100644
--- a/manifests/role/rcstream.pp
+++ b/manifests/role/rcstream.pp
@@ -40,7 +40,7 @@
     }
 
     class { 'lvs::realserver':
-        realserver_ips => 
$lvs::configuration::lvs_service_ips[$::realm]['stream'][$::site],
+        realserver_ips => $lvs::configuration::service_ips['stream'][$::site],
     }
 
     nrpe::monitor_service { 'rcstream_backend':
diff --git a/modules/lvs/manifests/configuration.pp 
b/modules/lvs/manifests/configuration.pp
index 35d9cca..0996ea9 100644
--- a/modules/lvs/manifests/configuration.pp
+++ b/modules/lvs/manifests/configuration.pp
@@ -80,10 +80,10 @@
         'timeout' => 10,
     }
 
-    # Configuration of PyBal LVS services.
-    # NOTE! Double quotation may be needed for passing strings
-
     # NOTE! This hash is referenced in many other manifests
+    # TODO: This has is now hosting default values. It is being phased out as
+    # you read this, so please refrain from updating it and update the
+    # corresponding hiera configuration
     $lvs_service_ips = {
         'production' => {
             'text' => {
@@ -355,7 +355,7 @@
         },
     }
 
-    $service_ips = $lvs_service_ips[$::realm]
+    $service_ips = hiera('lvs::configuration::lvs_service_ips', 
$lvs_service_ips[$::realm])
 
     $lvs_services = {
         'text' => {
diff --git a/modules/lvs/manifests/monitor.pp b/modules/lvs/manifests/monitor.pp
index f2275b6..e3db6ea 100644
--- a/modules/lvs/manifests/monitor.pp
+++ b/modules/lvs/manifests/monitor.pp
@@ -3,7 +3,7 @@
 class lvs::monitor {
     include lvs::configuration
 
-    $ip = $lvs::configuration::lvs_service_ips['production']
+    $ip = $lvs::configuration::service_ips
 
     # WARNING: Temporary, do not lint this, it is going in hiera anyway
     # lint:ignore:80chars
diff --git a/modules/role/manifests/cache/bits.pp 
b/modules/role/manifests/cache/bits.pp
index 16f303d..119ce51 100644
--- a/modules/role/manifests/cache/bits.pp
+++ b/modules/role/manifests/cache/bits.pp
@@ -9,7 +9,7 @@
     include role::cache::1layer
 
     class { 'lvs::realserver':
-        realserver_ips => 
$lvs::configuration::lvs_service_ips[$::realm]['bits'][$::site],
+        realserver_ips => $lvs::configuration::service_ips['bits'][$::site],
     }
 
     if $::realm == 'production' {
diff --git a/modules/role/manifests/cache/configuration.pp 
b/modules/role/manifests/cache/configuration.pp
index c01a0da..639a5c7 100644
--- a/modules/role/manifests/cache/configuration.pp
+++ b/modules/role/manifests/cache/configuration.pp
@@ -5,19 +5,19 @@
 
     $backends = {
         'production' => {
-            'appservers'        => 
$lvs::configuration::lvs_service_ips['production']['apaches'],
-            'api'               => 
$lvs::configuration::lvs_service_ips['production']['api'],
-            'rendering'         => 
$lvs::configuration::lvs_service_ips['production']['rendering'],
+            'appservers'        => $lvs::configuration::service_ips['apaches'],
+            'api'               => $lvs::configuration::service_ips['api'],
+            'rendering'         => 
$lvs::configuration::service_ips['rendering'],
             'bits' => {
-                'eqiad' => 
flatten([$lvs::configuration::lvs_service_ips['production']['bits']['eqiad']['bitslb']]),
+                'eqiad' => 
flatten([$lvs::configuration::service_ips['bits']['eqiad']['bitslb']]),
             },
             'bits_appservers' => {
-                'eqiad' => 
flatten([$lvs::configuration::lvs_service_ips['production']['apaches']['eqiad']]),
+                'eqiad' => 
flatten([$lvs::configuration::service_ips['apaches']['eqiad']]),
             },
             'test_appservers' => {
                 'eqiad' => [ 'mw1017.eqiad.wmnet' ],
             },
-            'parsoid' => 
$lvs::configuration::lvs_service_ips['production']['parsoid'],
+            'parsoid' => $lvs::configuration::service_ips['parsoid'],
             'cxserver' => {
                 'eqiad' => 'cxserver.svc.eqiad.wmnet',
             },
@@ -30,7 +30,7 @@
             'restbase' => {
                 'eqiad' => 'restbase.svc.eqiad.wmnet',
             },
-            'swift' => 
$lvs::configuration::lvs_service_ips['production']['swift'],
+            'swift' => $lvs::configuration::service_ips['swift'],
         },
         'labs' => {
             'appservers' => {
diff --git a/modules/role/manifests/cache/misc.pp 
b/modules/role/manifests/cache/misc.pp
index 14138d5..218229d 100644
--- a/modules/role/manifests/cache/misc.pp
+++ b/modules/role/manifests/cache/misc.pp
@@ -6,7 +6,7 @@
     include role::cache::1layer
 
     class { 'lvs::realserver':
-        realserver_ips => 
$lvs::configuration::lvs_service_ips[$::realm]['misc_web'][$::site],
+        realserver_ips => 
$lvs::configuration::service_ips['misc_web'][$::site],
     }
 
     include role::cache::ssl::misc
diff --git a/modules/role/manifests/cache/mobile.pp 
b/modules/role/manifests/cache/mobile.pp
index 797b89a..88b148e 100644
--- a/modules/role/manifests/cache/mobile.pp
+++ b/modules/role/manifests/cache/mobile.pp
@@ -10,7 +10,7 @@
     include role::cache::2layer
 
     class { 'lvs::realserver':
-        realserver_ips => 
$lvs::configuration::lvs_service_ips[$::realm]['mobile'][$::site],
+        realserver_ips => $lvs::configuration::service_ips['mobile'][$::site],
     }
 
     $mobile_nodes = hiera('cache::mobile::nodes')
diff --git a/modules/role/manifests/cache/parsoid.pp 
b/modules/role/manifests/cache/parsoid.pp
index ef6e355..e79e66b 100644
--- a/modules/role/manifests/cache/parsoid.pp
+++ b/modules/role/manifests/cache/parsoid.pp
@@ -6,7 +6,7 @@
     include role::cache::2layer
 
     class { 'lvs::realserver':
-        realserver_ips => 
$lvs::configuration::lvs_service_ips[$::realm]['parsoidcache'][$::site],
+        realserver_ips => 
$lvs::configuration::service_ips['parsoidcache'][$::site],
     }
 
     $parsoid_nodes = hiera('cache::parsoid::nodes')
diff --git a/modules/role/manifests/cache/text.pp 
b/modules/role/manifests/cache/text.pp
index 8f2389c..3c44af2 100644
--- a/modules/role/manifests/cache/text.pp
+++ b/modules/role/manifests/cache/text.pp
@@ -8,7 +8,7 @@
     include role::cache::2layer
 
     class { 'lvs::realserver':
-        realserver_ips => 
$lvs::configuration::lvs_service_ips[$::realm]['text'][$::site],
+        realserver_ips => $lvs::configuration::service_ips['text'][$::site],
     }
 
     $text_nodes = hiera('cache::text::nodes')
diff --git a/modules/role/manifests/cache/upload.pp 
b/modules/role/manifests/cache/upload.pp
index a533cbb..8d82bf1 100644
--- a/modules/role/manifests/cache/upload.pp
+++ b/modules/role/manifests/cache/upload.pp
@@ -11,7 +11,7 @@
     include role::cache::2layer
 
     class { 'lvs::realserver':
-        realserver_ips => 
$lvs::configuration::lvs_service_ips[$::realm]['upload'][$::site],
+        realserver_ips => $lvs::configuration::service_ips['upload'][$::site],
     }
 
     $upload_nodes = hiera('cache::upload::nodes')
diff --git a/modules/role/manifests/lvs/balancer.pp 
b/modules/role/manifests/lvs/balancer.pp
index 09b5a6f..493b187 100644
--- a/modules/role/manifests/lvs/balancer.pp
+++ b/modules/role/manifests/lvs/balancer.pp
@@ -8,7 +8,7 @@
     }
 
     include lvs::configuration
-    $sip = $lvs::configuration::lvs_service_ips[$::realm]
+    $sip = $lvs::configuration::service_ips
 
     $lvs_balancer_ips = $::hostname ? {
         # eqiad

-- 
To view, visit https://gerrit.wikimedia.org/r/217289
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ie2022d40b2ff4c110e62ddd8d5683e3a826e96f7
Gerrit-PatchSet: 8
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Alexandros Kosiaris <[email protected]>
Gerrit-Reviewer: Alexandros Kosiaris <[email protected]>
Gerrit-Reviewer: Giuseppe Lavagetto <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to