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

Change subject: openstack: designate as module/profile/role
......................................................................

openstack: designate as module/profile/role

Bug: T171494
Change-Id: Ib66fdb449af65f8c3608a6d225ee80976f4acd7d
---
M hieradata/codfw/profile/openstack/labtestn.yaml
M hieradata/codfw/profile/openstack/labtestn/designate.yaml
A hieradata/codfw/profile/openstack/labtestn/pdns.yaml
A hieradata/common/profile/openstack/base/designate.yaml
A hieradata/common/profile/openstack/base/pdns.yaml
D modules/openstack/manifests/designate/service.pp
R modules/openstack2/files/designate/designate-mdns.logrotate
R modules/openstack2/files/designate/designate-pool-manager.logrotate
R modules/openstack2/files/liberty/designate/dashboard/_70_dns_add_group.py
R modules/openstack2/files/liberty/designate/dashboard/_71_dns_project.py
R modules/openstack2/files/liberty/designate/dashboard/__init__.py
R 
modules/openstack2/files/liberty/designate/nova_fixed_multi.egg-info/entry_points.txt
R modules/openstack2/files/liberty/designate/nova_fixed_multi/__init__.py
R modules/openstack2/files/liberty/designate/nova_fixed_multi/base.py
R modules/openstack2/files/liberty/designate/nova_fixed_multi/novamulti.py
R modules/openstack2/files/liberty/designate/policy.json
R modules/openstack2/files/liberty/designate/rootwrap.conf
R modules/openstack2/files/liberty/designate/wmf_sink.egg-info/entry_points.txt
R modules/openstack2/files/liberty/designate/wmf_sink/__init__.py
R modules/openstack2/files/liberty/designate/wmf_sink/base.py
R modules/openstack2/files/liberty/designate/wmf_sink/wmfsink.py
A modules/openstack2/manifests/designate/monitor.pp
A modules/openstack2/manifests/designate/service.pp
A modules/openstack2/templates/initscripts/designate-mdns.upstart.erb
A modules/openstack2/templates/initscripts/designate-pool-manager.upstart.erb
R modules/openstack2/templates/liberty/designate/api-paste.ini.erb
R modules/openstack2/templates/liberty/designate/designate.conf.erb
A modules/profile/manifests/openstack/base/designate/service.pp
A modules/profile/manifests/openstack/base/designate/service.pp.save
A modules/profile/manifests/openstack/labtestn/designate/service.pp
M modules/role/manifests/wmcs/openstack/labtestn/services.pp
31 files changed, 426 insertions(+), 240 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/48/376848/1

diff --git a/hieradata/codfw/profile/openstack/labtestn.yaml 
b/hieradata/codfw/profile/openstack/labtestn.yaml
index b60b6d9..c44108b 100644
--- a/hieradata/codfw/profile/openstack/labtestn.yaml
+++ b/hieradata/codfw/profile/openstack/labtestn.yaml
@@ -2,8 +2,9 @@
 profile::openstack::labtestn::nova_controller: 
'labtestcontrol2003.wikimedia.org'
 profile::openstack::labtestn::nova_controller_standby: 
'labtestcontrol2003.wikimedia.org'
 profile::openstack::labtestn::nova_api_host: 'labtestcontrol2003.wikimedia.org'
-profile::openstack::labtestn::designate_host: 
'labtestservices2003.wikimedia.org'
+profile::openstack::labtestn::designate_host: 
'labtestcontrol2003.wikimedia.org'
 profile::openstack::labtestn::designate_host_standby: 
'labtestservices2003.wikimedia.org'
+profile::openstack::labtestn::puppetmaster_hostname: 
'labtestpuppetmaster2001.wikimedia.org'
 profile::openstack::labtestn::labs_hosts_range: '127.0.0.1/32'
 profile::openstack::labtestn::horizon_host: 'labtestweb2001.wikimedia.org'
 profile::openstack::labtestn::spice_hostname: 'labtestnspice.wikimedia.org'
diff --git a/hieradata/codfw/profile/openstack/labtestn/designate.yaml 
b/hieradata/codfw/profile/openstack/labtestn/designate.yaml
index e718654..f55192c 100644
--- a/hieradata/codfw/profile/openstack/labtestn/designate.yaml
+++ b/hieradata/codfw/profile/openstack/labtestn/designate.yaml
@@ -1 +1,4 @@
 profile::openstack::labtestn::designate::wmflabsdotorg_project: 'wmflabsdotorg'
