Gehel has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/369682 )

Change subject: [WIP] wdqs - moving to role / profiles
......................................................................

[WIP] wdqs - moving to role / profiles

Change-Id: Id2adbd2cd86e61831a16f7abbb73135f47352bc0
---
M hieradata/labs/wikidata-query/common.yaml
M hieradata/role/codfw/wdqs.yaml
M hieradata/role/common/wdqs.yaml
M manifests/site.pp
A modules/profile/manifests/wdqs.pp
M modules/role/manifests/wdqs.pp
A modules/role/manifests/wdqs/labs.pp
M modules/wdqs/manifests/init.pp
M modules/wdqs/manifests/service.pp
M modules/wdqs/manifests/updater.pp
10 files changed, 82 insertions(+), 57 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/82/369682/1

diff --git a/hieradata/labs/wikidata-query/common.yaml 
b/hieradata/labs/wikidata-query/common.yaml
index bc94915..d6ce9c1 100644
--- a/hieradata/labs/wikidata-query/common.yaml
+++ b/hieradata/labs/wikidata-query/common.yaml
@@ -1,7 +1,9 @@
-"wdqs::gui::log_aggregator":  
'deployment-logstash2.deployment-prep.eqiad.wmflabs:10514'
-"wdqs::updater::options": '-n wdq -s'
-"wdqs::use_git_deploy": false
-"wdqs::package_dir": '/srv/wdqs/blazegraph'
-"wdqs::data_dir": '/srv/wdqs/blazegraph'
-"wdqs::endpoint": ''
-"wdqs::blazegraph_heap_size": '8g'
+profile::wdqs::log_aggregator: 
'deployment-logstash2.deployment-prep.eqiad.wmflabs:10514'
+profile::wdqs::use_git_deploy: false
+profile::wdqs::package_dir: '/srv/wdqs/blazegraph'
+profile::wdqs::data_dir: '/srv/wdqs/blazegraph'
+profile::wdqs::endpoint: ''
+profile::wdqs::updater_options: '-n wdq -s'
+profile::wdqs::config_file: 'RWStore.properties'
+profile::wdqs::blazegraph_options: ''
+profile::wdqs::blazegraph_heap_size: '8g'
diff --git a/hieradata/role/codfw/wdqs.yaml b/hieradata/role/codfw/wdqs.yaml
index 9083c4b..57d9e1e 100644
--- a/hieradata/role/codfw/wdqs.yaml
+++ b/hieradata/role/codfw/wdqs.yaml
@@ -1,3 +1,3 @@
 lvs::realserver::realserver_ips:
     - '10.2.1.32' # wdqs.svc.codfw.wmnet
-wdqs::blazegraph_options: '-Dhttp.proxyHost=webproxy.codfw.wmnet 
-Dhttp.proxyPort=8080 -XX:+ExitOnOutOfMemoryError'
+profile::wdqs::blazegraph_options: '-Dhttp.proxyHost=webproxy.codfw.wmnet 
-Dhttp.proxyPort=8080 -XX:+ExitOnOutOfMemoryError'
diff --git a/hieradata/role/common/wdqs.yaml b/hieradata/role/common/wdqs.yaml
index 1dbf8d2..1012c03 100644
--- a/hieradata/role/common/wdqs.yaml
+++ b/hieradata/role/common/wdqs.yaml
@@ -1,7 +1,11 @@
-wdqs::gui::log_aggregator:  'logstash1001.eqiad.wmnet:10514'
-wdqs::updater::options: '-n wdq -- -b 500 -T 1200'
-wdqs::service::config_file: /etc/wdqs/RWStore.properties
-wdqs::endpoint: 'https://query.wikidata.org'
+profile::wdqs::log_aggregator: 'logstash1001.eqiad.wmnet:10514'
+profile::wdqs::use_git_deploy: true
+profile::wdqs::package_dir: '/srv/deployment/wdqs/wdqs'
+profile::wdqs::data_dir: '/srv/wdqs'
+profile::wdqs::endpoint: 'https://query.wikidata.org'
+profile::wdqs::updater_options: '-n wdq -- -b 500 -T 1200'
+profile::wdqs::config_file: '/etc/wdqs/RWStore.properties'
+profile::wdqs::blazegraph_heap_size: '16g'
 admin::groups:
   - wdqs-admins
 cluster: wdqs
