Volans has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/287144

Change subject: MariaDB: set $master true for codfw masters
......................................................................

MariaDB: set $master true for codfw masters

- Allow to set $master = true for all master regardless of the
  datacenter in which they are.
- Start pt-heartbeat only for masters in the $::mw_primary datacenter.

Bug: T134481
Change-Id: Ic9d0de49c008f4fa740714baaf51b7a96ff6396d
---
M manifests/role/mariadb.pp
M manifests/site.pp
2 files changed, 41 insertions(+), 15 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/44/287144/1

diff --git a/manifests/role/mariadb.pp b/manifests/role/mariadb.pp
index 1ad388f..d5fdba2 100644
--- a/manifests/role/mariadb.pp
+++ b/manifests/role/mariadb.pp
@@ -131,9 +131,10 @@
         shard => $shard,
     }
 
+    $heartbeat_enabled = $master and ($::mw_primary == $::site)
     class { 'mariadb::heartbeat':
         shard   => $shard,
-        enabled => $master,
+        enabled => $heartbeat_enabled,
     }
 }
 
@@ -206,6 +207,8 @@
         include coredb_mysql::snapshot
     }
 
+    # TODO: detect the active datacenter in order to allow to set
+    # $master => true on the master in each datacenter.
     class { 'mariadb::heartbeat':
         shard   => $shard,
         enabled => $master,
@@ -218,7 +221,7 @@
     }
 }
 
-# Eventlogging needs tobe sandboxed by itself. It can consume resources
+# Eventlogging needs to be sandboxed by itself. It can consume resources
 # unpredictably, especially during backfilling. It also benefits greatly
 # from a setup tuned for TokuDB.
 class role::mariadb::misc::eventlogging(
@@ -260,6 +263,8 @@
         shard => $shard,
     }
 
+    # TODO: detect the active datacenter in order to allow to set
+    # $master => true on the master in each datacenter once replicated.
     class { 'mariadb::heartbeat':
         shard   => $shard,
         enabled => $master,
@@ -507,7 +512,6 @@
     include passwords::misc::scripts
     include role::mariadb::ferm
 
-    # N.B.: NON $::mw_primary masters are considered slaves for now
     if ($shard == 'es1') {
         $mysql_role = 'standalone'
     } elsif $master == true {
@@ -574,9 +578,10 @@
         contact_group => $contact_group,
     }
 
+    $heartbeat_enabled = $master and ($::mw_primary == $::site)
     class { 'mariadb::heartbeat':
         shard   => $shard,
-        enabled => $master,
+        enabled => $heartbeat_enabled,
     }
 }
 
diff --git a/manifests/site.pp b/manifests/site.pp
index ca69f80..d4eee0b 100644
--- a/manifests/site.pp
+++ b/manifests/site.pp
@@ -454,7 +454,7 @@
 node 'db2016.codfw.wmnet' {
     class { 'role::mariadb::core':
         shard         => 's1',
-        master        => false,
+        master        => true,
         p_s           => 'on',
         binlog_format => 'STATEMENT',
         ssl           => 'puppet-cert',
@@ -499,7 +499,7 @@
 node 'db2017.codfw.wmnet' {
     class { 'role::mariadb::core':
         shard         => 's2',
-        master        => false,
+        master        => true,
         p_s           => 'on',
         binlog_format => 'STATEMENT',
         ssl           => 'multiple-ca',
@@ -545,7 +545,7 @@
 node 'db2018.codfw.wmnet' {
     class { 'role::mariadb::core':
         shard         => 's3',
-        master        => false,
+        master        => true,
         p_s           => 'on',
         binlog_format => 'STATEMENT',
         ssl           => 'puppet-cert',
@@ -590,7 +590,7 @@
 node 'db2019.codfw.wmnet' {
     class { 'role::mariadb::core':
         shard         => 's4',
-        master        => false,
+        master        => true,
         p_s           => 'on',
         binlog_format => 'STATEMENT',
         ssl           => 'puppet-cert',
@@ -635,7 +635,7 @@
 node 'db2023.codfw.wmnet' {
     class { 'role::mariadb::core':
         shard         => 's5',
-        master        => false,
+        master        => true,
         p_s           => 'on',
         binlog_format => 'STATEMENT',
         ssl           => 'puppet-cert',
@@ -680,7 +680,7 @@
 node 'db2028.codfw.wmnet' {
     class { 'role::mariadb::core':
         shard         => 's6',
-        master        => false,
+        master        => true,
         p_s           => 'on',
         binlog_format => 'STATEMENT',
         ssl           => 'puppet-cert',
@@ -725,7 +725,7 @@
 node 'db2029.codfw.wmnet' {
     class { 'role::mariadb::core':
         shard         => 's7',
-        master        => false,
+        master        => true,
         p_s           => 'on',
         binlog_format => 'STATEMENT',
         ssl           => 'puppet-cert',
@@ -764,7 +764,7 @@
 node 'db2009.codfw.wmnet' {
     class { 'role::mariadb::core':
         shard         => 'x1',
-        master        => false,
+        master        => true,
         p_s           => 'on',
         binlog_format => 'ROW',
         ssl           => 'puppet-cert',
@@ -1050,6 +1050,17 @@
     include base::firewall
 }
 
+## codfw master
+node 'es2015.codfw.wmnet' {
+    class { 'role::mariadb::core':
+        shard         => 'es2',
+        master        => true,
+        p_s           => 'on',
+        binlog_format => 'ROW',
+    }
+    include base::firewall
+}
+
 ## codfw servers (decommissioning)
 node /es200[567]\.codfw\.wmnet/ {
     class { 'role::mariadb::core':
@@ -1060,8 +1071,8 @@
     include base::firewall
 }
 
-## codfw servers
-node /es201[456]\.codfw\.wmnet/ {
+## codfw slaves
+node /es201[46]\.codfw\.wmnet/ {
     class { 'role::mariadb::core':
         shard         => 'es2',
         p_s           => 'on',
@@ -1092,6 +1103,16 @@
     include base::firewall
 }
 
+node 'es2018.codfw.wmnet' {
+    class { 'role::mariadb::core':
+        shard         => 'es3',
+        master        => true,
+        p_s           => 'on',
+        binlog_format => 'ROW',
+    }
+    include base::firewall
+}
+
 ## codfw servers (decommissioning)
 node /es20(08|09|10)\.codfw\.wmnet/ {
     class { 'role::mariadb::core':
@@ -1103,7 +1124,7 @@
 }
 
 ## codfw servers
-node /es201[789]\.codfw\.wmnet/ {
+node /es201[79]\.codfw\.wmnet/ {
     class { 'role::mariadb::core':
         shard         => 'es3',
         p_s           => 'on',

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic9d0de49c008f4fa740714baaf51b7a96ff6396d
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Volans <[email protected]>

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

Reply via email to