+profile::openstack::labtestn::designate::db_host: 
'labtestcontrol2003.wikimedia.org'
+profile::openstack::labtestn::designate::domain_id_internal_forward: 
'e1ac328c-b932-43f2-b12f-407fb9477925'
+profile::openstack::labtestn::designate::domain_id_internal_reverse: 
'9b60f3ab-d64b-4e30-9d6f-7535811b0fa8'
diff --git a/hieradata/codfw/profile/openstack/labtestn/pdns.yaml 
b/hieradata/codfw/profile/openstack/labtestn/pdns.yaml
new file mode 100644
index 0000000..43bf683
--- /dev/null
+++ b/hieradata/codfw/profile/openstack/labtestn/pdns.yaml
@@ -0,0 +1,4 @@
+profile::openstack::labtestn::pdns::host: 'labtest-ns0.wikimedia.org'
+profile::openstack::labtestn::pdns::host_secondary: 'labtest-ns0.wikimedia.org'
+profile::openstack::labtestn::pdns::recursor: 'labtest-recursor0.wikimedia.org'
+profile::openstack::labtestn::pdns::recursor_secondary: 
'labtest-recursor0.wikimedia.org' 
diff --git a/hieradata/common/profile/openstack/base/designate.yaml 
b/hieradata/common/profile/openstack/base/designate.yaml
new file mode 100644
index 0000000..b1560bd
--- /dev/null
+++ b/hieradata/common/profile/openstack/base/designate.yaml
@@ -0,0 +1,7 @@
+profile::openstack::base::designate::db_user: 'designate'
+profile::openstack::base::designate::db_name: 'designate'
+profile::openstack::base::designate::pdns_db_user: 'pdns'
+profile::openstack::base::designate::pdns_db_name: 'pdns'
+profile::openstack::base::designate::pdns_db_user: 'pdns'
+profile::openstack::base::designate::db_admin_user: 'pdns_admin'
+profile::openstack::base::designate::pool_manager_db_name: 
'designate_pool_manager'
diff --git a/hieradata/common/profile/openstack/base/pdns.yaml 
b/hieradata/common/profile/openstack/base/pdns.yaml
new file mode 100644
index 0000000..fe61246
--- /dev/null
+++ b/hieradata/common/profile/openstack/base/pdns.yaml
@@ -0,0 +1 @@
+profile::openstack::base::pdns::db_host: 'localhost'
diff --git a/modules/openstack/manifests/designate/service.pp 
b/modules/openstack/manifests/designate/service.pp
deleted file mode 100644
index 010e4cd..0000000
--- a/modules/openstack/manifests/designate/service.pp
+++ /dev/null
@@ -1,220 +0,0 @@
-# Designate provides DNSaaS services for OpenStack
-# https://wiki.openstack.org/wiki/Designate
-
-class openstack::designate::service (
-    $active_server,
-    $nova_controller,
-    $keystone_host,
-    $keystoneconfig,
-    $designateconfig,
-    $primary_pdns_ip,
-    $secondary_pdns_ip,
-    $openstack_version=$::openstack::version,
-)
-    {
-
-    $keystone_host_ip   = ipresolve($keystone_host,4)
-    $nova_controller_ip = ipresolve($nova_controller)
-    $designate_host = $active_server
-    $keystone_public_uri = 
"http://${keystone_host}:${keystoneconfig['public_port']}"
-    $keystone_admin_uri = 
"http://${keystone_host}:${keystoneconfig['auth_port']}"
-
-    require_package(
-        'python-designateclient',
-        'designate-sink',
-        'designate-common',
-        'designate',
-        'designate-api',
-        'designate-doc',
-        'designate-central',
-        'python-novaclient'
-    )
-
-    file { '/usr/lib/python2.7/dist-packages/wmf_sink':
-        source  => 
"puppet:///modules/openstack/${::openstack::version}/designate/wmf_sink",
-        owner   => 'root',
-        group   => 'root',
-        mode    => '0644',
-        recurse => true,
-    }
-    file { '/usr/lib/python2.7/dist-packages/wmf_sink.egg-info':
-        source  => 
"puppet:///modules/openstack/${::openstack::version}/designate/wmf_sink.egg-info",
-        owner   => 'root',
-        group   => 'root',
-        mode    => '0644',
-        recurse => true,
-    }
-
-    file { '/usr/lib/python2.7/dist-packages/nova_fixed_multi':
-        source  => 
"puppet:///modules/openstack/${::openstack::version}/designate/nova_fixed_multi",
-        owner   => 'root',
-        group   => 'root',
-        mode    => '0644',
-        recurse => true,
-    }
-    file { '/usr/lib/python2.7/dist-packages/nova_fixed_multi.egg-info':
-        source  => 
"puppet:///modules/openstack/${::openstack::version}/designate/nova_fixed_multi.egg-info",
-        owner   => 'root',
-        group   => 'root',
-        mode    => '0644',
-        recurse => true,
-    }
-
-    file {
-        '/etc/designate/designate.conf':
-            content => 
template("openstack/${openstack_version}/designate/designate.conf.erb"),
-            owner   => 'designate',
-            group   => 'designate',
-            notify  => 
Service['designate-api','designate-sink','designate-central','designate-mdns','designate-pool-manager'],
-            require => Package['designate-common'],
-            mode    => '0440';
-        '/etc/designate/api-paste.ini':
-            content => 
template("openstack/${openstack_version}/designate/api-paste.ini.erb"),
-            owner   => 'designate',
-            group   => 'designate',
-            notify  => 
Service['designate-api','designate-sink','designate-central'],
-            require => Package['designate-api'],
-            mode    => '0440';
-        '/etc/designate/policy.json':
-            source  => 
"puppet:///modules/openstack/${openstack_version}/designate/policy.json",
-            owner   => 'designate',
-            group   => 'designate',
-            notify  => 
Service['designate-api','designate-sink','designate-central'],
-            require => Package['designate-common'],
-            mode    => '0440';
-        '/etc/designate/rootwrap.conf':
-            source  => 
"puppet:///modules/openstack/${openstack_version}/designate/rootwrap.conf",
-            owner   => 'root',
-            group   => 'root',
-            notify  => 
Service['designate-api','designate-sink','designate-central'],
-            require => Package['designate-common'],
-            mode    => '0440';
-    }
-
-    # These would be automatically included in a correct designate package...
-    # probably this can be ripped out in Liberty.
-    logrotate::conf { 'designate-mdns':
-        ensure => present,
-        source => 'puppet:///modules/openstack/designate-mdns.logrotate',
-    }
-    logrotate::conf { 'designate-pool-manager':
-        ensure => present,
-        source => 
'puppet:///modules/openstack/designate-pool-manager.logrotate',
-    }
-
-    file { '/var/lib/designate/.ssh/':
-        ensure => directory,
-        owner  => 'designate',
-        group  => 'designate',
-    }
-
-    file { '/var/lib/designate/.ssh/id_rsa':
-        owner     => 'designate',
-        group     => 'designate',
-        mode      => '0400',
-        content   => secret('ssh/puppet_cert_manager/cert_manager'),
-        show_diff => false,
-    }
-
-    # include rootwrap.d entries
-
-    if $::fqdn == $active_server {
-        service {'designate-api':
-            ensure  => running,
-            require => Package['designate-api'];
-        }
-
-        service {'designate-sink':
-            ensure  => running,
-            require => Package['designate-sink'];
-        }
-
-        service {'designate-central':
-            ensure  => running,
-            require => Package['designate-central'];
-        }
-
-        # In the perfect future when the designate packages set up
-        #  an init script for this, some of this can be removed.
-        base::service_unit { 'designate-pool-manager':
-            ensure  =>  present,
-            upstart =>  upstart_template('designate-pool-manager'),
-            require =>  Package['designate'],
-        }
-
-        base::service_unit { 'designate-mdns':
-            ensure  =>  present,
-            upstart =>  upstart_template('designate-mdns'),
-            require =>  Package['designate'],
-        }
-
-        # Page if designate processes die.  We only have one of each of these,
-        #  and new instance creation will be very broken if services die.
-        nrpe::monitor_service { 'check_designate_sink_process':
-            description  => 'designate-sink process',
-            nrpe_command => "/usr/lib/nagios/plugins/check_procs -c 1: 
--ereg-argument-array '^/usr/bin/python /usr/bin/designate-sink'",
-            critical     => true,
-        }
-        nrpe::monitor_service { 'check_designate_api_process':
-            description  => 'designate-api process',
-            nrpe_command => "/usr/lib/nagios/plugins/check_procs -c 1: 
--ereg-argument-array '^/usr/bin/python /usr/bin/designate-api'",
-            critical     => true,
-        }
-        nrpe::monitor_service { 'check_designate_central_process':
-            description  => 'designate-central process',
-            nrpe_command => "/usr/lib/nagios/plugins/check_procs -c 1: 
--ereg-argument-array '^/usr/bin/python /usr/bin/designate-central'",
-            critical     => true,
-        }
-        nrpe::monitor_service { 'check_designate_mdns':
-            description  => 'designate-mdns process',
-            nrpe_command => "/usr/lib/nagios/plugins/check_procs -c 1: 
--ereg-argument-array '^/usr/bin/python /usr/bin/designate-mdns'",
-            critical     => true,
-        }
-        nrpe::monitor_service { 'check_designate_pool-manager':
-            description  => 'designate-pool-manager process',
-            nrpe_command => "/usr/lib/nagios/plugins/check_procs -c 1: 
--ereg-argument-array '^/usr/bin/python /usr/bin/designate-pool-manager'",
-            critical     => true,
-        }
-        monitoring::service { 'designate-api-http':
-            description   => 'designate-api http',
-            check_command => 'check_http_on_port!9001',
-        }
-    } else {
-        service {'designate-api':
-            ensure  => stopped,
-            require => Package['designate-api'];
-        }
-
-        service {'designate-sink':
-            ensure  => stopped,
-            require => Package['designate-sink'];
-        }
-
-        service {'designate-central':
-            ensure  => stopped,
-            require => Package['designate-central'];
-        }
-
-        base::service_unit { 'designate-pool-manager':
-            ensure         => present,
-            upstart        => upstart_template('designate-pool-manager'),
-            require        => Package['designate'],
-            service_params => {
-                # lint:ignore:ensure_first_param
-                ensure => stopped,
-                # lint:endignore
-            }
-        }
-
-        base::service_unit { 'designate-mdns':
-            ensure         => present,
-            upstart        => upstart_template('designate-mdns'),
-            require        => Package['designate'],
-            service_params => {
-                # lint:ignore:ensure_first_param
-                ensure => stopped,
-                # lint:endignore
-            }
-        }
-    }
-}
diff --git a/modules/openstack/files/designate-mdns.logrotate 
b/modules/openstack2/files/designate/designate-mdns.logrotate
similarity index 100%
rename from modules/openstack/files/designate-mdns.logrotate
rename to modules/openstack2/files/designate/designate-mdns.logrotate
diff --git a/modules/openstack/files/designate-pool-manager.logrotate 
b/modules/openstack2/files/designate/designate-pool-manager.logrotate
similarity index 100%
rename from modules/openstack/files/designate-pool-manager.logrotate
rename to modules/openstack2/files/designate/designate-pool-manager.logrotate
diff --git 
a/modules/openstack/files/liberty/designate/dashboard/_70_dns_add_group.py 
b/modules/openstack2/files/liberty/designate/dashboard/_70_dns_add_group.py
similarity index 100%
rename from 
modules/openstack/files/liberty/designate/dashboard/_70_dns_add_group.py
rename to 
modules/openstack2/files/liberty/designate/dashboard/_70_dns_add_group.py
diff --git 
a/modules/openstack/files/liberty/designate/dashboard/_71_dns_project.py 
b/modules/openstack2/files/liberty/designate/dashboard/_71_dns_project.py
similarity index 100%
rename from 
modules/openstack/files/liberty/designate/dashboard/_71_dns_project.py
rename to 
modules/openstack2/files/liberty/designate/dashboard/_71_dns_project.py
diff --git a/modules/openstack/files/liberty/designate/dashboard/__init__.py 
b/modules/openstack2/files/liberty/designate/dashboard/__init__.py
similarity index 100%
rename from modules/openstack/files/liberty/designate/dashboard/__init__.py
rename to modules/openstack2/files/liberty/designate/dashboard/__init__.py
diff --git 
a/modules/openstack/files/liberty/designate/nova_fixed_multi.egg-info/entry_points.txt
 
