diff --git a/designate_tempest_plugin/tests/api/v2/test_shared_zones.py b/designate_tempest_plugin/tests/api/v2/test_shared_zones.py
index 78d6233..9cb4084 100644
--- a/designate_tempest_plugin/tests/api/v2/test_shared_zones.py
+++ b/designate_tempest_plugin/tests/api/v2/test_shared_zones.py
@@ -45,11 +45,6 @@
                 'The shared zones API tests require Designate API version '
                 '2.1 or newer. Skipping Shared Zones API tests.')
 
-        # Make sure we have an allowed TLD available
-        tld_name = dns_data_utils.rand_zone_name(name="APISharedZoneTest")
-        cls.tld_name = f".{tld_name}"
-        cls.class_tld = cls.admin_tld_client.create_tld(tld_name=tld_name[:-1])
-
         # All the shared zone tests need a zone, create one to share
         zone_name = dns_data_utils.rand_zone_name(name="TestZone",
                                                   suffix=cls.tld_name)
@@ -60,7 +55,6 @@
     def resource_cleanup(cls):
         cls.zones_client.delete_zone(
             cls.zone['id'], ignore_errors=lib_exc.NotFound, delete_shares=True)
-        cls.admin_tld_client.delete_tld(cls.class_tld[1]['id'])
         super(BaseSharedZoneTest, cls).resource_cleanup()
 
     @classmethod
diff --git a/designate_tempest_plugin/tests/scenario/v2/test_quotas.py b/designate_tempest_plugin/tests/scenario/v2/test_quotas.py
index f5113ff..f5f2673 100644
--- a/designate_tempest_plugin/tests/scenario/v2/test_quotas.py
+++ b/designate_tempest_plugin/tests/scenario/v2/test_quotas.py
@@ -306,19 +306,6 @@
             cls.export_zone_client = cls.os_admin.dns_v2.ZoneExportsClient()
             cls.admin_tld_client = cls.os_admin.dns_v2.TldClient()
 
-    @classmethod
-    def resource_setup(cls):
-        super(QuotasBoundary, cls).resource_setup()
-        # Make sure we have an allowed TLD available
-        tld_name = dns_data_utils.rand_zone_name(name="QuotasBoundary")
-        cls.tld_name = f".{tld_name}"
-        cls.class_tld = cls.admin_tld_client.create_tld(tld_name=tld_name[:-1])
-
-    @classmethod
-    def resource_cleanup(cls):
-        cls.admin_tld_client.delete_tld(cls.class_tld[1]['id'])
-        super(QuotasBoundary, cls).resource_cleanup()
-
     @decorators.attr(type='slow')
     @decorators.idempotent_id('e4981eb2-3803-11ed-9d3c-201e8823901f')
     def test_zone_quota_boundary(self):
@@ -396,16 +383,6 @@
                 'The shared zones scenario tests require Designate API '
                 'version 2.1 or newer. Skipping Shared Zones scenario tests.')
 
-        # Make sure we have an allowed TLD available
-        tld_name = dns_data_utils.rand_zone_name(name='SharedZonesTest')
-        cls.tld_name = f'.{tld_name}'
-        cls.class_tld = cls.admin_tld_client.create_tld(tld_name=tld_name[:-1])
-
-    @classmethod
-    def resource_cleanup(cls):
-        cls.admin_tld_client.delete_tld(cls.class_tld[1]['id'])
-        super(SharedZonesQuotaTest, cls).resource_cleanup()
-
     def _create_shared_zone_for_project(
             self, zone_name, project_id, sudo_header):
         """Admin creates Zone for project ID and shares it with Primary"""
diff --git a/designate_tempest_plugin/tests/scenario/v2/test_shared_zones.py b/designate_tempest_plugin/tests/scenario/v2/test_shared_zones.py
index 7ece8a2..9875e5c 100644
--- a/designate_tempest_plugin/tests/scenario/v2/test_shared_zones.py
+++ b/designate_tempest_plugin/tests/scenario/v2/test_shared_zones.py
@@ -56,16 +56,6 @@
                 'The shared zones scenario tests require Designate API '
                 'version 2.1 or newer. Skipping Shared Zones scenario tests.')
 
-        # Make sure we have an allowed TLD available
-        tld_name = dns_data_utils.rand_zone_name(name='SharedZonesTest')
-        cls.tld_name = f'.{tld_name}'
-        cls.class_tld = cls.admin_tld_client.create_tld(tld_name=tld_name[:-1])
-
-    @classmethod
-    def resource_cleanup(cls):
-        cls.admin_tld_client.delete_tld(cls.class_tld[1]['id'])
-        super(SharedZonesTest, cls).resource_cleanup()
-
     @decorators.attr(type='slow')
     @decorators.idempotent_id('b0fad45d-25ec-49b9-89a8-10b0e3c8b14c')
     def test_zone_share_CRUD_recordset(self):
@@ -326,16 +316,6 @@
                 'The shared zones scenario tests require Designate API '
                 'version 2.1 or newer. Skipping Shared Zones scenario tests.')
 
-        # Make sure we have an allowed TLD available
-        tld_name = dns_data_utils.rand_zone_name(name='SharedZonesTest')
-        cls.tld_name = f'.{tld_name}'
-        cls.class_tld = cls.admin_tld_client.create_tld(tld_name=tld_name[:-1])
-
-    @classmethod
-    def resource_cleanup(cls):
-        cls.admin_tld_client.delete_tld(cls.class_tld[1]['id'])
-        super(SharedZonesTestNegative, cls).resource_cleanup()
-
     def _create_shared_zone(self, zone_name):
         # Primary tenant creates zone and shares it with Alt tenant
         zone_name = dns_data_utils.rand_zone_name(
