Alexandros Kosiaris has uploaded a new change for review.

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

Change subject: Usage of a weighted loadfactor in puppetmaster
......................................................................

Usage of a weighted loadfactor in puppetmaster

This allows for a more fine tuned distribution of load to backend
puppetmasters through mod_proxy's loadfactor attribute. This is exposed
to class callers via converting the workers parameter to a hash.

Change-Id: I2ba49b278af428da7e390c2b75ad11f04d022420
---
M manifests/role/puppetmaster.pp
M modules/puppetmaster/manifests/init.pp
M modules/puppetmaster/templates/post-merge.erb
M modules/puppetmaster/templates/puppetmaster.erb
4 files changed, 12 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/31/130331/1

diff --git a/manifests/role/puppetmaster.pp b/manifests/role/puppetmaster.pp
index 0cca484..0fba384 100644
--- a/manifests/role/puppetmaster.pp
+++ b/manifests/role/puppetmaster.pp
@@ -17,8 +17,9 @@
     class { '::puppetmaster':
         allow_from  => $role::puppetmaster::config::allow_from,
         server_type => 'frontend',
-        workers     => ['palladium.eqiad.wmnet',
-                        'strontium.eqiad.wmnet'
+        workers     =>  [
+                        { 'worker' => 'palladium.eqiad.wmnet', 'loadfactor' => 
10, },
+                        { 'worker' => 'strontium.eqiad.wmnet', 'loadfactor' => 
10, },
         ],
         config      => {
             'thin_storeconfigs' => true,
diff --git a/modules/puppetmaster/manifests/init.pp 
b/modules/puppetmaster/manifests/init.pp
index bbb4ba6..0166a19 100644
--- a/modules/puppetmaster/manifests/init.pp
+++ b/modules/puppetmaster/manifests/init.pp
@@ -16,6 +16,10 @@
 #    - $config:
 #        Hash containing all config settings for the [master] section of
 #        puppet.conf (ini-style)
+#    - $workers:
+#        Array of hashes in the form. If loadfactor is omitted, it is assumed 
to
+#        be equal to 1
+#         [{ 'worker' => 'worker1.example.com', loadfactor => '1' }]
 class puppetmaster(
             $server_name='puppet',
             $bind_address='*',
diff --git a/modules/puppetmaster/templates/post-merge.erb 
b/modules/puppetmaster/templates/post-merge.erb
index bbfad1d..f3aab09 100644
--- a/modules/puppetmaster/templates/post-merge.erb
+++ b/modules/puppetmaster/templates/post-merge.erb
@@ -9,9 +9,9 @@
        <%- if @server_type == 'frontend' -%>
        # If no key is forwarded then this will use the ready-made equivalent 
command
        #  on worker and ignore our command.
-               <%- @workers.each do |worker| -%>
-               <%- if worker == @fqdn then next end -%>
-       ssh -t -t <%= worker -%> 'cd /var/lib/git/operations/puppet && git pull 
&& git submodule update --init'
+               <%- @workers.each do |workerhash| -%>
+               <%- if workerhash['worker'] == @fqdn then next end -%>
+       ssh -t -t <%= worker['worker'] -%> 'cd /var/lib/git/operations/puppet 
&& git pull && git submodule update --init'
                <%- end -%>
        <%- end -%>
 fi
diff --git a/modules/puppetmaster/templates/puppetmaster.erb 
b/modules/puppetmaster/templates/puppetmaster.erb
index 170eec9..59a57fd 100644
--- a/modules/puppetmaster/templates/puppetmaster.erb
+++ b/modules/puppetmaster/templates/puppetmaster.erb
@@ -48,8 +48,8 @@
        # The rest gets balanced
        ProxyPass / balancer://mycluster/
        <Proxy balancer://mycluster>
-         <%- @workers.each do |worker| -%>
-               BalancerMember https://<%= worker %>:8141 connectiontimeout=1 
retry=500 timeout=900
+         <%- @workers.each do |workerhash| -%>
+               BalancerMember https://<%= workerhash['worker'] %>:8141 
connectiontimeout=1 retry=500 timeout=900 <% if workerhash['loadfactor'] 
%>loadfactor=<%= workerhash['loadfactor'] %><%- end -%>
          <%- end -%>
                Order allow,deny
                Allow from all

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2ba49b278af428da7e390c2b75ad11f04d022420
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Alexandros Kosiaris <akosia...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to