b/modules/openstack2/files/liberty/designate/nova_fixed_multi.egg-info/entry_points.txt
similarity index 100%
rename from 
modules/openstack/files/liberty/designate/nova_fixed_multi.egg-info/entry_points.txt
rename to 
modules/openstack2/files/liberty/designate/nova_fixed_multi.egg-info/entry_points.txt
diff --git 
a/modules/openstack/files/liberty/designate/nova_fixed_multi/__init__.py 
b/modules/openstack2/files/liberty/designate/nova_fixed_multi/__init__.py
similarity index 100%
rename from 
modules/openstack/files/liberty/designate/nova_fixed_multi/__init__.py
rename to 
modules/openstack2/files/liberty/designate/nova_fixed_multi/__init__.py
diff --git a/modules/openstack/files/liberty/designate/nova_fixed_multi/base.py 
b/modules/openstack2/files/liberty/designate/nova_fixed_multi/base.py
similarity index 100%
rename from modules/openstack/files/liberty/designate/nova_fixed_multi/base.py
rename to modules/openstack2/files/liberty/designate/nova_fixed_multi/base.py
diff --git 
a/modules/openstack/files/liberty/designate/nova_fixed_multi/novamulti.py 
b/modules/openstack2/files/liberty/designate/nova_fixed_multi/novamulti.py
similarity index 100%
rename from 
modules/openstack/files/liberty/designate/nova_fixed_multi/novamulti.py
rename to 
modules/openstack2/files/liberty/designate/nova_fixed_multi/novamulti.py
diff --git a/modules/openstack/files/liberty/designate/policy.json 
b/modules/openstack2/files/liberty/designate/policy.json
similarity index 100%
rename from modules/openstack/files/liberty/designate/policy.json
rename to modules/openstack2/files/liberty/designate/policy.json
diff --git a/modules/openstack/files/liberty/designate/rootwrap.conf 
b/modules/openstack2/files/liberty/designate/rootwrap.conf
similarity index 100%
rename from modules/openstack/files/liberty/designate/rootwrap.conf
rename to modules/openstack2/files/liberty/designate/rootwrap.conf
diff --git 
a/modules/openstack/files/liberty/designate/wmf_sink.egg-info/entry_points.txt 
b/modules/openstack2/files/liberty/designate/wmf_sink.egg-info/entry_points.txt
similarity index 100%
rename from 
modules/openstack/files/liberty/designate/wmf_sink.egg-info/entry_points.txt
rename to 
modules/openstack2/files/liberty/designate/wmf_sink.egg-info/entry_points.txt
diff --git a/modules/openstack/files/liberty/designate/wmf_sink/__init__.py 
b/modules/openstack2/files/liberty/designate/wmf_sink/__init__.py
similarity index 100%
rename from modules/openstack/files/liberty/designate/wmf_sink/__init__.py
rename to modules/openstack2/files/liberty/designate/wmf_sink/__init__.py
diff --git a/modules/openstack/files/liberty/designate/wmf_sink/base.py 
b/modules/openstack2/files/liberty/designate/wmf_sink/base.py
similarity index 100%
rename from modules/openstack/files/liberty/designate/wmf_sink/base.py
rename to modules/openstack2/files/liberty/designate/wmf_sink/base.py
diff --git a/modules/openstack/files/liberty/designate/wmf_sink/wmfsink.py 
b/modules/openstack2/files/liberty/designate/wmf_sink/wmfsink.py
similarity index 100%
rename from modules/openstack/files/liberty/designate/wmf_sink/wmfsink.py
rename to modules/openstack2/files/liberty/designate/wmf_sink/wmfsink.py
diff --git a/modules/openstack2/manifests/designate/monitor.pp 
b/modules/openstack2/manifests/designate/monitor.pp
new file mode 100644
index 0000000..f2bc7b6
--- /dev/null
+++ b/modules/openstack2/manifests/designate/monitor.pp
@@ -0,0 +1,58 @@
+# Designate provides DNSaaS services for OpenStack
+# https://wiki.openstack.org/wiki/Designate
+
+class openstack::designate::service (
+    $active,
+    ) {
+
+    # monitoring::service doesn't take a bool
+    if $active {
+        $ensure = 'present'
+    }
+    else {
+        $ensure = 'absent'
+    }    
+
+    # Page if designate processes die.  We only have one of each of these,
+    #  and new instance creation will be very broken if services die.
+    nrpe::monitor_service { 'check_designate_sink_process':
+        ensure       => $ensure,
+        description  => 'designate-sink process',
+        nrpe_command => "/usr/lib/nagios/plugins/check_procs -c 1: 
--ereg-argument-array '^/usr/bin/python /usr/bin/designate-sink'",
+        critical     => true,
+    }
+
+    nrpe::monitor_service { 'check_designate_api_process':
+        ensure       => $ensure,
+        description  => 'designate-api process',
+        nrpe_command => "/usr/lib/nagios/plugins/check_procs -c 1: 
--ereg-argument-array '^/usr/bin/python /usr/bin/designate-api'",
+        critical     => true,
+    }
+
+    nrpe::monitor_service { 'check_designate_central_process':
+        ensure       => $ensure,
+        description  => 'designate-central process',
+        nrpe_command => "/usr/lib/nagios/plugins/check_procs -c 1: 
--ereg-argument-array '^/usr/bin/python /usr/bin/designate-central'",
+        critical     => true,
+    }
+
+    nrpe::monitor_service { 'check_designate_mdns':
+        ensure       => $ensure,
+        description  => 'designate-mdns process',
+        nrpe_command => "/usr/lib/nagios/plugins/check_procs -c 1: 
--ereg-argument-array '^/usr/bin/python /usr/bin/designate-mdns'",
+        critical     => true,
+    }
+
+    nrpe::monitor_service { 'check_designate_pool-manager':
+        ensure       => $ensure,
+        description  => 'designate-pool-manager process',
+        nrpe_command => "/usr/lib/nagios/plugins/check_procs -c 1: 
--ereg-argument-array '^/usr/bin/python /usr/bin/designate-pool-manager'",
+        critical     => true,
+    }
+
+    monitoring::service { 'designate-api-http':
+        ensure        => $ensure,
+        description   => 'designate-api http',
+        check_command => 'check_http_on_port!9001',
+    }
+}
diff --git a/modules/openstack2/manifests/designate/service.pp 
b/modules/openstack2/manifests/designate/service.pp
new file mode 100644
index 0000000..0ff2029
--- /dev/null
+++ b/modules/openstack2/manifests/designate/service.pp
@@ -0,0 +1,186 @@
+# Designate provides DNSaaS services for OpenStack
+# https://wiki.openstack.org/wiki/Designate
+
+class openstack2::designate::service(
+    $active,
+    $version,
+    $designate_host,
+    $db_user,
+    $db_pass,
+    $db_host,
+    $db_name,
+    $domain_id_internal_forward,
+    $domain_id_internal_reverse,
+    $pool_manager_db_name,
+    $puppetmaster_hostname,
+    $nova_controller,
+    $ldap_user_pass,
+    $pdns_db_user,
+    $pdns_db_pass,
+    $pdns_db_name,
+    $db_admin_user,
+    $db_admin_pass,
+    $primary_pdns_ip,
+    $secondary_pdns_ip,
+    $rabbit_user,
+    $rabbit_pass,
+    $rabbit_host,
+    $nova_controller,
+    $keystone_public_port,
+    $keystone_auth_port,
+    ) {
+
+    $keystone_host_ip   = ipresolve($nova_controller,4)
+    $nova_controller_ip = ipresolve($nova_controller)
+    $keystone_public_uri = "http://${nova_controller}:${keystone_public_port}";
+    $keystone_admin_uri = "http://${nova_controller}:${keystone_auth_port}";
+    $designate_host_ip = ipresolve($designate_host,4)
+    $puppetmaster_hostname_ip = ipresolve($puppetmaster_hostname,4)
+
+    require_package(
+        'python-designateclient',
+        'designate-sink',
+        'designate-common',
+        'designate',
+        'designate-api',
+        'designate-doc',
+        'designate-central',
+        'python-novaclient'
+    )
+
+    file { '/usr/lib/python2.7/dist-packages/wmf_sink':
+        owner   => 'root',
+        group   => 'root',
+        mode    => '0644',
+        source  => 
"puppet:///modules/openstack2/${version}/designate/wmf_sink",
+        recurse => true,
+    }
+
+    file { '/usr/lib/python2.7/dist-packages/wmf_sink.egg-info':
+        owner   => 'root',
+        group   => 'root',
+        mode    => '0644',
+        source  => 
"puppet:///modules/openstack2/${version}/designate/wmf_sink.egg-info",
+        recurse => true,
+    }
+
+    file { '/usr/lib/python2.7/dist-packages/nova_fixed_multi':
+        owner   => 'root',
+        group   => 'root',
+        mode    => '0644',
+        source  => 
"puppet:///modules/openstack2/${version}/designate/nova_fixed_multi",
+        recurse => true,
+    }
+
+    file { '/usr/lib/python2.7/dist-packages/nova_fixed_multi.egg-info':
+        owner   => 'root',
+        group   => 'root',
+        mode    => '0644',
+        source  => 
"puppet:///modules/openstack2/${version}/designate/nova_fixed_multi.egg-info",
+        recurse => true,
+    }
+
+    file {
+        '/etc/designate/designate.conf':
+            owner   => 'designate',
+            group   => 'designate',
+            mode    => '0440',
+            content => 
template("openstack2/${version}/designate/designate.conf.erb"),
+            notify  => 
Service['designate-api','designate-sink','designate-central','designate-mdns','designate-pool-manager'],
+            require => Package['designate-common'];
+        '/etc/designate/api-paste.ini':
+            content => 
template("openstack2/${version}/designate/api-paste.ini.erb"),
+            owner   => 'designate',
+            group   => 'designate',
+            notify  => 
Service['designate-api','designate-sink','designate-central'],
+            require => Package['designate-api'],
+            mode    => '0440';
+        '/etc/designate/policy.json':
+            source  => 
"puppet:///modules/openstack2/${version}/designate/policy.json",
+            owner   => 'designate',
+            group   => 'designate',
+            notify  => 
Service['designate-api','designate-sink','designate-central'],
+            require => Package['designate-common'],
+            mode    => '0440';
+        '/etc/designate/rootwrap.conf':
+            source  => 
"puppet:///modules/openstack2/${version}/designate/rootwrap.conf",
+            owner   => 'root',
+            group   => 'root',
+            notify  => 
Service['designate-api','designate-sink','designate-central'],
+            require => Package['designate-common'],
+            mode    => '0440';
+    }
+
+    # These would be automatically included in a correct designate package...
+    # probably this can be ripped out in Liberty.
+    logrotate::conf { 'designate-mdns':
+        ensure => 'present',
+        source => 
'puppet:///modules/openstack2/designate/designate-mdns.logrotate',
+    }
+
+    logrotate::conf { 'designate-pool-manager':
+        ensure => 'present',
+        source => 
'puppet:///modules/openstack2/designate/designate-pool-manager.logrotate',
+    }
+
+    file { '/var/lib/designate/.ssh/':
+        ensure => 'directory',
+        owner  => 'designate',
+        group  => 'designate',
+    }
+
+    file { '/var/lib/designate/.ssh/id_rsa':
+        owner     => 'designate',
+        group     => 'designate',
+        mode      => '0400',
+        content   => secret('ssh/puppet_cert_manager/cert_manager'),
+        show_diff => false,
+    }
+
+    file {'/etc/init/designate-pool-manager.conf':
+        owner => 'root',
+        group => 'root',
+        mode  => '655',
+        content => 
template('openstack2/initscripts/designate-pool-manager.upstart.erb'),
+    }
+
+    file {'/etc/init/designate-mdns.conf':
+        owner => 'root',
+        group => 'root',
+        mode  => '655',
+        content => 
template('openstack2/initscripts/designate-mdns.upstart.erb'),
+    }
+
+    # include rootwrap.d entries
+
+    service {'designate-api':
+        ensure  => $active,
+        require => Package['designate-api'];
+    }
+
+    service {'designate-sink':
+        ensure  => $active,
+        require => Package['designate-sink'];
+    }
+
+    service {'designate-central':
+        ensure  => $active,
+        require => Package['designate-central'];
+    }
+
+    service {'designate-mdns':
+        ensure  => $active,
+        require =>  [
+            Package['designate'],
+            File['/etc/init/designate-mdns.conf'],
+        ],
+    }        
+
+    service {'designate-pool-manager':
+        ensure  => $active,
+        require =>  [
+            Package['designate'],
+            File['/etc/init/designate-pool-manager.conf'],
+        ],
+    }        
+}
diff --git 
a/modules/openstack2/templates/initscripts/designate-mdns.upstart.erb 
b/modules/openstack2/templates/initscripts/designate-mdns.upstart.erb
new file mode 100644
index 0000000..d0cfc52
--- /dev/null
+++ b/modules/openstack2/templates/initscripts/designate-mdns.upstart.erb
@@ -0,0 +1,11 @@
+description "Designate mdns"
+
+start on (local-filesystems and net-device-up IFACE!=lo)
+stop on [!12345]
+
+setuid designate
+
+chdir /var/lib/designate
+exec /usr/bin/designate-mdns --config-file=/etc/designate/designate.conf 
--log-file=/var/log/designate/designate-mdns.log
+respawn
+respawn limit 10 30
diff --git 
a/modules/openstack2/templates/initscripts/designate-pool-manager.upstart.erb 
b/modules/openstack2/templates/initscripts/designate-pool-manager.upstart.erb
new file mode 100644
index 0000000..392986d
--- /dev/null
+++ 
b/modules/openstack2/templates/initscripts/designate-pool-manager.upstart.erb
@@ -0,0 +1,11 @@
+description "Designate pool manager"
+
+start on (local-filesystems and net-device-up IFACE!=lo)
+stop on [!12345]
+
+setuid designate
+
+chdir /var/lib/designate
+exec /usr/bin/designate-pool-manager 
--config-file=/etc/designate/designate.conf 
--log-file=/var/log/designate/designate-pool-manager.log
+respawn
+respawn limit 10 30
diff --git a/modules/openstack/templates/liberty/designate/api-paste.ini.erb 
b/modules/openstack2/templates/liberty/designate/api-paste.ini.erb
similarity index 100%
rename from modules/openstack/templates/liberty/designate/api-paste.ini.erb
rename to modules/openstack2/templates/liberty/designate/api-paste.ini.erb
diff --git a/modules/openstack/templates/liberty/designate/designate.conf.erb 
b/modules/openstack2/templates/liberty/designate/designate.conf.erb
similarity index 82%
rename from modules/openstack/templates/liberty/designate/designate.conf.erb
rename to modules/openstack2/templates/liberty/designate/designate.conf.erb
index 728853e..c8c0fa0 100644
--- a/modules/openstack/templates/liberty/designate/designate.conf.erb
+++ b/modules/openstack2/templates/liberty/designate/designate.conf.erb
@@ -135,7 +135,7 @@
 auth_uri = <%= @keystone_public_uri %>
 identity_uri = <%= @keystone_admin_uri %>
 admin_user = novaadmin
