Add ability to deploy designate and pdns on different nodes
Currently old designate pdns backend class implicitly includes
powerdns server, this won't allow to deploy designate and pdns
on different nodes.
Also simple.yml is split so it is possible to configure do
pools configurations.
Change-Id: Ib717d4a124686c1d36ef83642bbaadcda0d8bf66
Related-Prod: https://mirantis.jira.com/browse/PROD-18317
diff --git a/designate/server/backend/bind.yml b/designate/server/backend/bind.yml
index 823d52d..bbce637 100644
--- a/designate/server/backend/bind.yml
+++ b/designate/server/backend/bind.yml
@@ -38,4 +38,4 @@
key:
designate:
secret: "${_param:designate_bind9_rndc_key}"
- algorithm: "${_param:designate_bind9_rndc_algorithm}"
+ algorithm: "${_param:designate_bind9_rndc_algorithm}"
\ No newline at end of file
diff --git a/designate/server/backend/pdns.yml b/designate/server/backend/pdns.yml
index 45ad0b7..151ef10 100644
--- a/designate/server/backend/pdns.yml
+++ b/designate/server/backend/pdns.yml
@@ -23,4 +23,4 @@
enabled: true
address: ${_param:single_address}
port: ${_param:powerdns_webserver_port}
- password: ${_param:powerdns_webserver_password}
+ password: ${_param:powerdns_webserver_password}
\ No newline at end of file
diff --git a/designate/server/cluster/bind.yml b/designate/server/cluster/bind.yml
new file mode 100644
index 0000000..39c802b
--- /dev/null
+++ b/designate/server/cluster/bind.yml
@@ -0,0 +1,39 @@
+classes:
+ - system.designate.server.cluster.default
+parameters:
+ _param:
+ designate_bind9_rndc_algorithm: hmac-sha512
+ designate:
+ worker:
+ enabled: true
+ server:
+ backend:
+ bind9:
+ rndc_key: "${_param:designate_bind9_rndc_key}"
+ rndc_algorithm: "${_param:designate_bind9_rndc_algorithm}"
+ pools:
+ default:
+ description: 'default pool'
+ ns_records: ${_param:designate_pool_ns_records}
+ nameservers: ${_param:designate_pool_nameservers}
+ targets:
+ default01:
+ type: bind9
+ description: 'default target01'
+ masters: ${_param:designate_pool_target_masters}
+ options:
+ host: ${_param:openstack_dns_node01_address}
+ port: 53
+ rndc_host: ${_param:openstack_dns_node01_address}
+ rndc_port: 953
+ rndc_key_file: /etc/designate/rndc.key
+ default02:
+ type: bind9
+ description: 'default target02'
+ masters: ${_param:designate_pool_target_masters}
+ options:
+ host: ${_param:openstack_dns_node02_address}
+ port: 53
+ rndc_host: ${_param:openstack_dns_node02_address}
+ rndc_port: 953
+ rndc_key_file: /etc/designate/rndc.key
\ No newline at end of file
diff --git a/designate/server/cluster/default.yml b/designate/server/cluster/default.yml
new file mode 100644
index 0000000..de2eb43
--- /dev/null
+++ b/designate/server/cluster/default.yml
@@ -0,0 +1,59 @@
+classes:
+- service.keepalived.cluster.single
+- service.haproxy.proxy.single
+- system.haproxy.proxy.listen.openstack.designate
+- service.designate.server.cluster
+parameters:
+ _param:
+ designate_admin_api_enabled: false
+ cluster_internal_protocol: 'http'
+ linux:
+ system:
+ package:
+ python-pymysql:
+ fromrepo: ${_param:openstack_version}
+ version: latest
+ designate:
+ _support:
+ sensu:
+ enabled: false
+ server:
+ enabled: true
+ local_bind: true
+ region: ${_param:openstack_region}
+ domain_id: ${_param:designate_domain_id}
+ version: ${_param:designate_version}
+ role: ${_param:openstack_node_role}
+ admin_api:
+ enabled: ${_param:designate_admin_api_enabled}
+ enabled_extensions_admin: quotas
+ database:
+ engine: mysql
+ host: ${_param:openstack_database_address}
+ port: 3306
+ name:
+ main_database: designate
+ pool_manager: designate_pool_manager
+ user: designate
+ password: ${_param:mysql_designate_password}
+ identity:
+ engine: keystone
+ host: ${_param:openstack_control_address}
+ port: 35357
+ tenant: service
+ user: designate
+ password: ${_param:keystone_designate_password}
+ protocol: ${_param:cluster_internal_protocol}
+ bind:
+ api:
+ address: ${_param:single_address}
+ message_queue:
+ engine: rabbitmq
+ port: 5672
+ members:
+ - host: ${_param:openstack_message_queue_node01_address}
+ - host: ${_param:openstack_message_queue_node02_address}
+ - host: ${_param:openstack_message_queue_node03_address}
+ user: openstack
+ password: ${_param:rabbitmq_openstack_password}
+ virtual_host: '/openstack'
\ No newline at end of file
diff --git a/designate/server/cluster/pdns.yml b/designate/server/cluster/pdns.yml
new file mode 100644
index 0000000..7d81f90
--- /dev/null
+++ b/designate/server/cluster/pdns.yml
@@ -0,0 +1,42 @@
+classes:
+ - system.designate.server.cluster.default
+parameters:
+ _param:
+ designate_pool_manager_enabled: true
+ designate_pool_manager_periodic_sync_interval: '120'
+ designate_mdns_address: 0.0.0.0
+ # required for supermasters functionality
+ designate_mdns_port: 53
+ designate:
+ pool_manager:
+ # required for supermasters functionality
+ enabled: ${_param:designate_pool_manager_enabled}
+ periodic_sync_interval: ${_param:designate_pool_manager_periodic_sync_interval}
+ server:
+ mdns:
+ address: ${_param:designate_mdns_address}
+ port: ${_param:designate_mdns_port}
+ pools:
+ default:
+ description: 'default pool'
+ ns_records: ${_param:designate_pool_ns_records}
+ nameservers: ${_param:designate_pool_nameservers}
+ targets:
+ default:
+ type: pdns4
+ description: 'default target1'
+ masters: ${_param:designate_pool_target_masters}
+ options:
+ host: ${_param:openstack_dns_node01_address}
+ port: 53
+ api_endpoint: "http://${_param:openstack_dns_node01_address}:${_param:powerdns_webserver_port}"
+ api_token: ${_param:designate_pdns_api_key}
+ default1:
+ type: pdns4
+ description: 'default target2'
+ masters: ${_param:designate_pool_target_masters}
+ options:
+ host: ${_param:openstack_dns_node02_address}
+ port: 53
+ api_endpoint: "http://${_param:openstack_dns_node02_address}:${_param:powerdns_webserver_port}"
+ api_token: ${_param:designate_pdns_api_key}
\ No newline at end of file