diff --git a/tcp_tests/fixtures/underlay_fixtures.py b/tcp_tests/fixtures/underlay_fixtures.py
index 1770c62..a8856d6 100644
--- a/tcp_tests/fixtures/underlay_fixtures.py
+++ b/tcp_tests/fixtures/underlay_fixtures.py
@@ -18,9 +18,6 @@
 from tcp_tests.helpers import utils
 from tcp_tests import logger
 from tcp_tests import settings
-from tcp_tests.managers import envmanager_devops
-from tcp_tests.managers import envmanager_empty
-from tcp_tests.managers import envmanager_heat
 from tcp_tests.managers import underlay_ssh_manager
 
 LOG = logger.logger
@@ -60,18 +57,21 @@
         # No environment manager is used.
         # 'config' should contain config.underlay.ssh settings
         # 'config' should contain config.underlay.current_snapshot setting
+        from tcp_tests.managers import envmanager_empty
         env = envmanager_empty.EnvironmentManagerEmpty(config=config)
 
     elif env_manager == 'devops':
         # fuel-devops environment manager is used.
         # config.underlay.ssh settings can be empty or witn SSH to existing env
         # config.underlay.current_snapshot
+        from tcp_tests.managers import envmanager_devops
         env = envmanager_devops.EnvironmentManager(config=config)
 
     elif env_manager == 'heat':
         # heat environment manager is used.
         # config.underlay.ssh settings can be empty or witn SSH to existing env
         # config.underlay.current_snapshot
+        from tcp_tests.managers import envmanager_heat
         env = envmanager_heat.EnvironmentManagerHeat(config=config)
     else:
         raise Exception("Unknown hardware manager: '{}'".format(env_manager))
diff --git a/tcp_tests/managers/envmanager_heat.py b/tcp_tests/managers/envmanager_heat.py
index 2d52e00..c5cee17 100644
--- a/tcp_tests/managers/envmanager_heat.py
+++ b/tcp_tests/managers/envmanager_heat.py
@@ -102,7 +102,7 @@
             username=settings.OS_USERNAME,
             password=settings.OS_PASSWORD,
             project_name=settings.OS_PROJECT_NAME,
-            user_domain_name='Default',
+            user_domain_name=settings.OS_USER_DOMAIN_NAME,
             project_domain_name='Default')
         return keystone_session.Session(auth=keystone_auth, verify=False)
 
@@ -210,7 +210,9 @@
                     pool_net = netaddr.IPNetwork(address_pool['cidr'])
                     if fixed in pool_net:
                         for role in address_pool['roles']:
-                            addresses[role] = floating
+                            # addresses[role] = floating
+                            # Use fixed addresses for SSH access
+                            addresses[role] = fixed
 
             nodes.append({
                 'name': heat_node.attributes['name'],
@@ -485,6 +487,10 @@
             'template': template,
             'files': dict(list(tpl_files.items()) + list(env_files.items())),
             'environment': env,
+            'parameters': {
+                'mcp_version': settings.MCP_VERSION,
+                'env_name': settings.ENV_NAME,
+            }
         }
 
         if env_files_list:
diff --git a/tcp_tests/settings.py b/tcp_tests/settings.py
index 346506f..f98981d 100644
--- a/tcp_tests/settings.py
+++ b/tcp_tests/settings.py
@@ -101,9 +101,10 @@
 SKIP_SYNC_TIME = get_var_as_bool("SKIP_SYNC_TIME", False)
 
 # OpenStack parameters to work with Heat stacks
-OS_STACK_NAME = os.environ.get("OS_STACK_NAME", ENV_NAME)
 OS_HEAT_VERSION = os.environ.get('OS_HEAT_VERSION', 1)
 OS_AUTH_URL = os.environ.get('OS_AUTH_URL', None)
 OS_USERNAME = os.environ.get('OS_USERNAME', None)
 OS_PASSWORD = os.environ.get('OS_PASSWORD', None)
 OS_PROJECT_NAME = os.environ.get('OS_PROJECT_NAME', None)
+OS_USER_DOMAIN_NAME = os.environ.get('OS_USER_DOMAIN_NAME', 'Default')
+LAB_PARAM_DEFAULTS = os.environ.get('LAB_PARAM_DEFAULTS', '')
diff --git a/tcp_tests/settings_oslo.py b/tcp_tests/settings_oslo.py
index e930729..7fc8870 100644
--- a/tcp_tests/settings_oslo.py
+++ b/tcp_tests/settings_oslo.py
@@ -30,7 +30,8 @@
 _default_heat_conf = pkg_resources.resource_filename(
     __name__, 'templates/{0}/underlay.hot'.format(settings.LAB_CONFIG_NAME))
 _default_heat_env = pkg_resources.resource_filename(
-    __name__, 'templates/_heat_environments/microcloud-8116.env')
+    __name__, 'templates/_heat_environments/{0}'.format(
+        settings.LAB_PARAM_DEFAULTS))
 
 _default_salt_steps = pkg_resources.resource_filename(
     __name__, 'templates/{0}/salt.yaml'.format(settings.LAB_CONFIG_NAME))