-admin_password = <%= @keystoneconfig["ldap_user_pass"] %>
+admin_password = <%= @ldap_user_pass %>
 
 #-----------------------
 # Sink Service
@@ -211,14 +211,14 @@
 
 # the 'pool_target' is the pdns database, which we write to for zone creation 
and deletion
 [pool_target:f26e0b32-736f-4f0a-831b-039a415c481e]
-options = connection: mysql://<%= @designateconfig["pdns_db_user"] %>:<%= 
@designateconfig["pdns_db_pass"] %>@<%=@primary_pdns_ip%>/<%= 
@designateconfig["pdns_db_name"] %>, host: <%= @primary_pdns_ip %>, port: 53
+options = connection: mysql://<%= @pdns_db_user %>:<%= @pdns_db_pass 
%>@<%=@primary_pdns_ip%>/<%= @pdns_db_name %>, host: <%= @primary_pdns_ip %>, 
port: 53
 # This is an alternate db account with more rights -- this setting should
 #  be used when running the db-sync command and the like during upgrades.
-#options = connection: mysql://<%= @designateconfig["db_admin_user"] %>:<%= 
@designateconfig["db_admin_pass"] %>@<%=@primary_pdns_ip%>/<%= 
@designateconfig["pdns_db_name"] %>, host: <%= @primary_pdns_ip %>, port: 53
+#options = connection: mysql://<%= @db_admin_user %>:<%= @db_admin_pass 
%>@<%=@primary_pdns_ip%>/<%= @pdns_db_name %>, host: <%= @primary_pdns_ip %>, 
port: 53
 # This is a comma separated list of the mdns servers.
 #  Note that for this to take effect, the list of masters must also be set in 
