diff --git a/octavia_tempest_plugin/config.py b/octavia_tempest_plugin/config.py
index b683ee3..62affc0 100644
--- a/octavia_tempest_plugin/config.py
+++ b/octavia_tempest_plugin/config.py
@@ -144,3 +144,12 @@
                default=None,
                help='Availability zone to use for creating servers.'),
 ]
+
+lb_feature_enabled_group = cfg.OptGroup(name='loadbalancer-feature-enabled',
+                                        title='Enabled/Disabled LB features')
+LBFeatureEnabledGroup = [
+    cfg.BoolOpt('health_monitor_enabled',
+                default=True,
+                help="Whether Health Monitor is available with provider"
+                     " driver or not."),
+]
diff --git a/octavia_tempest_plugin/plugin.py b/octavia_tempest_plugin/plugin.py
index 5aae722..ec093e7 100644
--- a/octavia_tempest_plugin/plugin.py
+++ b/octavia_tempest_plugin/plugin.py
@@ -35,6 +35,9 @@
                                   project_config.ServiceAvailableGroup)
         config.register_opt_group(conf, project_config.octavia_group,
                                   project_config.OctaviaGroup)
+        config.register_opt_group(conf,
+                                  project_config.lb_feature_enabled_group,
+                                  project_config.LBFeatureEnabledGroup)
 
     def get_opt_lists(self):
         return [
@@ -42,6 +45,8 @@
              project_config.ServiceAvailableGroup),
             (project_config.octavia_group.name,
              project_config.OctaviaGroup),
+            (project_config.lb_feature_enabled_group.name,
+             project_config.LBFeatureEnabledGroup)
         ]
 
     def get_service_clients(self):
diff --git a/octavia_tempest_plugin/tests/api/v2/test_healthmonitor.py b/octavia_tempest_plugin/tests/api/v2/test_healthmonitor.py
index 4a43e7b..4887995 100644
--- a/octavia_tempest_plugin/tests/api/v2/test_healthmonitor.py
+++ b/octavia_tempest_plugin/tests/api/v2/test_healthmonitor.py
@@ -34,6 +34,12 @@
     """Test the healthmonitor object API."""
 
     @classmethod
+    def skip_checks(cls):
+        super(HealthMonitorAPITest, cls).skip_checks()
+        if not CONF.loadbalancer_feature_enabled.health_monitor_enabled:
+            cls.skip('Health Monitors not supported')
+
+    @classmethod
     def resource_setup(cls):
         """Setup resources needed by the tests."""
         super(HealthMonitorAPITest, cls).resource_setup()
diff --git a/octavia_tempest_plugin/tests/scenario/v2/test_healthmonitor.py b/octavia_tempest_plugin/tests/scenario/v2/test_healthmonitor.py
index 02cec6e..7b769e1 100644
--- a/octavia_tempest_plugin/tests/scenario/v2/test_healthmonitor.py
+++ b/octavia_tempest_plugin/tests/scenario/v2/test_healthmonitor.py
@@ -29,6 +29,12 @@
 class HealthMonitorScenarioTest(test_base.LoadBalancerBaseTest):
 
     @classmethod
+    def skip_checks(cls):
+        super(HealthMonitorScenarioTest, cls).skip_checks()
+        if not CONF.loadbalancer_feature_enabled.health_monitor_enabled:
+            cls.skip('Health Monitors not supported')
+
+    @classmethod
     def resource_setup(cls):
         """Setup resources needed by the tests."""
         super(HealthMonitorScenarioTest, cls).resource_setup()
