Add features_designate_pool_manager roles

related changes:
https://gerrit.mcp.mirantis.net/#/c/10107/ = worker mode
https://gerrit.mcp.mirantis.net/#/c/6723/ = pool_manager mode
https://gerrit.mcp.mirantis.net/#/c/10837/ = -//-

Change-Id: Iddb9ae8de787f6f2646f91cba992babcdf25cd69
diff --git "a/\173\173 cookiecutter._env_name \175\175/features/designate/init.yml" "b/\173\173 cookiecutter._env_name \175\175/features/designate/init.yml"
index 33f4259..6a31183 100644
--- "a/\173\173 cookiecutter._env_name \175\175/features/designate/init.yml"
+++ "b/\173\173 cookiecutter._env_name \175\175/features/designate/init.yml"
@@ -33,6 +33,7 @@
       api_token: ${_param:designate_pdns_api_key}
       api_endpoint: ${_param:designate_pdns_api_endpoint}
     designate_version: ${_param:openstack_version}
+    designate_worker_enabled: true
     designate_service_host: ${_param:openstack_control_address}
     mysql_designate_password: {{ password(16) }}
     keystone_designate_password: {{ password(16) }}
diff --git "a/\173\173 cookiecutter._env_name \175\175/features/designate/system.yml" "b/\173\173 cookiecutter._env_name \175\175/features/designate/system.yml"
index 3fa26a6..f867363 100644
--- "a/\173\173 cookiecutter._env_name \175\175/features/designate/system.yml"
+++ "b/\173\173 cookiecutter._env_name \175\175/features/designate/system.yml"
@@ -11,6 +11,8 @@
         - ${_param:openstack_control_node03_address}
         - 127.0.0.1
   designate:
+    worker:
+      enabled: ${_param:designate_worker_enabled}
     server:
       pools:
         default:
diff --git "a/\173\173 cookiecutter._env_name \175\175/features/designate_pool_manager/database.yml" "b/\173\173 cookiecutter._env_name \175\175/features/designate_pool_manager/database.yml"
new file mode 100644
index 0000000..20c05e1
--- /dev/null
+++ "b/\173\173 cookiecutter._env_name \175\175/features/designate_pool_manager/database.yml"
@@ -0,0 +1,3 @@
+classes:
+- system.galera.server.database.designate
+- environment.{{ cookiecutter._env_name }}.features.designate_pool_manager
diff --git "a/\173\173 cookiecutter._env_name \175\175/features/designate_pool_manager/dns.yml" "b/\173\173 cookiecutter._env_name \175\175/features/designate_pool_manager/dns.yml"
new file mode 100644
index 0000000..2d3f0c6
--- /dev/null
+++ "b/\173\173 cookiecutter._env_name \175\175/features/designate_pool_manager/dns.yml"
@@ -0,0 +1,34 @@
+classes:
+- system.powerdns.server.single
+
+parameters:
+  powerdns:
+    server:
+      api:
+          enabled: True
+          key: ${_param:designate_pdns_api_key}
+      axfr_ips:
+          ${_param:powerdns_axfr_ips}
+      bind:
+          address: ${_param:single_address}
+      overwrite_supermasters: True
+      supermasters:
+          ${_param:powerdns_supermasters}
+      webserver:
+          enabled: True
+          address: ${_param:single_address}
+          password: ${_param:powerdns_webserver_password}
+          port: ${_param:powerdns_webserver_port}
+  linux:
+    system:
+      package:
+        python-msgpack:
+          version: latest
+    network:
+      interface:
+        ens4:
+          enabled: true
+          type: eth
+          proto: static
+          address: ${_param:single_address}
+          netmask: 255.255.255.0
diff --git "a/\173\173 cookiecutter._env_name \175\175/features/designate_pool_manager/init.yml" "b/\173\173 cookiecutter._env_name \175\175/features/designate_pool_manager/init.yml"
new file mode 100644
index 0000000..9e3c182
--- /dev/null
+++ "b/\173\173 cookiecutter._env_name \175\175/features/designate_pool_manager/init.yml"
@@ -0,0 +1,76 @@
+{%- macro password(size=16) -%}
+{% for index in range(size) %}{{ 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'|random }}{% endfor %}
+{%- endmacro -%}
+parameters:
+  _param:
+    # Put overrides for any environment-specific variables here
+    powerdns_webserver_password: {{ password(12) }}
+    powerdns_webserver_port: 8081
+    designate_domain_id: 5186883b-91fb-4891-bd49-e6769234a8fc
+    designate_mdns_address: 0.0.0.0
+    designate_mdns_port: 53
+    designate_pdns_api_key: {{ password(12) }}
+    designate_pdns_api_endpoint: "http://${_param:openstack_dns_node01_address}:${_param:powerdns_webserver_port}"
+    designate_pool_manager_enabled: True
+    designate_pool_manager_periodic_sync_interval: '120'
+    powerdns_axfr_ips:
+      - ${_param:openstack_control_node01_address}
+      - ${_param:openstack_control_node02_address}
+      - ${_param:openstack_control_node03_address}
+      - 127.0.0.1
+    powerdns_supermasters:
+      - ip: ${_param:openstack_control_node01_address}
+        nameserver: ns1.example.org
+        account: master
+      - ip: ${_param:openstack_control_node02_address}
+        nameserver: ns2.example.org
+        account: master
+      - ip: ${_param:openstack_control_node03_address}
+        nameserver: ns3.example.org
+        account: master
+    powerdns_overwrite_supermasters: True
+    designate_pool_ns_records:
+      - hostname: 'ns1.example.org.'
+        priority: 10
+      - hostname: 'ns2.example.org.'
+        priority: 20
+      - hostname: 'ns3.example.org.'
+        priority: 30
+    designate_pool_nameservers:
+      - host: ${_param:openstack_dns_node01_address}
+        port: 53
+      - host: ${_param:openstack_dns_node02_address}
+        port: 53
+    designate_pool_target_type: pdns4
+    designate_pool_target_masters:
+      - host: ${_param:openstack_control_node01_address}
+        port: 53
+      - host: ${_param:openstack_control_node02_address}
+        port: 53
+      - host: ${_param:openstack_control_node03_address}
+        port: 53
+    designate_pool_target_options:
+      host: ${_param:openstack_dns_node01_address}
+      port: 53
+      api_token: ${_param:designate_pdns_api_key}
+      api_endpoint: ${_param:designate_pdns_api_endpoint}
+    designate_version: ${_param:openstack_version}
+    designate_service_host: ${_param:openstack_control_address}
+    mysql_designate_password: {{ password(16) }}
+    keystone_designate_password: {{ password(16) }}
+
+    openstack_dns_node01_address: 172.16.10.111
+    openstack_dns_node02_address: 172.16.10.112
+  linux:
+    network:
+      host:
+        dns01:
+          address: ${_param:openstack_dns_node01_address}
+          names:
+          - dns01
+          - dns01.${_param:cluster_domain}
+        dns02:
+          address: ${_param:openstack_dns_node02_address}
+          names:
+          - dns02
+          - dns02.${_param:cluster_domain}
diff --git "a/\173\173 cookiecutter._env_name \175\175/features/designate_pool_manager/keystone.yml" "b/\173\173 cookiecutter._env_name \175\175/features/designate_pool_manager/keystone.yml"
new file mode 100644
index 0000000..1e1ec21
--- /dev/null
+++ "b/\173\173 cookiecutter._env_name \175\175/features/designate_pool_manager/keystone.yml"
@@ -0,0 +1,3 @@
+classes:
+- system.keystone.client.service.designate
+- environment.{{ cookiecutter._env_name }}.features.designate_pool_manager
diff --git "a/\173\173 cookiecutter._env_name \175\175/features/designate_pool_manager/system.yml" "b/\173\173 cookiecutter._env_name \175\175/features/designate_pool_manager/system.yml"
new file mode 100644
index 0000000..fe579c6
--- /dev/null
+++ "b/\173\173 cookiecutter._env_name \175\175/features/designate_pool_manager/system.yml"
@@ -0,0 +1,28 @@
+classes:
+- system.designate.server.cluster
+- system.designate.server.backend.pdns
+- environment.{{ cookiecutter._env_name }}.features.designate_pool_manager
+parameters:
+  designate:
+    pool_manager:
+      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: 'test pool'
+          targets:
+            default:
+              description: 'test target1'
+            default1:
+              type: ${_param:designate_pool_target_type}
+              description: 'test 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}