the pdns database:
 #  UPDATE pdns.domains SET master="<comman-separated list of masters>"
-masters = <%= scope.function_ipresolve([@designate_host, 4]) %>:5354
+masters = <%= @designate_host_ip %>:5354
 type = powerdns
 # These next two settings are /probably/ unused, it's unclear:
 host = <%= @primary_pdns_ip %>
@@ -227,14 +227,14 @@
 <% if @secondary_pdns_ip != @primary_pdns_ip %>
 # the 'pool_target' is the pdns database, which we write to for zone creation 
and deletion
 [pool_target:f845cc43-2052-4d4b-a159-db6fce37b110]
-options = connection: mysql://<%= @designateconfig["pdns_db_user"] %>:<%= 
@designateconfig["pdns_db_pass"] %>@<%=@secondary_pdns_ip%>/<%= 
@designateconfig["pdns_db_name"] %>, host: <%= @secondary_pdns_ip %>, port: 53
+options = connection: mysql://<%= @pdns_db_user %>:<%= @pdns_db_pass 
%>@<%=@secondary_pdns_ip%>/<%= @pdns_db_name %>, host: <%= @secondary_pdns_ip 
%>, port: 53
 # This is an alternate db account with more rights -- this setting should
 #  be used when running the db-sync command and the like during upgrades.
