diff --git a/designate_tempest_plugin/tests/api/admin/test_quotas.py b/designate_tempest_plugin/tests/api/admin/test_quotas.py
index 1221b9f..0195ee3 100644
--- a/designate_tempest_plugin/tests/api/admin/test_quotas.py
+++ b/designate_tempest_plugin/tests/api/admin/test_quotas.py
@@ -52,7 +52,7 @@
     def setup_clients(cls):
         super(QuotasAdminTest, cls).setup_clients()
 
-        cls.admin_client = cls.os_admin.quotas_client
+        cls.admin_client = cls.os_admin.dns_admin.QuotasClient()
 
     @decorators.idempotent_id('ed42f367-e5ba-40d7-a08d-366ad787d21c')
     def test_show_quotas(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_blacklists.py b/designate_tempest_plugin/tests/api/v2/test_blacklists.py
index 65b6dff..0e22bf6 100644
--- a/designate_tempest_plugin/tests/api/v2/test_blacklists.py
+++ b/designate_tempest_plugin/tests/api/v2/test_blacklists.py
@@ -39,7 +39,7 @@
     @classmethod
     def setup_clients(cls):
         super(BlacklistsAdminTest, cls).setup_clients()
-        cls.admin_client = cls.os_admin.blacklists_client
+        cls.admin_client = cls.os_admin.dns_v2.BlacklistsClient()
 
     @decorators.idempotent_id('3a7f7564-6bdd-446e-addc-a3475b4c3f71')
     def test_create_blacklist(self):
@@ -123,7 +123,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestBlacklistNotFoundAdmin, cls).setup_clients()
-        cls.admin_client = cls.os_admin.blacklists_client
+        cls.admin_client = cls.os_admin.dns_v2.BlacklistsClient()
 
     @decorators.idempotent_id('9d65b638-fe98-47a8-853f-fa9244d144cc')
     def test_show_blacklist_404(self):
@@ -166,7 +166,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestBlacklistInvalidIdAdmin, cls).setup_clients()
-        cls.admin_client = cls.os_admin.blacklists_client
+        cls.admin_client = cls.os_admin.dns_v2.BlacklistsClient()
 
     @decorators.idempotent_id('c7bae53f-2edc-45d8-b254-8a81482728c1')
     def test_show_blacklist_invalid_uuid(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_designate_limits.py b/designate_tempest_plugin/tests/api/v2/test_designate_limits.py
index a2c92dc..5db07c1 100644
--- a/designate_tempest_plugin/tests/api/v2/test_designate_limits.py
+++ b/designate_tempest_plugin/tests/api/v2/test_designate_limits.py
@@ -31,8 +31,7 @@
     @classmethod
     def setup_clients(cls):
         super(DesignateLimit, cls).setup_clients()
-
-        cls.admin_client = cls.os_admin.designate_limit_client
+        cls.admin_client = cls.os_admin.dns_v2.DesignateLimitClient()
 
     @decorators.idempotent_id('828572be-8662-11eb-8ff2-74e5f9e2a801')
     def test_list_designate_limits(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_pool.py b/designate_tempest_plugin/tests/api/v2/test_pool.py
index e2516af..21782ce 100644
--- a/designate_tempest_plugin/tests/api/v2/test_pool.py
+++ b/designate_tempest_plugin/tests/api/v2/test_pool.py
@@ -45,8 +45,7 @@
     @classmethod
     def setup_clients(cls):
         super(PoolAdminTest, cls).setup_clients()
-
-        cls.admin_client = cls.os_admin.pool_client
+        cls.admin_client = cls.os_admin.dns_v2.PoolClient()
 
     @decorators.idempotent_id('69257f7c-b3d5-4e1b-998e-0677ad12f125')
     def test_create_pool(self):
@@ -136,7 +135,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestPoolNotFoundAdmin, cls).setup_clients()
-        cls.admin_client = cls.os_admin.pool_client
+        cls.admin_client = cls.os_admin.dns_v2.PoolClient()
 
     @decorators.idempotent_id('56281b2f-dd5a-4376-8c32-aba771062fa5')
     def test_show_pool_404(self):
@@ -179,7 +178,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestPoolInvalidIdAdmin, cls).setup_clients()
-        cls.admin_client = cls.os_admin.pool_client
+        cls.admin_client = cls.os_admin.dns_v2.PoolClient()
 
     @decorators.idempotent_id('081d0188-42a7-4953-af0e-b022960715e2')
     def test_show_pool_invalid_uuid(self):