diff --git a/manifests/site.pp b/manifests/site.pp
index 8f559b5..8d4dc8e 100644
--- a/manifests/site.pp
+++ b/manifests/site.pp
@@ -2323,12 +2323,10 @@
 # Wikidata query service
 node /^wdqs100[1-3]\.eqiad\.wmnet$/ {
     role(wdqs)
-    include ::lvs::realserver
 }
 
 node /^wdqs200[1-3]\.codfw\.wmnet$/ {
     role(wdqs)
-    include ::lvs::realserver
 }
 
 node 'wezen.codfw.wmnet' {
diff --git a/modules/profile/manifests/wdqs.pp 
b/modules/profile/manifests/wdqs.pp
new file mode 100644
index 0000000..862b2eb
--- /dev/null
+++ b/modules/profile/manifests/wdqs.pp
@@ -0,0 +1,47 @@
+class profile::wdqs (
+    $log_aggregator = hiera('profile::wdqs::log_aggregator'),
+    $use_git_deploy = hiera('profile::wdqs::use_git_deploy'),
+    $package_dir = hiera('profile::wdqs::package_dir'),
+    $data_dir = hiera('profile::wdqs::data_dir'),
+    $endpoint = hiera('profile::wdqs::endpoint'),
+    $blazegraph_options = hiera('profile::wdqs::blazegraph_options'),
+    $blazegraph_heap_size = hiera('profile::wdqs::blazegraph_heap_size'),
+    $blazegraph_config_file = hiera('profile::wdqs::blazegraph_config_file'),
+) {
+    $nagios_contact_group = 'admins,wdqs-admins'
+
+    # Install services - both blazegraph and the updater
+    class { '::wdqs':
+        use_git_deploy => false,
+        package_dir => $package_dir,
+        data_dir => $data_dir,
+        endpoint => $endpoint,
+        blazegraph_options => $blazegraph_options,
+        blazegraph_heap_size => $blazegraph_heap_size,
+        blazegraph_config_file => $blazegraph_config_file,
+    }
+
+    # Service Web proxy
+    class { '::wdqs::gui':
+        log_aggregator => $log_aggregator,
+    }
+
+    # Firewall
+    ferm::service {
+        'wdqs_http':
+            proto => 'tcp',
+            port  => '80';
+        'wdqs_https':
+            proto => 'tcp',
+            port  => '443';
+        'wdqs_internal_http':
+            proto  => 'tcp',
+            port   => '8888',
+            srange => '$DOMAIN_NETWORKS';
+    }
+
+    # Monitoring
+    class { '::wdqs::monitor::blazegraph': }
+    class { '::wdqs::monitor::updater': }
+    class { '::wdqs::monitor::services': }
+}
\ No newline at end of file
diff --git a/modules/role/manifests/wdqs.pp b/modules/role/manifests/wdqs.pp
index a58de6b..be77238 100644
--- a/modules/role/manifests/wdqs.pp
+++ b/modules/role/manifests/wdqs.pp
@@ -6,47 +6,11 @@
 class role::wdqs  {
     include ::standard
     include ::base::firewall
-
-    $nagios_contact_group = 'admins,wdqs-admins'
-
-    if $::realm == 'labs' {
-        include role::labs::lvm::srv
-    }
+    include ::role::lvs::realserver
+    include ::profile::wdqs
 
     system::role { 'wdqs':
         ensure      => 'present',
         description => 'Wikidata Query Service',
     }
-
-
-    # Install services - both blazegraph and the updater
-    include ::wdqs
-
-    # Service Web proxy
-    include ::wdqs::gui
-
-    ferm::service { 'wdqs_http':
-        proto => 'tcp',
-        port  => '80',
-    }
-
-    ferm::service { 'wdqs_https':
-        proto => 'tcp',
-        port  => '443',
-    }
-
-    ferm::service { 'wdqs_internal_http':
-        proto  => 'tcp',
-        port   => '8888',
-        srange => '$DOMAIN_NETWORKS',
-    }
-
-    # Monitor Blazegraph
-    include ::wdqs::monitor::blazegraph
-
-    # Monitor Updater
-    include ::wdqs::monitor::updater
-
-    # Service monitoring
-    include ::wdqs::monitor::services
 }
diff --git a/modules/role/manifests/wdqs/labs.pp 
b/modules/role/manifests/wdqs/labs.pp
new file mode 100644
index 0000000..8f83d98
--- /dev/null
+++ b/modules/role/manifests/wdqs/labs.pp
@@ -0,0 +1,4 @@
+class role::wdqs::labs () {
+    require role::labs::lvm::srv
+    require role::wdqs
+}
\ No newline at end of file
diff --git a/modules/wdqs/manifests/init.pp b/modules/wdqs/manifests/init.pp
index b035791..549b439 100644
--- a/modules/wdqs/manifests/init.pp
+++ b/modules/wdqs/manifests/init.pp
@@ -10,7 +10,8 @@
 # - $log_dir: Directory where the logs go
 # - $endpoint: External endpoint name
 # - $blazegraph_heap_size: heapsize for blazegraph
-# - $blazegraph_options: options for Blazegraph statrup script
+# - $blazegraph_options: options for Blazegraph startup script
+# - $updater_options: options for updater startup script
 class wdqs(
     $use_git_deploy = true,
     $username = 'blazegraph',
@@ -18,8 +19,10 @@
     $data_dir = '/srv/wdqs',
     $log_dir = '/var/log/wdqs',
     $endpoint = '',
-    $blazegraph_heap_size = '16g',
     $blazegraph_options = '',
+    $blazegraph_heap_size = '16g',
+    $blazegraph_config_file = 'RWStore.properties',
+    $updater_options = '-n wdq -s',
 ) {
 
     $deploy_user = 'deploy-service'
@@ -43,6 +46,7 @@
         deploy_user => $deploy_user,
         package_dir => $package_dir,
         username    => $username,
+        config_file => $blazegraph_config_file,
     }
 
     file { $log_dir:
@@ -110,7 +114,9 @@
     }
 
     # WDQS Updater service
-    include wdqs::updater
+    class { 'wdqs::updater':
+        options => $updater_options,
+    }
 
     # GC logs rotation is done by the JVM, but on JVM restart, the logs left by
     # the previous instance are left alone. This cron takes care of cleaning up
diff --git a/modules/wdqs/manifests/service.pp 
b/modules/wdqs/manifests/service.pp
index bcda337..f9721fd 100644
--- a/modules/wdqs/manifests/service.pp
+++ b/modules/wdqs/manifests/service.pp
@@ -6,7 +6,7 @@
     $deploy_user,
     $package_dir,
     $username,
-    $config_file='RWStore.properties',
+    $config_file,
 ) {
 
     include ::wdqs::packages
diff --git a/modules/wdqs/manifests/updater.pp 
b/modules/wdqs/manifests/updater.pp
index b34ac82..71c0989 100644
--- a/modules/wdqs/manifests/updater.pp
+++ b/modules/wdqs/manifests/updater.pp
@@ -3,7 +3,7 @@
 # Wikidata Query Service updater service.
 #
 class wdqs::updater(
-    $options = '-n wdq -s',
+    $options,
     $package_dir = $::wdqs::package_dir,
     $username = $::wdqs::username,
 ){

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id2adbd2cd86e61831a16f7abbb73135f47352bc0
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Gehel <guillaume.leder...@wikimedia.org>

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

Reply via email to