-#options = connection: mysql://<%= @designateconfig["db_admin_user"] %>:<%= 
@designateconfig["db_admin_pass"] %>@<%=@secondary_pdns_ip%>/<%= 
@designateconfig["pdns_db_name"] %>, host: <%= @secondary_pdns_ip %>, port: 53
+#options = connection: mysql://<%= @db_admin_user %>:<%= @db_admin_pass 
%>@<%=@secondary_pdns_ip%>/<%= @pdns_db_name %>, host: <%= @secondary_pdns_ip 
%>, port: 53
 # This is a comma separated list of the mdns servers.
 #  Note that for this to take effect, the list of masters must also be set in 
the pdns database:
 #  UPDATE pdns.domains SET master="<comman-separated list of masters>"
-masters = <%= scope.function_ipresolve([@designate_host, 4]) %>:5354
+masters = <%= @designate_host_ip %>:5354
 type = powerdns
 # These next two settings are /probably/ unused, it's unclear:
 host = <%= @secondary_pdns_ip %>
@@ -266,7 +266,7 @@
 [storage:sqlalchemy]
 # Database connection string - to configure options for a given implementation
 # like sqlalchemy or other see below
-connection = mysql://<%= @designateconfig["db_user"] %>:<%= 
@designateconfig["db_pass"] %>@<%= @designateconfig["db_host"] %>/<%= 
@designateconfig["db_name"] %>
+connection = mysql://<%= @db_user %>:<%= @db_pass %>@<%= @db_host %>/<%= 
@db_name %>
 #connection_debug = 100
 #connection_trace = True
 idle_timeout = 3600
@@ -281,14 +281,14 @@
 #-----------------------
 [handler:nova_fixed_multi]
 # Domain ID of domain to create records in. For a pre-existing domain, in this 
case eqiad.wmflabs
-domain_id = '<%= @designateconfig["domain_id_internal_forward"] %>'
+domain_id = '<%= @domain_id_internal_forward %>'
 site = '<%= scope.lookupvar("::site") %>'
 notification_topics = monitor
 notification_topics = notifications
 control_exchange = nova
 format = '%(hostname)s.%(project_name)s.%(domain)s'
 format = '%(hostname)s.%(domain)s'
-reverse_domain_id = '<%= @designateconfig["domain_id_internal_reverse"] %>'
+reverse_domain_id = '<%= @domain_id_internal_reverse %>'
 reverse_format = '%(hostname)s.%(project_name)s.%(domain)s'
 
 #-----------------------
@@ -299,16 +299,16 @@
 [handler:wmf_sink]
 # Domain ID of domain for instances.
 #  For a pre-existing domain, in this case eqiad.wmflabs
-domain_id = '<%= @designateconfig["domain_id_internal_forward"] %>'
+domain_id = '<%= @domain_id_internal_forward %>'
 notification_topics = monitor
 notification_topics = notifications
 control_exchange = nova
 
 certmanager_user = certmanager
 fqdn_format = '%(hostname)s.%(project_name)s.%(domain)s'
-puppet_master_host = "<%= 
scope.function_ipresolve([@designateconfig['puppetmaster_hostname'], 4]) %>"
-salt_master_host = "<%= @designateconfig['controller_hostname'] %>"
-puppet_config_backend  = "http://<%= @designateconfig['puppetmaster_hostname'] 
%>:8101/v1"
+puppet_master_host = "<%= @puppetmaster_hostname_ip %>"
+salt_master_host = "<%= @nova_controller %>"
+puppet_config_backend  = "http://<%= @puppetmaster_hostname %>:8101/v1"
 
 #------------------------
 # Neutron Floating Handler
@@ -327,7 +327,7 @@
 # SQLAlchemy Pool Manager Cache
 #-----------------------
 [pool_manager_cache:sqlalchemy]
-connection = mysql://<%= @designateconfig["db_user"] %>:<%= 
@designateconfig["db_pass"] %>@<%= @designateconfig["db_host"] %>/<%= 
@designateconfig["pool_manager_db_name"] %>
+connection = mysql://<%= @db_user %>:<%= @db_pass %>@<%= @db_host %>/<%= 
@pool_manager_db_name %>
 #connection_debug = 100
 #connection_trace = False
 #sqlite_synchronous = True
@@ -337,8 +337,8 @@
 
 [oslo_messaging_rabbit]
 # RabbitMQ Config
-rabbit_userid = <%= @designateconfig["rabbit_user"] %>
-rabbit_password = <%= @designateconfig["rabbit_pass"] %>
+rabbit_userid = <%= @rabbit_user %>
+rabbit_password = <%= @rabbit_pass %>
 rabbit_use_ssl = False
-rabbit_hosts = <%= @designateconfig["rabbit_host"] %>
+rabbit_hosts = <%= @rabbit_host %>
 rabbit_port = 5672
