diff --git a/ci/environments/scenario003-multinode-containers.yaml b/ci/environments/scenario003-multinode-containers.yaml
index 5a97c75fa9..2e7a23c029 100644
--- a/ci/environments/scenario003-multinode-containers.yaml
+++ b/ci/environments/scenario003-multinode-containers.yaml
@@ -88,3 +88,47 @@ parameter_defaults:
   NeutronPluginExtensions: qos,port_security,dns
   RpcPort: 31459
   NotifyPort: 5672
+  DesignatePools: |
+    - name: default
+      # The name is immutable. There will be no option to change the name after
+      # creation and the only way will to change it will be to delete it
+      # (and all zones associated with it) and recreate it.
+      description: Default Pool
+
+      attributes: {}
+
+      # List out the NS records for zones hosted within this pool
+      # This should be a record that is created outside of designate, that
+      # points to the public IP of the controller node.
+      ns_records:
+        - hostname: ns1-1.example.org.
+          priority: 1
+
+      # List out the nameservers for this pool. These are the actual BIND servers.
+      # We use these to verify changes have propagated to all nameservers.
+      nameservers:
+        - host: 127.0.0.1
+          port: 53
+
+      # List out the targets for this pool. For BIND there will be one
+      # entry for each BIND server, as we have to run rndc command on each server
+      targets:
+        - type: bind9
+          description: BIND9 Server 1
+
+          # List out the designate-mdns servers from which BIND servers should
+          # request zone transfers (AXFRs) from.
+          # This should be the IP of the controller node.
+          # If you have multiple controllers you can add multiple masters
+          # by running designate-mdns on them, and adding them here.
+          masters:
+            - host: 127.0.0.1
+              port: 5354
+
+          # BIND Configuration options
+          options:
+            host: 127.0.0.1
+            port: 53
+            rndc_host: 127.0.0.1
+            rndc_port: 953
+            rndc_key_file: /etc/rndc.key
diff --git a/environments/enable-designate.yaml b/environments/enable-designate.yaml
index 245e99d4b7..c5db29e1a7 100644
--- a/environments/enable-designate.yaml
+++ b/environments/enable-designate.yaml
@@ -13,6 +13,54 @@
 #   configuration values for other services to allow them to integrate with
 #   Designate.
 parameter_defaults:
+  # The content for Designate's pools.yaml
+  # Mandatory. This parameter must be set by the user.
+  # Type: string
+  DesignatePools: |
+    - name: default
+      # The name is immutable. There will be no option to change the name after
+      # creation and the only way will to change it will be to delete it
+      # (and all zones associated with it) and recreate it.
+      description: Default Pool
+
+      attributes: {}
+
+      # List out the NS records for zones hosted within this pool
+      # This should be a record that is created outside of designate, that
+      # points to the public IP of the controller node.
+      ns_records:
+        - hostname: ns1-1.example.org.
+          priority: 1
+
+      # List out the nameservers for this pool. These are the actual BIND servers.
+      # We use these to verify changes have propagated to all nameservers.
+      nameservers:
+        - host: 127.0.0.1
+          port: 53
+
+      # List out the targets for this pool. For BIND there will be one
+      # entry for each BIND server, as we have to run rndc command on each server
+      targets:
+        - type: bind9
+          description: BIND9 Server 1
+
+          # List out the designate-mdns servers from which BIND servers should
+          # request zone transfers (AXFRs) from.
+          # This should be the IP of the controller node.
+          # If you have multiple controllers you can add multiple masters
+          # by running designate-mdns on them, and adding them here.
+          masters:
+            - host: 127.0.0.1
+              port: 5354
+
+          # BIND Configuration options
+          options:
+            host: 127.0.0.1
+            port: 53
+            rndc_host: 127.0.0.1
+            rndc_port: 953
+            rndc_key_file: /etc/rndc.key
+
   # If True, enable the internal Neutron DNS server that provides name
   # resolution between VMs.  This parameter has no effect if
   # NeutronDhcpAgentDnsmasqDnsServers is set.
diff --git a/puppet/services/designate-central.yaml b/puppet/services/designate-central.yaml
index aaa3efd923..2b3d57433f 100644
--- a/puppet/services/designate-central.yaml
+++ b/puppet/services/designate-central.yaml
@@ -45,6 +45,9 @@ parameters:
     description: The password for the Designate's database account.
     type: string
     hidden: true
+  DesignatePools:
+    description: The content for Designate's pools.yaml
+    type: string
 
 conditions:
   designate_workers_zero: {equals : [{get_param: DesignateWorkers}, 0]}
@@ -72,7 +75,8 @@ outputs:
       config_settings:
         map_merge:
         - get_attr: [DesignateBase, role_data, config_settings]
-        - designate::db::database_connection:
+        - tripleo::profile::base::designate::central::pools_file_content: {get_param: DesignatePools}
+          designate::db::database_connection:
             make_url:
               scheme: {get_param: [EndpointMap, MysqlInternal, protocol]}
               username: designate
diff --git a/sample-env-generator/enable-services.yaml b/sample-env-generator/enable-services.yaml
index a0016037ab..9201aaee8d 100644
--- a/sample-env-generator/enable-services.yaml
+++ b/sample-env-generator/enable-services.yaml
@@ -22,6 +22,54 @@ environments:
       puppet/services/neutron-dhcp.yaml:
         parameters:
           - NeutronEnableInternalDNS
+      puppet/services/designate-central.yaml:
+        parameters:
+          - DesignatePools
     sample_values:
       NeutronPluginExtensions: qos,port_security,dns
       NeutronEnableInternalDNS: True
+      DesignatePools: |-
+        |
+            - name: default
+              # The name is immutable. There will be no option to change the name after
+              # creation and the only way will to change it will be to delete it
+              # (and all zones associated with it) and recreate it.
+              description: Default Pool
+
+              attributes: {}
+
+              # List out the NS records for zones hosted within this pool
+              # This should be a record that is created outside of designate, that
+              # points to the public IP of the controller node.
+              ns_records:
+                - hostname: ns1-1.example.org.
+                  priority: 1
+
+              # List out the nameservers for this pool. These are the actual BIND servers.
+              # We use these to verify changes have propagated to all nameservers.
+              nameservers:
+                - host: 127.0.0.1
+                  port: 53
+
+              # List out the targets for this pool. For BIND there will be one
+              # entry for each BIND server, as we have to run rndc command on each server
+              targets:
+                - type: bind9
+                  description: BIND9 Server 1
+
+                  # List out the designate-mdns servers from which BIND servers should
+                  # request zone transfers (AXFRs) from.
+                  # This should be the IP of the controller node.
+                  # If you have multiple controllers you can add multiple masters
+                  # by running designate-mdns on them, and adding them here.
+                  masters:
+                    - host: 127.0.0.1
+                      port: 5354
+
+                  # BIND Configuration options
+                  options:
+                    host: 127.0.0.1
+                    port: 53
+                    rndc_host: 127.0.0.1
+                    rndc_port: 953
+                    rndc_key_file: /etc/rndc.key