@@ -223,7 +222,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestPoolAdminNegative, cls).setup_clients()
-        cls.admin_client = cls.os_admin.pool_client
+        cls.admin_client = cls.os_admin.dns_v2.PoolClient()
 
     @decorators.idempotent_id('0a8cdc1e-ac02-11eb-ae06-74e5f9e2a801')
     def test_create_pool_invalid_name(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_ptrs.py b/designate_tempest_plugin/tests/api/v2/test_ptrs.py
index cfd9685..ef8f083 100644
--- a/designate_tempest_plugin/tests/api/v2/test_ptrs.py
+++ b/designate_tempest_plugin/tests/api/v2/test_ptrs.py
@@ -41,7 +41,7 @@
     @classmethod
     def setup_clients(cls):
         super(DesignatePtrRecord, cls).setup_clients()
-        cls.primary_ptr_client = cls.os_primary.ptr_client
+        cls.primary_ptr_client = cls.os_primary.dns_v2.PtrClient()
         cls.primary_floating_ip_client = cls.os_primary.floating_ips_client
 
     def _set_ptr(self):
@@ -100,7 +100,7 @@
     @classmethod
     def setup_clients(cls):
         super(DesignatePtrRecordNegative, cls).setup_clients()
-        cls.primary_ptr_client = cls.os_primary.ptr_client
+        cls.primary_ptr_client = cls.os_primary.dns_v2.PtrClient()
         cls.primary_floating_ip_client = cls.os_primary.floating_ips_client
 
     def _set_ptr(self, ptr_name=None, ttl=None, description=None,
diff --git a/designate_tempest_plugin/tests/api/v2/test_quotas.py b/designate_tempest_plugin/tests/api/v2/test_quotas.py
index ad37a32..783ccdd 100644
--- a/designate_tempest_plugin/tests/api/v2/test_quotas.py
+++ b/designate_tempest_plugin/tests/api/v2/test_quotas.py
@@ -48,9 +48,9 @@
     def setup_clients(cls):
         super(QuotasV2Test, cls).setup_clients()
 
-        cls.quotas_client = cls.os_primary.quotas_client
-        cls.admin_client = cls.os_admin.quotas_client
-        cls.alt_client = cls.os_alt.quotas_client
+        cls.quotas_client = cls.os_primary.dns_v2.QuotasClient()
+        cls.admin_client = cls.os_admin.dns_v2.QuotasClient()
+        cls.alt_client = cls.os_alt.dns_v2.QuotasClient()
 
     def _store_quotas(self, project_id=None, cleanup=True):
         """Remember current quotas and reset them after the test"""
diff --git a/designate_tempest_plugin/tests/api/v2/test_recordset.py b/designate_tempest_plugin/tests/api/v2/test_recordset.py
index 96179f1..65b1b3b 100644
--- a/designate_tempest_plugin/tests/api/v2/test_recordset.py
+++ b/designate_tempest_plugin/tests/api/v2/test_recordset.py
@@ -61,13 +61,12 @@
     @classmethod
     def setup_clients(cls):
         super(RecordsetsTest, cls).setup_clients()
-
-        cls.client = cls.os_primary.recordset_client
-        cls.alt_client = cls.os_alt.recordset_client
-        cls.admin_client = cls.os_admin.recordset_client
-        cls.zone_client = cls.os_primary.zones_client
-        cls.alt_zone_client = cls.os_alt.zones_client
-        cls.admin_zone_client = cls.os_admin.zones_client
+        cls.client = cls.os_primary.dns_v2.RecordsetClient()
+        cls.alt_client = cls.os_alt.dns_v2.RecordsetClient()
+        cls.admin_client = cls.os_admin.dns_v2.RecordsetClient()
+        cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
+        cls.alt_zone_client = cls.os_alt.dns_v2.ZonesClient()
+        cls.admin_zone_client = cls.os_admin.dns_v2.ZonesClient()
 
     @decorators.attr(type='smoke')
     @decorators.idempotent_id('631d74fd-6909-4684-a61b-5c4d2f92c3e7')
@@ -311,10 +310,9 @@
     @classmethod
     def setup_clients(cls):
         super(RecordsetsNegativeTest, cls).setup_clients()
-
-        cls.client = cls.os_primary.recordset_client
-        cls.alt_client = cls.os_alt.recordset_client
-        cls.zone_client = cls.os_primary.zones_client
+        cls.client = cls.os_primary.dns_v2.RecordsetClient()
+        cls.alt_client = cls.os_alt.dns_v2.RecordsetClient()
+        cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
 
     @decorators.idempotent_id('98c94f8c-217a-4056-b996-b1f856d0753e')
     @ddt.file_data("recordset_data_invalid.json")
@@ -457,9 +455,8 @@
     @classmethod
     def setup_clients(cls):
         super(RootRecordsetsTests, cls).setup_clients()
-
-        cls.client = cls.os_primary.recordset_client
-        cls.zone_client = cls.os_primary.zones_client
+        cls.client = cls.os_primary.dns_v2.RecordsetClient()
+        cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
 
     @classmethod
     def skip_checks(cls):
@@ -554,12 +551,11 @@
     @classmethod
     def setup_clients(cls):
         super(RecordsetOwnershipTest, cls).setup_clients()
-
-        cls.client = cls.os_primary.recordset_client
-        cls.zone_client = cls.os_primary.zones_client
-        cls.alt_client = cls.os_alt.recordset_client
-        cls.alt_zone_client = cls.os_alt.zones_client
-        cls.admin_client = cls.os_admin.recordset_client
+        cls.client = cls.os_primary.dns_v2.RecordsetClient()
+        cls.alt_client = cls.os_alt.dns_v2.RecordsetClient()
+        cls.admin_client = cls.os_admin.dns_v2.RecordsetClient()
+        cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
+        cls.alt_zone_client = cls.os_alt.dns_v2.ZonesClient()
 
     def _create_client_recordset(self, clients_list):
         """Create a zone and asoociated recordset using given credentials
diff --git a/designate_tempest_plugin/tests/api/v2/test_recordset_validation.py b/designate_tempest_plugin/tests/api/v2/test_recordset_validation.py
index 36c68ff..a7efe31 100644
--- a/designate_tempest_plugin/tests/api/v2/test_recordset_validation.py
+++ b/designate_tempest_plugin/tests/api/v2/test_recordset_validation.py
@@ -51,8 +51,8 @@
     def setup_clients(cls):
         super(RecordsetValidationTest, cls).setup_clients()
 
-        cls.recordset_client = cls.os_primary.recordset_client
-        cls.zones_client = cls.os_primary.zones_client
+        cls.recordset_client = cls.os_primary.dns_v2.RecordsetClient()
+        cls.zones_client = cls.os_primary.dns_v2.ZonesClient()
 
     @property
     def zone(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_service_statuses.py b/designate_tempest_plugin/tests/api/v2/test_service_statuses.py
index 68396c5..2f0a9bb 100644
--- a/designate_tempest_plugin/tests/api/v2/test_service_statuses.py
+++ b/designate_tempest_plugin/tests/api/v2/test_service_statuses.py
@@ -38,8 +38,8 @@
     def setup_clients(cls):
         super(ServiceStatus, cls).setup_clients()
 
-        cls.client = cls.os_primary.service_client
-        cls.admin_client = cls.os_admin.service_client
+        cls.client = cls.os_primary.dns_v2.ServiceClient()
+        cls.admin_client = cls.os_admin.dns_v2.ServiceClient()
 
     @decorators.idempotent_id('bf277a76-8583-11eb-a557-74e5f9e2a801')
     def test_list_service_statuses(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_tld.py b/designate_tempest_plugin/tests/api/v2/test_tld.py
index f14d4ed..ce8a04f 100644
--- a/designate_tempest_plugin/tests/api/v2/test_tld.py
+++ b/designate_tempest_plugin/tests/api/v2/test_tld.py
@@ -38,7 +38,7 @@
     @classmethod
     def setup_clients(cls):
         super(TldAdminTest, cls).setup_clients()
-        cls.admin_client = cls.os_admin.tld_client
+        cls.admin_client = cls.os_admin.dns_v2.TldClient()
 
     @classmethod
     def resource_setup(cls):
@@ -140,7 +140,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestTldNotFoundAdmin, cls).setup_clients()
-        cls.admin_client = cls.os_admin.tld_client
+        cls.admin_client = cls.os_admin.dns_v2.TldClient()
 
     @decorators.idempotent_id('b237d5ee-0d76-4294-a3b6-c2f8bf4b0e30')
     def test_show_tld_404(self):
@@ -183,7 +183,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestTldInvalidIdAdmin, cls).setup_clients()
-        cls.admin_client = cls.os_admin.tld_client
+        cls.admin_client = cls.os_admin.dns_v2.TldClient()
 
     @decorators.idempotent_id('f9ec0730-57ff-4720-8d06-e11d377c7cfc')
     def test_show_tld_invalid_uuid(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_transfer_accepts.py b/designate_tempest_plugin/tests/api/v2/test_transfer_accepts.py
index 7cfc4a9..b4ab5c8 100644
--- a/designate_tempest_plugin/tests/api/v2/test_transfer_accepts.py
+++ b/designate_tempest_plugin/tests/api/v2/test_transfer_accepts.py
@@ -40,19 +40,19 @@
         super(TransferAcceptTest, cls).setup_clients()
 
         # Primary clients
-        cls.prm_zone_client = cls.os_primary.zones_client
-        cls.prm_request_client = cls.os_primary.transfer_request_client
-        cls.prm_accept_client = cls.os_primary.transfer_accept_client
+        cls.prm_zone_client = cls.os_primary.dns_v2.ZonesClient()
+        cls.prm_request_client = cls.os_primary.dns_v2.TransferRequestClient()
+        cls.prm_accept_client = cls.os_primary.dns_v2.TransferAcceptClient()
 
         # Alt clients
-        cls.alt_zone_client = cls.os_alt.zones_client
-        cls.alt_request_client = cls.os_alt.transfer_request_client
-        cls.alt_accept_client = cls.os_alt.transfer_accept_client
+        cls.alt_zone_client = cls.os_alt.dns_v2.ZonesClient()
+        cls.alt_request_client = cls.os_alt.dns_v2.TransferRequestClient()
+        cls.alt_accept_client = cls.os_alt.dns_v2.TransferAcceptClient()
 
         # Admin clients
-        cls.admin_zone_client = cls.os_admin.zones_client
-        cls.admin_request_client = cls.os_admin.transfer_request_client
-        cls.admin_accept_client = cls.os_admin.transfer_accept_client
+        cls.admin_zone_client = cls.os_admin.dns_v2.ZonesClient()
+        cls.admin_request_client = cls.os_admin.dns_v2.TransferRequestClient()
+        cls.admin_accept_client = cls.os_admin.dns_v2.TransferAcceptClient()
 
     @decorators.idempotent_id('1c6baf97-a83e-4d2e-a5d8-9d37fb7808f3')
     def test_create_transfer_accept(self):
@@ -305,9 +305,9 @@
     @classmethod
     def setup_clients(cls):
         super(TransferAcceptTestNegative, cls).setup_clients()
-        cls.zone_client = cls.os_primary.zones_client
-        cls.request_client = cls.os_primary.transfer_request_client
-        cls.client = cls.os_primary.transfer_accept_client
+        cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
+        cls.request_client = cls.os_primary.dns_v2.TransferRequestClient()
+        cls.client = cls.os_primary.dns_v2.TransferAcceptClient()
 
     @decorators.idempotent_id('324a3e80-a1cc-11eb-b534-74e5f9e2a801')
     def test_create_transfer_accept_using_invalid_key(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_transfer_request.py b/designate_tempest_plugin/tests/api/v2/test_transfer_request.py
index 94a1480..5878dc9 100644
--- a/designate_tempest_plugin/tests/api/v2/test_transfer_request.py
+++ b/designate_tempest_plugin/tests/api/v2/test_transfer_request.py
@@ -39,11 +39,11 @@
     def setup_clients(cls):
         super(TransferRequestTest, cls).setup_clients()
 
-        cls.zone_client = cls.os_primary.zones_client
-        cls.alt_zone_client = cls.os_alt.zones_client
-        cls.client = cls.os_primary.transfer_request_client
-        cls.alt_client = cls.os_alt.transfer_request_client
-        cls.admin_client = cls.os_admin.transfer_request_client
+        cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
+        cls.alt_zone_client = cls.os_alt.dns_v2.ZonesClient()
+        cls.client = cls.os_primary.dns_v2.TransferRequestClient()
+        cls.alt_client = cls.os_alt.dns_v2.TransferRequestClient()
+        cls.admin_client = cls.os_admin.dns_v2.TransferRequestClient()
 
     @decorators.idempotent_id('2381d489-ad84-403d-b0a2-8b77e4e966bf')
     def test_create_transfer_request(self):
@@ -282,7 +282,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestTransferRequestNotFound, cls).setup_clients()
-        cls.client = cls.os_primary.transfer_request_client
+        cls.client = cls.os_primary.dns_v2.TransferRequestClient()
 
     @decorators.idempotent_id('d255f72f-ba24-43df-9dba-011ed7f4625d')
     def test_show_transfer_request_404(self):
@@ -324,7 +324,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestTransferRequestInvalidId, cls).setup_clients()
-        cls.client = cls.os_primary.transfer_request_client
+        cls.client = cls.os_primary.dns_v2.TransferRequestClient()
 
     @decorators.idempotent_id('2205dd19-ecc7-4c68-9e89-63c47d642b07')
     def test_show_transfer_request_invalid_uuid(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_tsigkey.py b/designate_tempest_plugin/tests/api/v2/test_tsigkey.py
index 77d3e13..5cd9512 100644
--- a/designate_tempest_plugin/tests/api/v2/test_tsigkey.py
+++ b/designate_tempest_plugin/tests/api/v2/test_tsigkey.py
@@ -38,8 +38,8 @@
     @classmethod
     def setup_clients(cls):
         super(TsigkeyAdminTest, cls).setup_clients()
-        cls.zone_client = cls.os_primary.zones_client
-        cls.admin_client = cls.os_admin.tsigkey_client
+        cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
+        cls.admin_client = cls.os_admin.dns_v2.TsigkeyClient()
 
     @decorators.idempotent_id('e7b484e3-7ed5-4840-89d7-1e696986f8e4')
     def test_create_tsigkey(self):
@@ -151,7 +151,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestTsigkeyNotFoundAdmin, cls).setup_clients()
-        cls.admin_client = cls.os_admin.tsigkey_client
+        cls.admin_client = cls.os_admin.dns_v2.TsigkeyClient()
 
     @decorators.idempotent_id('824c9b49-edc5-4282-929e-467a158d23e4')
     def test_show_tsigkey_404(self):
@@ -194,7 +194,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestTsigkeyInvalidIdAdmin, cls).setup_clients()
-        cls.admin_client = cls.os_admin.tsigkey_client
+        cls.admin_client = cls.os_admin.dns_v2.TsigkeyClient()
 
     @decorators.idempotent_id('2a8dfc75-9884-4b1c-8f1f-ed835d96f2fe')
     def test_show_tsigkey_invalid_uuid(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_zone_tasks.py b/designate_tempest_plugin/tests/api/v2/test_zone_tasks.py
index 12eea8c..581b7c2 100644
--- a/designate_tempest_plugin/tests/api/v2/test_zone_tasks.py
+++ b/designate_tempest_plugin/tests/api/v2/test_zone_tasks.py
@@ -45,11 +45,9 @@
     @classmethod
     def setup_clients(cls):
         super(ZoneTasks, cls).setup_clients()
-
-        cls.client = cls.os_primary.zones_client
-        cls.alt_client = cls.os_alt.zones_client
-        cls.admin_client = cls.os_admin.zones_client
-        cls.query_client = cls.os_primary.query_client
+        cls.client = cls.os_primary.dns_v2.ZonesClient()
+        cls.admin_client = cls.os_admin.dns_v2.ZonesClient()
+        cls.alt_client = cls.os_alt.dns_v2.ZonesClient()
 
     @decorators.idempotent_id('287e2cd0-a0e7-11eb-b962-74e5f9e2a801')
     def test_zone_abandon(self):
@@ -117,11 +115,9 @@
     @classmethod
     def setup_clients(cls):
         super(ZoneTasksNegative, cls).setup_clients()
-
-        cls.client = cls.os_primary.zones_client
-        cls.alt_client = cls.os_alt.zones_client
-        cls.admin_client = cls.os_admin.zones_client
-        cls.query_client = cls.os_primary.query_client
+        cls.client = cls.os_primary.dns_v2.ZonesClient()
+        cls.admin_client = cls.os_admin.dns_v2.ZonesClient()
+        cls.alt_client = cls.os_alt.dns_v2.ZonesClient()
 
     def _query_nameserver(self, nameserver, query_timeout,
                           zone_name, zone_type='SOA'):
diff --git a/designate_tempest_plugin/tests/api/v2/test_zones.py b/designate_tempest_plugin/tests/api/v2/test_zones.py
index c2337fe..dfd0a57 100644
--- a/designate_tempest_plugin/tests/api/v2/test_zones.py
+++ b/designate_tempest_plugin/tests/api/v2/test_zones.py
@@ -34,6 +34,7 @@
 
 class ZonesTest(BaseZonesTest):
     credentials = ['admin', 'primary']
+
     @classmethod
     def setup_credentials(cls):
         # Do not create network resources for these test.
@@ -43,9 +44,8 @@
     @classmethod
     def setup_clients(cls):
         super(ZonesTest, cls).setup_clients()
-
-        cls.client = cls.os_primary.zones_client
-        cls.pool_client = cls.os_admin.pool_client
+        cls.client = cls.os_primary.dns_v2.ZonesClient()
+        cls.pool_client = cls.os_admin.dns_v2.PoolClient()
 
     @decorators.idempotent_id('9d2e20fc-e56f-4a62-9c61-9752a9ec615c')
     def test_create_zones(self):
@@ -203,10 +203,9 @@
     @classmethod
     def setup_clients(cls):
         super(ZonesAdminTest, cls).setup_clients()
-
-        cls.client = cls.os_primary.zones_client
-        cls.admin_client = cls.os_admin.zones_client
-        cls.alt_client = cls.os_alt.zones_client
+        cls.client = cls.os_primary.dns_v2.ZonesClient()
+        cls.admin_client = cls.os_admin.dns_v2.ZonesClient()
+        cls.alt_client = cls.os_alt.dns_v2.ZonesClient()
 
     @decorators.idempotent_id('f6fe8cce-8b04-11eb-a861-74e5f9e2a801')
     def test_show_zone_impersonate_another_project(self):
@@ -300,9 +299,8 @@
     @classmethod
     def setup_clients(cls):
         super(ZoneOwnershipTest, cls).setup_clients()
-
-        cls.client = cls.os_primary.zones_client
-        cls.alt_client = cls.os_alt.zones_client
+        cls.client = cls.os_primary.dns_v2.ZonesClient()
+        cls.alt_client = cls.os_alt.dns_v2.ZonesClient()
 
     @decorators.idempotent_id('5d28580a-a012-4b57-b211-e077b1a01340')
     def test_no_create_duplicate_domain(self):
@@ -353,7 +351,7 @@
     @classmethod
     def setup_clients(cls):
         super(ZonesNegativeTest, cls).setup_clients()
-        cls.client = cls.os_primary.zones_client
+        cls.client = cls.os_primary.dns_v2.ZonesClient()
 
     @decorators.idempotent_id('551853c0-8593-11eb-8c8a-74e5f9e2a801')
     def test_no_valid_zone_name(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_zones_exports.py b/designate_tempest_plugin/tests/api/v2/test_zones_exports.py
index cd5a3ac..e07f32a 100644
--- a/designate_tempest_plugin/tests/api/v2/test_zones_exports.py
+++ b/designate_tempest_plugin/tests/api/v2/test_zones_exports.py
@@ -38,12 +38,11 @@
     @classmethod
     def setup_clients(cls):
         super(ZonesExportTest, cls).setup_clients()
-
-        cls.zone_client = cls.os_primary.zones_client
-        cls.alt_zone_client = cls.os_alt.zones_client
-        cls.client = cls.os_primary.zone_exports_client
-        cls.alt_client = cls.os_alt.zone_exports_client
-        cls.admin_client = cls.os_admin.zone_exports_client
+        cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
+        cls.alt_zone_client = cls.os_alt.dns_v2.ZonesClient()
+        cls.client = cls.os_primary.dns_v2.ZoneExportsClient()
+        cls.alt_client = cls.os_alt.dns_v2.ZoneExportsClient()
+        cls.admin_client = cls.os_admin.dns_v2.ZoneExportsClient()
 
     @decorators.idempotent_id('2dd8a9a0-98a2-4bf6-bb51-286583b30f40')
     def test_create_zone_export(self):
@@ -228,10 +227,9 @@
     @classmethod
     def setup_clients(cls):
         super(ZonesExportTestNegative, cls).setup_clients()
-
-        cls.zone_client = cls.os_primary.zones_client
-        cls.client = cls.os_primary.zone_exports_client
-        cls.alt_client = cls.os_alt.zone_exports_client
+        cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
+        cls.client = cls.os_primary.dns_v2.ZoneExportsClient()
+        cls.alt_client = cls.os_alt.dns_v2.ZoneExportsClient()
 
     @decorators.idempotent_id('76ab8ec4-95fd-11eb-b1cd-74e5f9e2a801')
     def test_create_zone_export_using_invalid_zone_id(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_zones_imports.py b/designate_tempest_plugin/tests/api/v2/test_zones_imports.py
index 332899d..7f1261b 100644
--- a/designate_tempest_plugin/tests/api/v2/test_zones_imports.py
+++ b/designate_tempest_plugin/tests/api/v2/test_zones_imports.py
@@ -41,11 +41,10 @@
     @classmethod
     def setup_clients(cls):
         super(ZonesImportTest, cls).setup_clients()
-
-        cls.client = cls.os_primary.zone_imports_client
-        cls.alt_client = cls.os_alt.zone_imports_client
-        cls.admin_client = cls.os_admin.zone_imports_client
-        cls.zone_client = cls.os_primary.zones_client
+        cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
+        cls.client = cls.os_primary.dns_v2.ZoneImportsClient()
+        cls.alt_client = cls.os_alt.dns_v2.ZoneImportsClient()
+        cls.admin_client = cls.os_admin.dns_v2.ZoneImportsClient()
 
     def clean_up_resources(self, zone_import_id):
         zone_import = self.client.show_zone_import(zone_import_id)[1]
diff --git a/designate_tempest_plugin/tests/base.py b/designate_tempest_plugin/tests/base.py
index 083cd09..2ef5b00 100644
--- a/designate_tempest_plugin/tests/base.py
+++ b/designate_tempest_plugin/tests/base.py
@@ -16,8 +16,14 @@
 from tempest import config
 from tempest.lib.common.utils import test_utils as utils
 
+# TODO(johnsom) remove once neutron-tempest-plugin test_dns_integration
+#               has been updated
+# https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/800291
 from designate_tempest_plugin import clients
 
+from designate_tempest_plugin.services.dns.query.query_client import \
+    QueryClient
+
 
 CONF = config.CONF
 
@@ -76,6 +82,19 @@
                         % cls.__name__)
             raise cls.skipException(skip_msg)
 
+    @classmethod
+    def setup_clients(cls):
+        super(BaseDnsTest, cls).setup_clients()
+        # The Query Client is not an OpenStack client which means
+        # we should not set it up through the tempest client manager.
+        # Set it up here so all tests have access to it.
+        cls.query_client = QueryClient(
+            nameservers=CONF.dns.nameservers,
+            query_timeout=CONF.dns.query_timeout,
+            build_interval=CONF.dns.build_interval,
+            build_timeout=CONF.dns.build_timeout,
+        )
+
     def assertExpected(self, expected, actual, excluded_keys):
         for key, value in six.iteritems(expected):
             if key not in excluded_keys:
@@ -122,7 +141,9 @@
 class BaseDnsV2Test(BaseDnsTest):
     """Base class for DNS V2 API tests."""
 
-    # Use the Designate V2 Client Manager
+    # TODO(johnsom) remove once neutron-tempest-plugin test_dns_integration
+    #               has been updated
+    # https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/800291
     client_manager = clients.ManagerV2
 
     @classmethod
@@ -138,9 +159,6 @@
 class BaseDnsAdminTest(BaseDnsTest):
     """Base class for DNS Admin API tests."""
 
-    # Use the Designate Admin Client Manager
-    client_manager = clients.ManagerAdmin
-
     @classmethod
     def skip_checks(cls):
         super(BaseDnsAdminTest, cls).skip_checks()
diff --git a/designate_tempest_plugin/tests/scenario/v2/test_recordsets.py b/designate_tempest_plugin/tests/scenario/v2/test_recordsets.py
index d1c90d7..def1150 100644
--- a/designate_tempest_plugin/tests/scenario/v2/test_recordsets.py
+++ b/designate_tempest_plugin/tests/scenario/v2/test_recordsets.py
@@ -31,9 +31,8 @@
     def setup_clients(cls):
         super(RecordsetsTest, cls).setup_clients()
 
-        cls.client = cls.os_primary.zones_client
-        cls.recordset_client = cls.os_primary.recordset_client
-        cls.query_client = cls.os_primary.query_client
+        cls.client = cls.os_primary.dns_v2.ZonesClient()
+        cls.recordset_client = cls.os_primary.dns_v2.RecordsetClient()
 
     @classmethod
     def resource_setup(cls):
diff --git a/designate_tempest_plugin/tests/scenario/v2/test_zones.py b/designate_tempest_plugin/tests/scenario/v2/test_zones.py
index 4763647..a7529a1 100644
--- a/designate_tempest_plugin/tests/scenario/v2/test_zones.py
+++ b/designate_tempest_plugin/tests/scenario/v2/test_zones.py
@@ -29,8 +29,7 @@
     def setup_clients(cls):
         super(ZonesTest, cls).setup_clients()
 
-        cls.client = cls.os_primary.zones_client
-        cls.query_client = cls.os_primary.query_client
+        cls.client = cls.os_primary.dns_v2.ZonesClient()
 
     @decorators.attr(type='smoke')
     @decorators.attr(type='slow')
diff --git a/designate_tempest_plugin/tests/scenario/v2/test_zones_export.py b/designate_tempest_plugin/tests/scenario/v2/test_zones_export.py
index b5df2a0..916e634 100644
--- a/designate_tempest_plugin/tests/scenario/v2/test_zones_export.py
+++ b/designate_tempest_plugin/tests/scenario/v2/test_zones_export.py
@@ -28,8 +28,8 @@
     def setup_clients(cls):
         super(ZonesExportTest, cls).setup_clients()
 
-        cls.zones_client = cls.os_primary.zones_client
-        cls.client = cls.os_primary.zone_exports_client
+        cls.client = cls.os_primary.dns_v2.ZoneExportsClient()
+        cls.zones_client = cls.os_primary.dns_v2.ZonesClient()
 
     @decorators.attr(type='slow')
     @decorators.idempotent_id('0484c3c4-df57-458e-a6e5-6eb63e0475e0')
diff --git a/designate_tempest_plugin/tests/scenario/v2/test_zones_import.py b/designate_tempest_plugin/tests/scenario/v2/test_zones_import.py
index b08f829..e92feee 100644
--- a/designate_tempest_plugin/tests/scenario/v2/test_zones_import.py
+++ b/designate_tempest_plugin/tests/scenario/v2/test_zones_import.py
@@ -28,8 +28,8 @@
     def setup_clients(cls):
         super(ZonesImportTest, cls).setup_clients()
 
-        cls.client = cls.os_primary.zone_imports_client
-        cls.zones_client = cls.os_primary.zones_client
+        cls.client = cls.os_primary.dns_v2.ZoneImportsClient()
+        cls.zones_client = cls.os_primary.dns_v2.ZonesClient()
 
     @decorators.attr(type='slow')
     @decorators.idempotent_id('679f38d0-2f2f-49c5-934e-8fe0c452f56e')
diff --git a/designate_tempest_plugin/tests/scenario/v2/test_zones_transfer.py b/designate_tempest_plugin/tests/scenario/v2/test_zones_transfer.py
index 88e9c8f..3437c33 100644
--- a/designate_tempest_plugin/tests/scenario/v2/test_zones_transfer.py
+++ b/designate_tempest_plugin/tests/scenario/v2/test_zones_transfer.py
@@ -27,14 +27,14 @@
     @classmethod
     def setup_clients(cls):
         super(ZonesTransferTest, cls).setup_clients()
-        cls.zones_client = cls.os_primary.zones_client
-        cls.alt_zones_client = cls.os_alt.zones_client
-        cls.admin_zones_client = cls.os_admin.zones_client
-        cls.request_client = cls.os_primary.transfer_request_client
-        cls.alt_request_client = cls.os_alt.transfer_request_client
-        cls.accept_client = cls.os_primary.transfer_accept_client
-        cls.alt_accept_client = cls.os_alt.transfer_accept_client
-        cls.admin_accept_client = cls.os_admin.transfer_accept_client
+        cls.zones_client = cls.os_primary.dns_v2.ZonesClient()
+        cls.alt_zones_client = cls.os_alt.dns_v2.ZonesClient()
+        cls.admin_zones_client = cls.os_admin.dns_v2.ZonesClient()
+        cls.request_client = cls.os_primary.dns_v2.TransferRequestClient()
+        cls.alt_request_client = cls.os_alt.dns_v2.TransferRequestClient()
+        cls.accept_client = cls.os_primary.dns_v2.TransferAcceptClient()
+        cls.alt_accept_client = cls.os_alt.dns_v2.TransferAcceptClient()
+        cls.admin_accept_client = cls.os_admin.dns_v2.TransferAcceptClient()
 
     @decorators.idempotent_id('60bd80ac-c979-4686-9a03-f2f775f272ab')
     def test_zone_transfer(self):