diff --git a/modules/profile/manifests/openstack/base/designate/service.pp 
b/modules/profile/manifests/openstack/base/designate/service.pp
new file mode 100644
index 0000000..4184cb1
--- /dev/null
+++ b/modules/profile/manifests/openstack/base/designate/service.pp
@@ -0,0 +1,57 @@
+class profile::openstack::base::designate::service(
+    $version = hiera('profile::openstack::base::version'),
+    $designate_host = hiera('profile::openstack::base::designate_host'),
+    $nova_controller = hiera('profile::openstack::base::nova_controller'),
+    $puppetmaster_hostname = 
hiera('profile::openstack::base::puppetmaster_hostname'),
+    $db_user = hiera('profile::openstack::base::designate::db_user'),
+    $db_pass = hiera('profile::openstack::base::designate::db_pass'),
+    $db_host = hiera('profile::openstack::base::designate::db_host'),
+    $db_name = hiera('profile::openstack::base::designate::db_name'),
+    $domain_id_internal_forward = 
hiera('profile::openstack::base::designate::domain_id_internal_forward'),
+    $domain_id_internal_reverse = 
hiera('profile::openstack::base::designate::domain_id_internal_reverse'),
+    $pool_manager_db_name = 
hiera('profile::openstack::base::designate::pool_manager_db_name'),
+    $ldap_user_pass = hiera('profile::openstack::base::ldap_user_pass'),
+    $pdns_db_user = hiera('profile::openstack::base::designate::pdns_db_user'),
+    $pdns_db_pass = hiera('profile::openstack::base::designate::pdns_db_pass'),
+    $pdns_db_name = hiera('profile::openstack::base::designate::pdns_db_name'),
+    $db_admin_user = 
hiera('profile::openstack::base::designate::db_admin_user'),
+    $db_admin_pass = 
hiera('profile::openstack::base::designate::db_admin_pass'),
+    $primary_pdns = hiera('profile::openstack::base::designate::host'),
+    $secondary_pdns = 
hiera('profile::openstack::base::designate::host_secondary'),
+    $rabbit_user = hiera('profile::openstack::base::nova::rabbit_user'),
+    $rabbit_pass = hiera('profile::openstack::base::nova::rabbit_pass'),
+    $keystone_public_port = 
hiera('profile::openstack::base::keystone::public_port'),
+    $keystone_auth_port = 
hiera('profile::openstack::base::keystone::auth_port'),
+    ) {
+
+    $primary_pdns_ip = ipresolve($primary_pdns,4)
+    $secondary_pdns_ip = ipresolve($secondary_pdns,4)
+
+    class{'::openstack2::designate::service':
+        active                     => ($::fqdn == $designate_host),
+        version                    => $version,
+        designate_host             => $designate_host,
+        db_user                    => $db_user,
+        db_pass                    => $db_pass,
+        db_host                    => $db_host,
+        db_name                    => $db_name,
+        domain_id_internal_forward => $domain_id_internal_forward,
+        domain_id_internal_reverse => $domain_id_internal_reverse,
+        pool_manager_db_name       => $pool_manager_db_name,
+        puppetmaster_hostname      => $puppetmaster_hostname,
+        nova_controller            => $nova_controller,
+        ldap_user_pass             => $ldap_user_pass,
+        pdns_db_user               => $pdns_db_user,
+        pdns_db_pass               => $pdns_db_pass,
+        pdns_db_name               => $pdns_db_name,
+        db_admin_user              => $db_admin_user,
+        db_admin_pass              => $db_admin_pass,
+        primary_pdns_ip            => $primary_pdns_ip,
+        secondary_pdns_ip          => $secondary_pdns_ip,
+        rabbit_user                => $rabbit_user,
+        rabbit_pass                => $rabbit_pass,
+        rabbit_host                => $rabbit_host,
+        keystone_public_port       => $keystone_public_port,
+        keystone_auth_port         => $keystone_auth_port,
+    }
+}
diff --git a/modules/profile/manifests/openstack/base/designate/service.pp.save 
b/modules/profile/manifests/openstack/base/designate/service.pp.save
new file mode 100644
index 0000000..7901802
--- /dev/null
+++ b/modules/profile/manifests/openstack/base/designate/service.pp.save
@@ -0,0 +1,30 @@
+class profile::openstck::designate::service(
+    $version = hiera('profile::openstack::base::version'),
+    $designate_host = hiera('profile::openstack::base::designate_host'),
+    $nova_controller = hiera('profile::openstack::base::nova_controller'),
+    $puppetmaster_hostname = 
hiera('profile::openstack::base::puppetmaster_hostname'),
+    $db_user = hiera('profile::openstack::base::designate::db_user'),
+    $db_pass = hiera('profile::openstack::base::designate::db_pass'),
+    $db_host = hiera('profile::openstack::base::designate::db_host'),
+    $db_name = hiera('profile::openstack::base::designate::db_name'),
+    $domain_id_internal_forward = 
hiera('profile::openstack::base::designate::domain_id_internal_forward'),
+    $domain_id_internal_reverse = 
hiera('profile::openstack::base::designate::domain_id_internal_reverse'),
+    $pool_manager_db_name = 
hiera('profile::openstack::base::designate::pool_manager_db_name'),
+    $ldap_user_pass = hiera('profile::openstack::base::ldap_user_pass'),
+    $pdns_db_user  = hiera('profile::openstack::base::designate::pdns_db_user
+    $pdns_db_pass  = hiera('profile::openstack::base::designate::pdns_db_pass
+    $pdns_db_name  = hiera('profile::openstack::base::designate::pdns_db_name
+    $db_admin_user  = hiera('profile::openstack::base::designate::db_admin_user
+    $db_admin_pass = hiera('profile::openstack::base::designate::db_admin_pass
+    $primary_pdns_ip = 
+    $secondary_pdns_ip,
+    $rabbit_user,
+    $rabbit_pass,
+    $rabbit_host,
+    $nova_controller,
+    $keystone_host,
+    $keystone_public_port,
+    $keystone_auth_port,
+    $primary_pdns_ip,
+    $secondary_pdns_ip,
+    ) {
diff --git a/modules/profile/manifests/openstack/labtestn/designate/service.pp 
b/modules/profile/manifests/openstack/labtestn/designate/service.pp
new file mode 100644
index 0000000..99a52ff
--- /dev/null
+++ b/modules/profile/manifests/openstack/labtestn/designate/service.pp
@@ -0,0 +1,36 @@
+class profile::openstack::labtestn::designate::service(
+    $version = hiera('profile::openstack::labtestn::version'),
+    $designate_host = hiera('profile::openstack::labtestn::designate_host'),
+    $nova_controller = hiera('profile::openstack::labtestn::nova_controller'),
+    $puppetmaster_hostname = 
hiera('profile::openstack::labtestn::puppetmaster_hostname'),
+    $db_pass = hiera('profile::openstack::labtestn::designate::db_pass'),
+    $db_host = hiera('profile::openstack::labtestn::designate::db_host'),
+    $domain_id_internal_forward = 
hiera('profile::openstack::labtestn::designate::domain_id_internal_forward'),
+    $domain_id_internal_reverse = 
hiera('profile::openstack::labtestn::designate::domain_id_internal_reverse'),
+    $ldap_user_pass = hiera('profile::openstack::labtestn::ldap_user_pass'),
+    $pdns_db_pass = 
hiera('profile::openstack::labtestn::designate::pdns_db_pass'),
+    $db_admin_pass = 
hiera('profile::openstack::labtestn::designate::db_admin_pass'),
+    $primary_pdns = hiera('profile::openstack::labtestn::pdns::host'),
+    $secondary_pdns = 
hiera('profile::openstack::labtestn::pdns::host_secondary'),
+    $rabbit_pass = hiera('profile::openstack::labtestn::nova::rabbit_pass'),
+    ) {
+
+    class{'::profile::openstack::base::designate::service':
+        version                    => $version,
+        designate_host             => $designate_host,
+        db_pass                    => $db_pass,
+        db_host                    => $db_host,
+        domain_id_internal_forward => $domain_id_internal_forward,
+        domain_id_internal_reverse => $domain_id_internal_reverse,
+        puppetmaster_hostname      => $puppetmaster_hostname,
+        nova_controller            => $nova_controller,
+        ldap_user_pass             => $ldap_user_pass,
+        pdns_db_pass               => $pdns_db_pass,
+        db_admin_pass              => $db_admin_pass,
+        primary_pdns               => $primary_pdns,
+        secondary_pdns             => $secondary_pdns,
+        rabbit_pass                => $rabbit_pass,
+        keystone_public_port       => $keystone_public_port,
+        keystone_auth_port       => $keystone_auth_port,
+    }
+}
diff --git a/modules/role/manifests/wmcs/openstack/labtestn/services.pp 
b/modules/role/manifests/wmcs/openstack/labtestn/services.pp
index f0762b5..b4f9fd0 100644
--- a/modules/role/manifests/wmcs/openstack/labtestn/services.pp
+++ b/modules/role/manifests/wmcs/openstack/labtestn/services.pp
@@ -1,3 +1,4 @@
 class role::wmcs::openstack::labtestn::services {
-    include profile::openstack::labtestn::cloudrepo
+    include ::profile::openstack::labtestn::cloudrepo
+    include ::profile::openstack::labtestn::designate::service
 }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib66fdb449af65f8c3608a6d225ee80976f4acd7d
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Rush <r...@wikimedia.org>

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

Reply via email to