Giuseppe Lavagetto has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/357824 )
Change subject: role::lvs::balancer: convert to role/profile (step 1)
......................................................................
role::lvs::balancer: convert to role/profile (step 1)
Collect all pybal configuration in a single profile, partially
untangling it from the lvs classes; also remove the now-unused class
lvs::pybal_configuration, whose content belonged to the profile.
This should be a noop, the only difference being dropping support for
trusty - that we don't use on loadbalancers anymore anyways.
Change-Id: If9b36ac91fe4f4eef33d296f3dc7065d4190141a
---
M hieradata/regex.yaml
M hieradata/role/codfw/lvs/balancer.yaml
M hieradata/role/common/lvs/balancer.yaml
M hieradata/role/eqiad/lvs/balancer.yaml
M hieradata/role/esams/lvs/balancer.yaml
M hieradata/role/ulsfo/lvs/balancer.yaml
M modules/lvs/manifests/balancer.pp
D modules/lvs/manifests/pybal_configuration.pp
A modules/profile/manifests/pybal.pp
M modules/role/manifests/lvs/balancer.pp
10 files changed, 67 insertions(+), 58 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/operations/puppet
refs/changes/24/357824/1
diff --git a/hieradata/regex.yaml b/hieradata/regex.yaml
index 4f9f056..11d4b14 100644
--- a/hieradata/regex.yaml
+++ b/hieradata/regex.yaml
@@ -200,7 +200,7 @@
value: standard
lvs_temp_bgp_disable:
__regex: !ruby/regexp /^lvs10(0[7-9]|1[0-2])\.eqiad\.wmnet$/
- lvs::pybal_configuration::bgp: no
+ profile::pybal::bgp: no
maps_test:
__regex: !ruby/regexp /^maps-test200[1-4]\.codfw\.wmnet$/
cassandra::target_version: '2.2'
diff --git a/hieradata/role/codfw/lvs/balancer.yaml
b/hieradata/role/codfw/lvs/balancer.yaml
index e42e8c5..1853616 100644
--- a/hieradata/role/codfw/lvs/balancer.yaml
+++ b/hieradata/role/codfw/lvs/balancer.yaml
@@ -1,5 +1,4 @@
debdeploy::grains:
debdeploy-lvs-codfw:
value: standard
-pybal::configuration::config: etcd
-pybal::configuration::config_host: conf2001.codfw.wmnet
+profile::pybal::config_host: conf2001.codfw.wmnet
diff --git a/hieradata/role/common/lvs/balancer.yaml
b/hieradata/role/common/lvs/balancer.yaml
index 87258ef..c38139a 100644
--- a/hieradata/role/common/lvs/balancer.yaml
+++ b/hieradata/role/common/lvs/balancer.yaml
@@ -4,3 +4,4 @@
listen_address: "%{::ipaddress}"
prometheus::node_exporter::collectors_extra:
- ipvs
+profile::pybal::config_source: etcd
diff --git a/hieradata/role/eqiad/lvs/balancer.yaml
b/hieradata/role/eqiad/lvs/balancer.yaml
index 1ede6b5..307292d 100644
--- a/hieradata/role/eqiad/lvs/balancer.yaml
+++ b/hieradata/role/eqiad/lvs/balancer.yaml
@@ -1,5 +1,4 @@
debdeploy::grains:
debdeploy-lvs-eqiad:
value: standard
-pybal::configuration::config: etcd
-pybal::configuration::config_host: conf2002.codfw.wmnet
+profile::pybal::config_host: conf2002.codfw.wmnet
diff --git a/hieradata/role/esams/lvs/balancer.yaml
b/hieradata/role/esams/lvs/balancer.yaml
index 5c36c55..178d805 100644
--- a/hieradata/role/esams/lvs/balancer.yaml
+++ b/hieradata/role/esams/lvs/balancer.yaml
@@ -1,5 +1,4 @@
debdeploy::grains:
debdeploy-lvs-esams:
value: standard
-pybal::configuration::config: etcd
-pybal::configuration::config_host: conf2002.codfw.wmnet
+profile::pybal::config_host: conf2002.codfw.wmnet
diff --git a/hieradata/role/ulsfo/lvs/balancer.yaml
b/hieradata/role/ulsfo/lvs/balancer.yaml
index e45a195..85770b5 100644
--- a/hieradata/role/ulsfo/lvs/balancer.yaml
+++ b/hieradata/role/ulsfo/lvs/balancer.yaml
@@ -1,5 +1,4 @@
debdeploy::grains:
debdeploy-lvs-ulsfo:
value: standard
-pybal::configuration::config: etcd
-pybal::configuration::config_host: conf2001.codfw.wmnet
+profile::pybal::config_host: conf2001.codfw.wmnet
diff --git a/modules/lvs/manifests/balancer.pp
b/modules/lvs/manifests/balancer.pp
index 8c425bc..5336768 100644
--- a/modules/lvs/manifests/balancer.pp
+++ b/modules/lvs/manifests/balancer.pp
@@ -5,31 +5,17 @@
# - $service_ips: list of service IPs to bind to loopback
# - $lvs_services: A configuration hash of LVS services
# - $lvs_class_hosts: A configuration hash of PyBal class hosts
-# - $pybal_global_options: A configuration hash of PyBal global options
-# - $site: Site name used in PyBal configuration
class lvs::balancer(
$lvs_services,
$lvs_class_hosts,
- $pybal_global_options,
- $site,
$service_ips=[],
$conftool_prefix = '/conftool/v1',
) {
- include ::pybal
- include ::pybal::confd
include ::cpufrequtils # defaults to "performance", Ubuntu default is
"ondemand"
include ::initramfs
# ethtool is also a package needed but it is included from base
-
- class { '::pybal::configuration':
- global_options => $pybal_global_options,
- lvs_services => $lvs_services,
- lvs_class_hosts => $lvs_class_hosts,
- site => $site,
- conftool_prefix => $conftool_prefix,
- }
file { '/etc/modprobe.d/lvs.conf':
ensure => present,
diff --git a/modules/lvs/manifests/pybal_configuration.pp
b/modules/lvs/manifests/pybal_configuration.pp
deleted file mode 100644
index 8ed360d..0000000
--- a/modules/lvs/manifests/pybal_configuration.pp
+++ /dev/null
@@ -1,25 +0,0 @@
-# lvs/configuration.pp
-
-class lvs::pybal_configuration (
- $bgp = hiera('lvs::pybal_configuration::bgp', 'yes'),
-) {
- $pybal = {
- 'bgp' => $bgp,
- 'bgp-peer-address' => $::hostname ? {
- /^lvs100[1-3]$/ => '208.80.154.196', # cr1-eqiad
- /^lvs100[4-6]$/ => '208.80.154.197', # cr2-eqiad
- /^lvs100[789]$/ => '208.80.154.196', # cr1-eqiad
- 'lvs1010' => '208.80.154.197', # cr2-eqiad
- /^lvs200[1-3]$/ => '208.80.153.192', # cr1-codfw
- /^lvs200[4-6]$/ => '208.80.153.193', # cr2-codfw
- /^lvs300[12]$/ => '91.198.174.244', # cr2-esams
- /^lvs300[34]$/ => '91.198.174.245', # cr1-esams
- /^lvs400[12]$/ => '198.35.26.192', # cr1-ulsfo
- /^lvs400[34]$/ => '198.35.26.193', # cr2-ulsfo
- default => '(unspecified)'
- },
- 'bgp-nexthop-ipv4' => $facts['ipaddress'],
- 'bgp-nexthop-ipv6' => inline_template("<%= require 'ipaddr';
(IPAddr.new(@ipaddress6).mask(64) | IPAddr.new(\"::\" + @ipaddress.gsub('.',
':'))).to_s() %>"),
- 'instrumentation' => 'yes',
- }
-}
diff --git a/modules/profile/manifests/pybal.pp
b/modules/profile/manifests/pybal.pp
new file mode 100644
index 0000000..31a2973
--- /dev/null
+++ b/modules/profile/manifests/pybal.pp
@@ -0,0 +1,54 @@
+# == class profile::pybal
+#
+# Configures pybal on a server, lvs or otherwise.
+class profile::pybal(
+ $bgp = hiera('profile::pybal::bgp'),
+ $conftool_prefix = hiera('conftool_prefix'),
+ $config_source = hiera('profile::pybal::config_source'),
+ $config_host = hiera('profile::pybal::config_host'),
+) {
+
+ require_os('Debian >= jessie')
+
+ # Includes all the common configs.
+ include ::lvs::configuration
+
+
+ # TODO: move bgp-peer-address to a parameter? it will require
+ # regex hiera, so maybe not
+ $global_options = {
+ 'bgp' => $bgp,
+ 'bgp-peer-address' => $::hostname ? {
+ /^lvs100[1-3]$/ => '208.80.154.196', # cr1-eqiad
+ /^lvs100[4-6]$/ => '208.80.154.197', # cr2-eqiad
+ /^lvs100[789]$/ => '208.80.154.196', # cr1-eqiad
+ 'lvs1010' => '208.80.154.197', # cr2-eqiad
+ /^lvs200[1-3]$/ => '208.80.153.192', # cr1-codfw
+ /^lvs200[4-6]$/ => '208.80.153.193', # cr2-codfw
+ /^lvs300[12]$/ => '91.198.174.244', # cr2-esams
+ /^lvs300[34]$/ => '91.198.174.245', # cr1-esams
+ /^lvs400[12]$/ => '198.35.26.192', # cr1-ulsfo
+ /^lvs400[34]$/ => '198.35.26.193', # cr2-ulsfo
+ default => '(unspecified)'
+ },
+ 'bgp-nexthop-ipv4' => $facts['ipaddress'],
+ 'bgp-nexthop-ipv6' => inline_template("<%= require 'ipaddr';
(IPAddr.new(@ipaddress6).mask(64) | IPAddr.new(\"::\" + @ipaddress.gsub('.',
':'))).to_s() %>"),
+ 'instrumentation' => 'yes',
+ }
+
+ # Base class, not parametrized
+ class { '::pybal': }
+
+ class { '::pybal::configuration':
+ global_options => $global_options,
+ lvs_services => $::lvs::configuration::lvs_services,
+ lvs_class_hosts => $lvs::configuration::lvs_class_hosts,
+ site => $::site,
+ conftool_prefix => $conftool_prefix,
+ config => $config_source,
+ config_host => $config_host
+ }
+
+ class { '::pybal::monitoring': }
+
+}
diff --git a/modules/role/manifests/lvs/balancer.pp
b/modules/role/manifests/lvs/balancer.pp
index 233694d..62fa40b 100644
--- a/modules/role/manifests/lvs/balancer.pp
+++ b/modules/role/manifests/lvs/balancer.pp
@@ -8,7 +8,7 @@
}
include ::lvs::configuration
- include ::lvs::pybal_configuration
+
$sip = $lvs::configuration::service_ips
# This is a temporary refactoring, we should do more to clean up here.
@@ -137,17 +137,14 @@
# TODO: refactor the whole set of classes
class { '::lvs::balancer':
- service_ips => $lvs_balancer_ips,
- lvs_services => $lvs::configuration::lvs_services,
- lvs_class_hosts => $lvs::configuration::lvs_class_hosts,
- pybal_global_options => $lvs::pybal_configuration::pybal,
- site => $::site,
- conftool_prefix => hiera('conftool_prefix'),
+ service_ips => $lvs_balancer_ips,
+ lvs_services => $lvs::configuration::lvs_services,
+ lvs_class_hosts => $lvs::configuration::lvs_class_hosts,
+ site => $::site,
+ conftool_prefix => hiera('conftool_prefix'),
}
- if os_version('debian >= jessie') {
- include ::pybal::monitoring
- }
+ include ::profile::pybal
if $::site in ['eqiad', 'codfw'] {
include ::lvs::balancer::runcommand
--
To view, visit https://gerrit.wikimedia.org/r/357824
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: If9b36ac91fe4f4eef33d296f3dc7065d4190141a
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Giuseppe Lavagetto <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits