diff --git a/manifests/init.pp b/manifests/init.pp
index 3021e294..1bbf7ea7 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -110,6 +110,8 @@
 #   Defaults to false
 #  [*gnocchi_available*]
 #   Defaults to false
+#  [*designate_available*]
+#   Defaults to false
 #  [*horizon_available*]
 #   Defaults to true
 #  [*neutron_available*]
@@ -152,6 +154,8 @@
 #   Defaults to undef
 #  [*disable_ssl_validation*]
 #   Defaults to undef
+#  [*designate_nameservers*]
+#   Defaults to undef
 #  [*manage_tests_packages*]
 #   Defaults to false
 #
@@ -250,6 +254,7 @@ class tempest(
   $ceilometer_available          = false,
   $aodh_available                = false,
   $gnocchi_available             = false,
+  $designate_available           = false,
   $horizon_available             = true,
   $neutron_available             = false,
   $nova_available                = true,
@@ -270,6 +275,8 @@ class tempest(
   # scenario options
   $img_dir                       = '/var/lib/tempest',
   $img_file                      = 'cirros-0.3.4-x86_64-disk.img',
+  # designate options
+  $designate_nameservers         = undef,
   # DEPRECATED PARAMETERS
   $verbose                       = undef,
   $tenant_name                   = undef,
@@ -419,6 +426,7 @@ class tempest(
     'service_available/ceilometer':                value => $ceilometer_available;
     'service_available/aodh':                      value => $aodh_available;
     'service_available/gnocchi':                   value => $gnocchi_available;
+    'service_available/designate':                 value => $designate_available;
     'service_available/horizon':                   value => $horizon_available;
     'service_available/neutron':                   value => $neutron_available;
     'service_available/nova':                      value => $nova_available;
@@ -433,6 +441,7 @@ class tempest(
     'scenario/img_dir':                            value => $img_dir;
     'scenario/img_file':                           value => $img_file;
     'service_broker/run_service_broker_tests':     value => $run_service_broker_tests;
+    'dns/nameservers':                             value => $designate_nameservers;
   }
 
   oslo::concurrency { 'tempest_config': lock_path => $lock_path }
@@ -573,6 +582,13 @@ class tempest(
         tag    => ['openstack', 'tempest-package'],
       }
     }
+    if $designate_available and $::tempest::params::python_designate_tests {
+      package { 'python-designate-tests':
+        ensure => present,
+        name   => $::tempest::params::python_designate_tests,
+        tag    => ['openstack', 'tempest-package'],
+      }
+    }
   }
 
   if $configure_images {
diff --git a/manifests/params.pp b/manifests/params.pp
index e0fa4808..0dee544d 100644
--- a/manifests/params.pp
+++ b/manifests/params.pp
@@ -14,6 +14,7 @@ class tempest::params {
       $python_aodh_tests       = 'python-aodh-tests'
       $python_ceilometer_tests = 'python-ceilometer-tests'
       $python_cinder_tests     = 'python-cinder-tests'
+      $python_designate_tests  = 'python-designate-tests'
       $python_glance_tests     = 'python-glance-tests'
       $python_gnocchi_tests    = 'python-gnocchi-tests'
       $python_heat_tests       = 'python-heat-tests'
@@ -45,6 +46,7 @@ class tempest::params {
       $python_aodh_tests       = false
       $python_ceilometer_tests = false
       $python_cinder_tests     = false
+      $python_designate_tests  = false
       $python_glance_tests     = false
       $python_gnocchi_tests    = false
       $python_heat_tests       = false
diff --git a/releasenotes/notes/designate-e22d3f4ebe2e9a19.yaml b/releasenotes/notes/designate-e22d3f4ebe2e9a19.yaml
new file mode 100644
index 00000000..e7d52391
--- /dev/null
+++ b/releasenotes/notes/designate-e22d3f4ebe2e9a19.yaml
@@ -0,0 +1,3 @@
+---
+features:
+  - Add support to test Designate.
diff --git a/spec/classes/tempest_spec.rb b/spec/classes/tempest_spec.rb
index 93edaea0..6c36630c 100644
--- a/spec/classes/tempest_spec.rb
+++ b/spec/classes/tempest_spec.rb
@@ -175,6 +175,7 @@ describe 'tempest' do
           is_expected.to contain_tempest_config('auth/admin_project_name').with(:value => nil)
           is_expected.to contain_tempest_config('auth/admin_username').with(:value => nil)
           is_expected.to contain_tempest_config('auth/use_dynamic_credentials').with(:value => nil)
+          is_expected.to contain_tempest_config('dns/nameservers').with(:value => nil)
           is_expected.to contain_tempest_config('compute/change_password_available').with(:value => nil)
           is_expected.to contain_tempest_config('compute/flavor_ref').with(:value => nil)
           is_expected.to contain_tempest_config('compute/flavor_ref_alt').with(:value => nil)
@@ -219,6 +220,7 @@ describe 'tempest' do
           is_expected.to contain_tempest_config('service_available/trove').with(:value => false)
           is_expected.to contain_tempest_config('service_available/ironic').with(:value => false)
           is_expected.to contain_tempest_config('service_available/zaqar').with(:value => false)
+          is_expected.to contain_tempest_config('service_available/designate').with(:value => false)
           is_expected.to contain_tempest_config('whitebox/db_uri').with(:value => nil)
           is_expected.to contain_tempest_config('cli/cli_dir').with(:value => nil)
           is_expected.to contain_tempest_config('oslo_concurrency/lock_path').with(:value => '/var/lib/tempest')