Giuseppe Lavagetto has submitted this change and it was merged.

Change subject: lvs: add role::lvs::realserver
......................................................................


lvs: add role::lvs::realserver

This is a role that can be included by other roles when configuring an
LVS-DR realserver is needed. It does the following:
- Set up the lvs IPs
- Sets up the conftool-related pool/depool scripts
for all pools defined via hiera.

Change-Id: Id52a016c022fa6cad4eb5be0ea395e0af9ac052a
---
A modules/role/manifests/lvs/realserver.pp
A modules/role/templates/lvs/realserver_ips.erb
2 files changed, 33 insertions(+), 0 deletions(-)

Approvals:
  Giuseppe Lavagetto: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/modules/role/manifests/lvs/realserver.pp 
b/modules/role/manifests/lvs/realserver.pp
new file mode 100644
index 0000000..642371d
--- /dev/null
+++ b/modules/role/manifests/lvs/realserver.pp
@@ -0,0 +1,25 @@
+# Class role::lvs::realserver.
+# Sets up the lvs realserver IPs and the corresponding conftool-based scripts
+#
+# This should be a profile whenever we start creating those.
+#
+class role::lvs::realserver {
+    require ::lvs::configuration
+    # Pools in the format: $service => { lvs_name => $name}
+    $lvs_pools = hiera('::role::lvs::realserver::pools', {})
+
+    # TODO: fix this when we have the future parser
+    $realserver_ips_str = template('role/lvs/realserver_ips.erb')
+    $realserver_ips = split($realserver_ips_str, ',')
+
+    class { '::lvs::realserver':
+        realserver_ips => $realserver_ips,
+    }
+
+    Conftool::Scripts::Service {
+        lvs_class_hosts     => $::lvs::configuration::lvs_class_hosts,
+        lvs_services_config => $lvs::configuration::lvs_services,
+    }
+
+    create_resources('conftool::scripts::service', $lvs_pools)
+}
diff --git a/modules/role/templates/lvs/realserver_ips.erb 
b/modules/role/templates/lvs/realserver_ips.erb
new file mode 100644
index 0000000..03da882
--- /dev/null
+++ b/modules/role/templates/lvs/realserver_ips.erb
@@ -0,0 +1,8 @@
+<%-
+lvs_ips = scope.lookupvar('::lvs::configuration::lvs_service_ips')
+site = scope.lookupvar('::site')
+ips = @lvs_pools.map do |svc, pool|
+  name = pool['lvs_name'] || svc
+  lvs_ips[name][site]
+end
+-%><%= ips.join(',') -%>

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Id52a016c022fa6cad4eb5be0ea395e0af9ac052a
Gerrit-PatchSet: 2
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Giuseppe Lavagetto <glavage...@wikimedia.org>
Gerrit-Reviewer: BBlack <bbl...@wikimedia.org>
Gerrit-Reviewer: Ema <e...@wikimedia.org>
Gerrit-Reviewer: Giuseppe Lavagetto <glavage...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to