Alexandros Kosiaris has submitted this change and it was merged. 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(-) Approvals: Alexandros Kosiaris: Verified; Looks good to me, approved diff --git a/manifests/role/puppetmaster.pp b/manifests/role/puppetmaster.pp index 0cca484..4fc3360 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', }, + { 'worker' => 'strontium.eqiad.wmnet', }, ], 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..0b97f33 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 <%= workerhash['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..6518cab 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: merged Gerrit-Change-Id: I2ba49b278af428da7e390c2b75ad11f04d022420 Gerrit-PatchSet: 4 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Alexandros Kosiaris <akosia...@wikimedia.org> Gerrit-Reviewer: Alexandros Kosiaris <akosia...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits