diff --git a/tcp_tests/helpers/env_config.py b/tcp_tests/helpers/env_config.py
index 84ed286..48749c9 100644
--- a/tcp_tests/helpers/env_config.py
+++ b/tcp_tests/helpers/env_config.py
@@ -257,11 +257,11 @@
 class EnvironmentConfig(object):
     def __init__(self):
         super(EnvironmentConfig, self).__init__()
-        self._config = None
+        self.__config = None
 
     @property
     def config(self):
-        return self._config
+        return self.__config
 
     @config.setter
     def config(self, config):
@@ -269,11 +269,11 @@
 
         :param config: dict
         """
-        self._config = fix_devops_config(config)
+        self.__config = fix_devops_config(config)
 
     def __getitem__(self, key):
-        if self._config is not None:
-            conf = self._config['template']['devops_settings']
+        if self.__config is not None:
+            conf = self.__config['template']['devops_settings']
             return copy.deepcopy(conf.get(key, None))
         else:
             return None
@@ -287,7 +287,7 @@
         """
         if self.config is None:
             raise exceptions.DevopsConfigIsNone()
-        conf = self._config['template']['devops_settings']
+        conf = self.__config['template']['devops_settings']
         set_value_for_dict_by_keypath(conf, keypath, value)
 
     def save(self, filename):
@@ -295,12 +295,12 @@
 
         :param filename: string
         """
-        if self._config is None:
+        if self.__config is None:
             raise exceptions.DevopsConfigIsNone()
         with open(filename, 'w') as f:
             f.write(
                 yaml.dump(
-                    self._config, default_flow_style=False
+                    self.__config, default_flow_style=False
                 )
             )
 
diff --git a/tcp_tests/managers/envmanager_devops.py b/tcp_tests/managers/envmanager_devops.py
index 21dd3c9..355d6f6 100644
--- a/tcp_tests/managers/envmanager_devops.py
+++ b/tcp_tests/managers/envmanager_devops.py
@@ -44,7 +44,7 @@
                                                  descriebe environment status.
         """
         self.__devops_config = env_config.EnvironmentConfig()
-        self._env = None
+        self.__env = None
         self.__config = config
 
         if config.hardware.conf_path is not None:
@@ -103,7 +103,7 @@
         :rtype: dict
         """
         result = {}
-        for node in self._env.get_nodes(role__in=ext.UNDERLAY_NODE_ROLES):
+        for node in self.__env.get_nodes(role__in=ext.UNDERLAY_NODE_ROLES):
             lvm = filter(lambda x: x.volume.name == 'lvm', node.disk_devices)
             if len(lvm) == 0:
                 continue
@@ -130,10 +130,10 @@
 
         :param name: string
         """
-        self._env = models.Environment.get(name=name)
+        self.__env = models.Environment.get(name=name)
 
     def _get_default_node_group(self):
-        return self._env.get_group(name='default')
+        return self.__env.get_group(name='default')
 
     def _get_network_pool(self, net_pool_name):
         default_node_group = self._get_default_node_group()
@@ -149,7 +149,7 @@
             raise Exception("No roles specified for the environment!")
 
         config_ssh = []
-        for d_node in self._env.get_nodes(role__in=roles):
+        for d_node in self.__env.get_nodes(role__in=roles):
             ssh_data = {
                 'node_name': d_node.name,
                 'roles': [d_node.role],
@@ -176,16 +176,16 @@
         self.__config.hardware.current_snapshot = name
         LOG.info("Set current snapshot in config to '{0}'".format(
             self.__config.hardware.current_snapshot))
-        if self._env is not None:
+        if self.__env is not None:
             LOG.info('trying to suspend ....')
-            self._env.suspend()
+            self.__env.suspend()
             LOG.info('trying to snapshot ....')
-            self._env.snapshot(name, description=description, force=True)
+            self.__env.snapshot(name, description=description, force=True)
             LOG.info('trying to resume ....')
-            self._env.resume()
+            self.__env.resume()
         else:
             raise exceptions.EnvironmentIsNotSet()
-        settings_oslo.save_config(self.__config, name, self._env.name)
+        settings_oslo.save_config(self.__config, name, self.__env.name)
 
         if settings.VIRTUAL_ENV:
             venv_msg = "source {0}/bin/activate;\n".format(
@@ -209,7 +209,7 @@
 
     def _get_snapshot_config_name(self, snapshot_name):
         """Get config name for the environment"""
-        env_name = self._env.name
+        env_name = self.__env.name
         if env_name is None:
             env_name = 'config'
         test_config_path = os.path.join(
@@ -227,10 +227,10 @@
         :param name: string
         """
         LOG.info("Reverting from snapshot named '{0}'".format(name))
-        if self._env is not None:
-            self._env.revert(name=name)
+        if self.__env is not None:
+            self.__env.revert(name=name)
             LOG.info("Resuming environment after revert")
-            self._env.resume()
+            self.__env.resume()
         else:
             raise exceptions.EnvironmentIsNotSet()
 
@@ -261,7 +261,7 @@
             LOG.error('Environment name is not set!')
             raise exceptions.EnvironmentNameIsNotSet()
         try:
-            self._env = models.Environment.create_environment(
+            self.__env = models.Environment.create_environment(
                 settings.config
             )
         except db.IntegrityError:
@@ -270,7 +270,7 @@
                 ' in template.'.format(env_name)
             )
             raise
-        self._env.define()
+        self.__env.define()
         LOG.info(
             'Environment "{0}" created'.format(env_name)
         )
@@ -279,11 +279,11 @@
         """Method for start environment
 
         """
-        if self._env is None:
+        if self.__env is None:
             raise exceptions.EnvironmentIsNotSet()
-        self._env.start()
-        LOG.info('Environment "{0}" started'.format(self._env.name))
-        for node in self._env.get_nodes(role__in=ext.UNDERLAY_NODE_ROLES):
+        self.__env.start()
+        LOG.info('Environment "{0}" started'.format(self.__env.name))
+        for node in self.__env.get_nodes(role__in=ext.UNDERLAY_NODE_ROLES):
             LOG.info("Waiting for SSH on node '{}...'".format(node.name))
             timeout = 480
             helpers.wait(
@@ -293,28 +293,28 @@
                     node.name, timeout
                 )
             )
-        LOG.info('Environment "{0}" ready'.format(self._env.name))
+        LOG.info('Environment "{0}" ready'.format(self.__env.name))
 
     def resume(self):
         """Resume environment"""
-        if self._env is None:
+        if self.__env is None:
             raise exceptions.EnvironmentIsNotSet()
-        self._env.resume()
+        self.__env.resume()
 
     def suspend(self):
         """Suspend environment"""
-        if self._env is None:
+        if self.__env is None:
             raise exceptions.EnvironmentIsNotSet()
-        self._env.suspend()
+        self.__env.suspend()
 
     def stop(self):
         """Stop environment"""
-        if self._env is None:
+        if self.__env is None:
             raise exceptions.EnvironmentIsNotSet()
-        self._env.destroy()
+        self.__env.destroy()
 
     def has_snapshot(self, name):
-        return self._env.has_snapshot(name)
+        return self.__env.has_snapshot(name)
 
     def has_snapshot_config(self, name):
         test_config_path = self._get_snapshot_config_name(name)
@@ -325,7 +325,7 @@
 
         """
         LOG.debug("Deleting environment")
-        self._env.erase()
+        self.__env.erase()
 
     def __get_nodes_by_role(self, node_role):
         """Get node by given role name
@@ -334,7 +334,7 @@
         :rtype: devops.models.Node
         """
         LOG.debug('Trying to get nodes by role {0}'.format(node_role))
-        return self._env.get_nodes(role=node_role)
+        return self.__env.get_nodes(role=node_role)
 
     @property
     def master_nodes(self):
@@ -370,7 +370,7 @@
 
     @property
     def nameserver(self):
-        return self._env.router(ext.NETWORK_TYPE.admin)
+        return self.__env.router(ext.NETWORK_TYPE.admin)
 
     def set_dns_config(self):
         # Set local nameserver to use by default
@@ -381,5 +381,5 @@
 
     def set_address_pools_config(self):
         """Store address pools CIDRs in config object"""
-        for ap in self._env.get_address_pools():
+        for ap in self.__env.get_address_pools():
             self.__config.underlay.address_pools[ap.name] = ap.net
diff --git a/tcp_tests/managers/envmanager_empty.py b/tcp_tests/managers/envmanager_empty.py
index 702d723..b9ab8e1 100644
--- a/tcp_tests/managers/envmanager_empty.py
+++ b/tcp_tests/managers/envmanager_empty.py
@@ -18,7 +18,7 @@
 class EnvironmentManagerEmpty(object):
     """Class-helper for creating VMs via devops environments"""
 
-    _config = None
+    __config = None
 
     def __init__(self, config=None):
         """Initializing class instance and create the environment
@@ -28,12 +28,12 @@
         :param config.hardware.current_snapshot: name of the snapshot that
                                                  descriebe environment status.
         """
-        self._config = config
+        self.__config = config
 
     def lvm_storages(self):
         """Returns data of lvm_storages on nodes in environment
 
-        It's expected that data of self._config.lvm_storages will be
+        It's expected that data of self.__config.lvm_storages will be
         like this:
             {
                 "node1": {
@@ -48,7 +48,7 @@
             }
         :rtype: dict
         """
-        return self._config.underlay.lvm
+        return self.__config.underlay.lvm
 
     def get_ssh_data(self, roles=None):
         raise Exception("EnvironmentManagerEmpty doesn't have SSH details. "
@@ -60,24 +60,24 @@
         - Store the state of the environment <name> to the 'config' object
         - Save 'config' object to a file 'config_<name>.ini'
         """
-        self._config.hardware.current_snapshot = name
-        settings_oslo.save_config(self._config, name)
+        self.__config.hardware.current_snapshot = name
+        settings_oslo.save_config(self.__config, name)
 
     def revert_snapshot(self, name):
         """Check the current state <name> of the environment
 
         - Check that the <name> matches the current state of the environment
-          that is stored in the 'self._config.hardware.current_snapshot'
+          that is stored in the 'self.__config.hardware.current_snapshot'
         - Try to reload 'config' object from a file 'config_<name>.ini'
           If the file not found, then pass with defaults.
         - Set <name> as the current state of the environment after reload
 
         :param name: string
         """
-        if self._config.hardware.current_snapshot != name:
+        if self.__config.hardware.current_snapshot != name:
             raise Exception(
                 "EnvironmentManagerEmpty cannot revert nodes from {} to {}"
-                .format(self._config.hardware.current_snapshot, name))
+                .format(self.__config.hardware.current_snapshot, name))
 
     def start(self):
         """Start environment"""
@@ -96,10 +96,10 @@
         pass
 
     def has_snapshot(self, name):
-        return self._config.hardware.current_snapshot == name
+        return self.__config.hardware.current_snapshot == name
 
     def has_snapshot_config(self, name):
-        return self._config.hardware.current_snapshot == name
+        return self.__config.hardware.current_snapshot == name
 
     def delete_environment(self):
         """Delete environment"""
diff --git a/tcp_tests/managers/opencontrail_manager.py b/tcp_tests/managers/opencontrail_manager.py
index 1bb7f43..fb4e982 100644
--- a/tcp_tests/managers/opencontrail_manager.py
+++ b/tcp_tests/managers/opencontrail_manager.py
@@ -20,12 +20,12 @@
 
     __config = None
     __underlay = None
-    _openstack_actions = None
+    __openstack_actions = None
 
     def __init__(self, config, underlay, openstack_deployed):
         self.__config = config
         self.__underlay = underlay
-        self._openstack_actions = openstack_deployed
+        self.__openstack_actions = openstack_deployed
         super(OpenContrailManager, self).__init__(
             config=config, underlay=underlay)
 
diff --git a/tcp_tests/managers/saltmanager.py b/tcp_tests/managers/saltmanager.py
index 4a83e12..304ff75 100644
--- a/tcp_tests/managers/saltmanager.py
+++ b/tcp_tests/managers/saltmanager.py
@@ -39,86 +39,62 @@
     def __init__(self, config, underlay, host=None, port='6969'):
         self.__config = config
         self.__underlay = underlay
-        self._port = port
-        self._host = host
-        self._api = None
-        self._user = settings.SALT_USER
-        self._password = settings.SALT_PASSWORD
-        self._salt = self
+        self.__port = port
+        self.__host = host
+        self.__api = None
+        self.__user = settings.SALT_USER
+        self.__password = settings.SALT_PASSWORD
 
         super(SaltManager, self).__init__(config=config, underlay=underlay)
 
     def install(self, commands):
-        if commands[0].get('do'):
-            self.install2(commands)
-        else:
-            self.install1(commands)
+        #if self.__config.salt.salt_master_host == '0.0.0.0':
+        #    # Temporary workaround. Underlay should be extended with roles
+        #    salt_nodes = self.__underlay.node_names()
+        #    self.__config.salt.salt_master_host = \
+        #        self.__underlay.host_by_node_name(salt_nodes[0])
 
-    def install1(self, commands):
-        if self.__config.salt.salt_master_host == '0.0.0.0':
-            # Temporary workaround. Underlay should be extended with roles
-            salt_nodes = self.__underlay.node_names()
-            self.__config.salt.salt_master_host = \
-                self.__underlay.host_by_node_name(salt_nodes[0])
-
-        # self.__underlay.execute_commands(commands=commands,
-        #                                  label="Install and configure salt")
-        self.execute_commands(commands=commands,
-                              label="Install and configure salt")
-
-    def install2(self, commands):
-        if self.__config.salt.salt_master_host == '0.0.0.0':
-            # Temporary workaround. Underlay should be extended with roles
-            salt_nodes = self.__underlay.node_names()
-            self.__config.salt.salt_master_host = \
-                self.__underlay.host_by_node_name(salt_nodes[0])
-
-        # self.run_commands(commands=commands,
-        #                   label="Install and configure salt")
         self.execute_commands(commands=commands,
                               label="Install and configure salt")
 
     @property
     def port(self):
-        return self._port
+        return self.__port
 
     @property
     def host(self):
-        if self._host:
-            return self._host
-        elif self.__config.salt.salt_master_host == '0.0.0.0':
-            # Temporary workaround. Underlay should be extended with roles
-            salt_nodes = self.__underlay.node_names()
-            self.__config.salt.salt_master_host = \
-                self.__underlay.host_by_node_name(salt_nodes[0])
-
-        return self.__config.salt.salt_master_host
+        if self.__host:
+            return self.__host
+        else:
+            #TODO(ddmitriev): consider to add a check and raise
+            # exception if 'salt_master_host' is not initialized.
+            return self.__config.salt.salt_master_host
 
     @property
     def api(self):
         def login():
             LOG.info("Authentication in Salt API")
-            self._api.login(
-                username=self._user,
-                password=self._password,
+            self.__api.login(
+                username=self.__user,
+                password=self.__password,
                 eauth='pam')
             return datetime.now()
 
-        if self._api:
+        if self.__api:
             if (datetime.now() - self.__session_start).seconds < 5 * 60:
-                return self._api
+                return self.__api
             else:
                 # FIXXME: Change to debug
                 LOG.info("Session's expired")
                 self.__session_start = login()
-                return self._api
+                return self.__api
 
-        LOG.info("Connect to Salt API")
         url = "http://{host}:{port}".format(
             host=self.host, port=self.port)
-        self._api = Pepper(url)
+        LOG.info("Connecting to Salt API {0}".format(url))
+        self.__api = Pepper(url)
         self.__session_start = login()
-        return self._api
+        return self.__api
 
     def local(self, tgt, fun, args=None, kwargs=None):
         return self.api.local(tgt, fun, args, kwargs, expr_form='compound')
diff --git a/tcp_tests/settings_oslo.py b/tcp_tests/settings_oslo.py
index b11e02b..609fd69 100644
--- a/tcp_tests/settings_oslo.py
+++ b/tcp_tests/settings_oslo.py
@@ -94,6 +94,8 @@
 salt_opts = [
     ct.Cfg('salt_master_host', ct.IPAddress(),
            help="", default='0.0.0.0'),
+    ct.Cfg('salt_master_port', ct.String(),
+           help="", default='6969'),
 ]
 
 common_services_deploy_opts = [
diff --git a/tcp_tests/templates/virtual-mcp-ocata-dvr/salt.yaml b/tcp_tests/templates/virtual-mcp-ocata-dvr/salt.yaml
index 751da3f..ad91de5 100644
--- a/tcp_tests/templates/virtual-mcp-ocata-dvr/salt.yaml
+++ b/tcp_tests/templates/virtual-mcp-ocata-dvr/salt.yaml
@@ -1,4 +1,5 @@
 {% from 'virtual-mcp-ocata-dvr/underlay.yaml' import HOSTNAME_CFG01 with context %}
+{% from 'virtual-mcp-ocata-dvr/underlay.yaml' import REPOSITORY_SUITE with context %}
 
 {% set SALT_MODELS_REPOSITORY = os_env('SALT_MODELS_REPOSITORY','https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab') %}
 {% set SALT_MODELS_COMMIT = os_env('SALT_MODELS_COMMIT','master') %}
@@ -112,6 +113,8 @@
     find /srv/salt/reclass/ -type f -exec sed -i 's/==IPV4_NET_TENANT_PREFIX==/{{ IPV4_NET_TENANT_PREFIX }}./g' {} +
     find /srv/salt/reclass/ -type f -exec sed -i 's/==IPV4_NET_EXTERNAL_PREFIX==/{{ IPV4_NET_EXTERNAL_PREFIX }}./g' {} +
 
+    find /srv/salt/reclass/ -type f -exec sed -i 's/apt_mk_version:.*/apt_mk_version: {{ REPOSITORY_SUITE }}/g' {} +
+
     # Disable checkouting the model from remote repository
     cat << 'EOF' >> /srv/salt/reclass/nodes/{{ HOSTNAME_CFG01 }}.yml
     # local storage
@@ -226,25 +229,19 @@
   retry: {count: 1, delay: 1}
   skip_fail: false
 
-#- description: (duplicate of the next two steps) Run 'reclass' formula on cfg01
-#  cmd: timeout 120 salt --hard-crash --state-output=mixed --state-verbose=False
-#    -C 'I@salt:master' state.sls reclass;
-#    salt-call --hard-crash --state-output=mixed --state-verbose=False state.sls salt.master;
-#  node_name: {{ HOSTNAME_CFG01 }}
-#  retry: {count: 1, delay: 5}
-#  skip_fail: true
-
-
-- description: Run 'salt' formula on cfg01
+- description: Run 'salt.master' formula on cfg01
   cmd: timeout 120 salt --hard-crash --state-output=mixed --state-verbose=False
     -C 'I@salt:master' state.sls salt.master.service;
-    salt-call --hard-crash --state-output=mixed --state-verbose=False
-        state.sls salt.master,salt.api,salt.minion.ca;
-    systemctl restart salt-minion;
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 1, delay: 5}
-  skip_fail: true
+  skip_fail: false
 
+- description: Run 'salt' formula on cfg01 with workaround proposed in PROD-10894
+  cmd: salt-call --hard-crash --state-output=mixed --state-verbose=False state.sls salt;
+    systemctl restart salt-minion;
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 2, delay: 5}
+  skip_fail: false
 
 - description: Generate inventory for all the nodes to the /srv/salt/reclass/nodes/_generated
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False
diff --git a/tcp_tests/templates/virtual-mcp-ocata-ovs/salt.yaml b/tcp_tests/templates/virtual-mcp-ocata-ovs/salt.yaml
index 405beab..0772a15 100644
--- a/tcp_tests/templates/virtual-mcp-ocata-ovs/salt.yaml
+++ b/tcp_tests/templates/virtual-mcp-ocata-ovs/salt.yaml
@@ -1,4 +1,5 @@
 {% from 'virtual-mcp-ocata-ovs/underlay.yaml' import HOSTNAME_CFG01 with context %}
+{% from 'virtual-mcp-ocata-ovs/underlay.yaml' import REPOSITORY_SUITE with context %}
 
 {% set SALT_MODELS_REPOSITORY = os_env('SALT_MODELS_REPOSITORY','https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab') %}
 {% set SALT_MODELS_COMMIT = os_env('SALT_MODELS_COMMIT','master') %}
@@ -112,6 +113,8 @@
     find /srv/salt/reclass/ -type f -exec sed -i 's/==IPV4_NET_TENANT_PREFIX==/{{ IPV4_NET_TENANT_PREFIX }}./g' {} +
     find /srv/salt/reclass/ -type f -exec sed -i 's/==IPV4_NET_EXTERNAL_PREFIX==/{{ IPV4_NET_EXTERNAL_PREFIX }}./g' {} +
 
+    find /srv/salt/reclass/ -type f -exec sed -i 's/apt_mk_version:.*/apt_mk_version: {{ REPOSITORY_SUITE }}/g' {} +
+
     # Disable checkouting the model from remote repository
     cat << 'EOF' >> /srv/salt/reclass/nodes/{{ HOSTNAME_CFG01 }}.yml
     # local storage
@@ -226,25 +229,19 @@
   retry: {count: 1, delay: 1}
   skip_fail: false
 
-#- description: (duplicate of the next two steps) Run 'reclass' formula on cfg01
-#  cmd: timeout 120 salt --hard-crash --state-output=mixed --state-verbose=False
-#    -C 'I@salt:master' state.sls reclass;
-#    salt-call --hard-crash --state-output=mixed --state-verbose=False state.sls salt.master;
-#  node_name: {{ HOSTNAME_CFG01 }}
-#  retry: {count: 1, delay: 5}
-#  skip_fail: true
-
-
-- description: Run 'salt' formula on cfg01
+- description: Run 'salt.master' formula on cfg01
   cmd: timeout 120 salt --hard-crash --state-output=mixed --state-verbose=False
     -C 'I@salt:master' state.sls salt.master.service;
-    salt-call --hard-crash --state-output=mixed --state-verbose=False
-        state.sls salt.master,salt.api,salt.minion.ca;
-    systemctl restart salt-minion;
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 1, delay: 5}
-  skip_fail: true
+  skip_fail: false
 
+- description: Run 'salt' formula on cfg01 with workaround proposed in PROD-10894
+  cmd: salt-call --hard-crash --state-output=mixed --state-verbose=False state.sls salt;
+    systemctl restart salt-minion;
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 2, delay: 5}
+  skip_fail: false
 
 - description: Generate inventory for all the nodes to the /srv/salt/reclass/nodes/_generated
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False
diff --git a/tcp_tests/templates/virtual-mcp11-dvr/salt.yaml b/tcp_tests/templates/virtual-mcp11-dvr/salt.yaml
index f10b334..ec519c3 100644
--- a/tcp_tests/templates/virtual-mcp11-dvr/salt.yaml
+++ b/tcp_tests/templates/virtual-mcp11-dvr/salt.yaml
@@ -1,4 +1,5 @@
 {% from 'virtual-mcp11-dvr/underlay.yaml' import HOSTNAME_CFG01 with context %}
+{% from 'virtual-mcp11-dvr/underlay.yaml' import REPOSITORY_SUITE with context %}
 
 {% set SALT_MODELS_REPOSITORY = os_env('SALT_MODELS_REPOSITORY','https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab') %}
 {% set SALT_MODELS_COMMIT = os_env('SALT_MODELS_COMMIT','master') %}
@@ -112,6 +113,8 @@
     find /srv/salt/reclass/ -type f -exec sed -i 's/==IPV4_NET_TENANT_PREFIX==/{{ IPV4_NET_TENANT_PREFIX }}./g' {} +
     find /srv/salt/reclass/ -type f -exec sed -i 's/==IPV4_NET_EXTERNAL_PREFIX==/{{ IPV4_NET_EXTERNAL_PREFIX }}./g' {} +
 
+    find /srv/salt/reclass/ -type f -exec sed -i 's/apt_mk_version:.*/apt_mk_version: {{ REPOSITORY_SUITE }}/g' {} +
+
     # Disable checkouting the model from remote repository
     cat << 'EOF' >> /srv/salt/reclass/nodes/{{ HOSTNAME_CFG01 }}.yml
     # local storage
@@ -226,25 +229,19 @@
   retry: {count: 1, delay: 1}
   skip_fail: false
 
-#- description: (duplicate of the next two steps) Run 'reclass' formula on cfg01
-#  cmd: timeout 120 salt --hard-crash --state-output=mixed --state-verbose=False
-#    -C 'I@salt:master' state.sls reclass;
-#    salt-call --hard-crash --state-output=mixed --state-verbose=False state.sls salt.master;
-#  node_name: {{ HOSTNAME_CFG01 }}
-#  retry: {count: 1, delay: 5}
-#  skip_fail: true
-
-
-- description: Run 'salt' formula on cfg01
+- description: Run 'salt.master' formula on cfg01
   cmd: timeout 120 salt --hard-crash --state-output=mixed --state-verbose=False
     -C 'I@salt:master' state.sls salt.master.service;
-    salt-call --hard-crash --state-output=mixed --state-verbose=False
-        state.sls salt.master,salt.api,salt.minion.ca;
-    systemctl restart salt-minion;
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 1, delay: 5}
-  skip_fail: true
+  skip_fail: false
 
+- description: Run 'salt' formula on cfg01 with workaround proposed in PROD-10894
+  cmd: salt-call --hard-crash --state-output=mixed --state-verbose=False state.sls salt;
+    systemctl restart salt-minion;
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 2, delay: 5}
+  skip_fail: false
 
 - description: Generate inventory for all the nodes to the /srv/salt/reclass/nodes/_generated
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False
diff --git a/tcp_tests/templates/virtual-mcp11-ovs-dpdk/salt.yaml b/tcp_tests/templates/virtual-mcp11-ovs-dpdk/salt.yaml
index 039338d..e4178e2 100644
--- a/tcp_tests/templates/virtual-mcp11-ovs-dpdk/salt.yaml
+++ b/tcp_tests/templates/virtual-mcp11-ovs-dpdk/salt.yaml
@@ -1,4 +1,5 @@
 {% from 'virtual-mcp11-ovs-dpdk/underlay.yaml' import HOSTNAME_CFG01 with context %}
+{% from 'virtual-mcp11-ovs-dpdk/underlay.yaml' import REPOSITORY_SUITE with context %}
 
 {% set SALT_MODELS_REPOSITORY = os_env('SALT_MODELS_REPOSITORY','https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab') %}
 {% set SALT_MODELS_COMMIT = os_env('SALT_MODELS_COMMIT','master') %}
@@ -112,6 +113,8 @@
     find /srv/salt/reclass/ -type f -exec sed -i 's/==IPV4_NET_TENANT_PREFIX==/{{ IPV4_NET_TENANT_PREFIX }}./g' {} +
     find /srv/salt/reclass/ -type f -exec sed -i 's/==IPV4_NET_EXTERNAL_PREFIX==/{{ IPV4_NET_EXTERNAL_PREFIX }}./g' {} +
 
+    find /srv/salt/reclass/ -type f -exec sed -i 's/apt_mk_version:.*/apt_mk_version: {{ REPOSITORY_SUITE }}/g' {} +
+
     # Disable checkouting the model from remote repository
     cat << 'EOF' >> /srv/salt/reclass/nodes/{{ HOSTNAME_CFG01 }}.yml
     # local storage
@@ -226,25 +229,19 @@
   retry: {count: 1, delay: 1}
   skip_fail: false
 
-#- description: (duplicate of the next two steps) Run 'reclass' formula on cfg01
-#  cmd: timeout 120 salt --hard-crash --state-output=mixed --state-verbose=False
-#    -C 'I@salt:master' state.sls reclass;
-#    salt-call --hard-crash --state-output=mixed --state-verbose=False state.sls salt.master;
-#  node_name: {{ HOSTNAME_CFG01 }}
-#  retry: {count: 1, delay: 5}
-#  skip_fail: true
-
-
-- description: Run 'salt' formula on cfg01
+- description: Run 'salt.master' formula on cfg01
   cmd: timeout 120 salt --hard-crash --state-output=mixed --state-verbose=False
     -C 'I@salt:master' state.sls salt.master.service;
-    salt-call --hard-crash --state-output=mixed --state-verbose=False
-        state.sls salt.master,salt.api,salt.minion.ca;
-    systemctl restart salt-minion;
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 1, delay: 5}
-  skip_fail: true
+  skip_fail: false
 
+- description: Run 'salt' formula on cfg01 with workaround proposed in PROD-10894
+  cmd: salt-call --hard-crash --state-output=mixed --state-verbose=False state.sls salt;
+    systemctl restart salt-minion;
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 2, delay: 5}
+  skip_fail: false
 
 - description: Generate inventory for all the nodes to the /srv/salt/reclass/nodes/_generated
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False
diff --git a/tcp_tests/templates/virtual-mcp11-ovs.new/salt.yaml b/tcp_tests/templates/virtual-mcp11-ovs.new/salt.yaml
index adadd79..98de9a6 100644
--- a/tcp_tests/templates/virtual-mcp11-ovs.new/salt.yaml
+++ b/tcp_tests/templates/virtual-mcp11-ovs.new/salt.yaml
@@ -1,4 +1,5 @@
 {% from 'virtual-mcp11-ovs/underlay.yaml' import HOSTNAME_CFG01 with context %}
+{% from 'virtual-mcp11-ovs/underlay.yaml' import REPOSITORY_SUITE with context %}
 
 {% set SALT_MODELS_REPOSITORY = os_env('SALT_MODELS_REPOSITORY','https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab') %}
 {% set SALT_MODELS_COMMIT = os_env('SALT_MODELS_COMMIT','master') %}
@@ -112,6 +113,8 @@
     find /srv/salt/reclass/ -type f -exec sed -i 's/==IPV4_NET_TENANT_PREFIX==/{{ IPV4_NET_TENANT_PREFIX }}./g' {} +
     find /srv/salt/reclass/ -type f -exec sed -i 's/==IPV4_NET_EXTERNAL_PREFIX==/{{ IPV4_NET_EXTERNAL_PREFIX }}./g' {} +
 
+    find /srv/salt/reclass/ -type f -exec sed -i 's/apt_mk_version:.*/apt_mk_version: {{ REPOSITORY_SUITE }}/g' {} +
+
     # Disable checkouting the model from remote repository
     cat << 'EOF' >> /srv/salt/reclass/nodes/{{ HOSTNAME_CFG01 }}.yml
     # local storage
@@ -226,25 +229,19 @@
   retry: {count: 1, delay: 1}
   skip_fail: false
 
-#- description: (duplicate of the next two steps) Run 'reclass' formula on cfg01
-#  cmd: timeout 120 salt --hard-crash --state-output=mixed --state-verbose=False
-#    -C 'I@salt:master' state.sls reclass;
-#    salt-call --hard-crash --state-output=mixed --state-verbose=False state.sls salt.master;
-#  node_name: {{ HOSTNAME_CFG01 }}
-#  retry: {count: 1, delay: 5}
-#  skip_fail: true
-
-
-- description: Run 'salt' formula on cfg01
+- description: Run 'salt.master' formula on cfg01
   cmd: timeout 120 salt --hard-crash --state-output=mixed --state-verbose=False
     -C 'I@salt:master' state.sls salt.master.service;
-    salt-call --hard-crash --state-output=mixed --state-verbose=False
-        state.sls salt.master,salt.api,salt.minion.ca;
-    systemctl restart salt-minion;
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 1, delay: 5}
-  skip_fail: true
+  skip_fail: false
 
+- description: Run 'salt' formula on cfg01 with workaround proposed in PROD-10894
+  cmd: salt-call --hard-crash --state-output=mixed --state-verbose=False state.sls salt;
+    systemctl restart salt-minion;
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 2, delay: 5}
+  skip_fail: false
 
 - description: Generate inventory for all the nodes to the /srv/salt/reclass/nodes/_generated
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False
diff --git a/tcp_tests/templates/virtual-mcp11-ovs/salt.yaml b/tcp_tests/templates/virtual-mcp11-ovs/salt.yaml
index adadd79..98de9a6 100644
--- a/tcp_tests/templates/virtual-mcp11-ovs/salt.yaml
+++ b/tcp_tests/templates/virtual-mcp11-ovs/salt.yaml
@@ -1,4 +1,5 @@
 {% from 'virtual-mcp11-ovs/underlay.yaml' import HOSTNAME_CFG01 with context %}
+{% from 'virtual-mcp11-ovs/underlay.yaml' import REPOSITORY_SUITE with context %}
 
 {% set SALT_MODELS_REPOSITORY = os_env('SALT_MODELS_REPOSITORY','https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab') %}
 {% set SALT_MODELS_COMMIT = os_env('SALT_MODELS_COMMIT','master') %}
@@ -112,6 +113,8 @@
     find /srv/salt/reclass/ -type f -exec sed -i 's/==IPV4_NET_TENANT_PREFIX==/{{ IPV4_NET_TENANT_PREFIX }}./g' {} +
     find /srv/salt/reclass/ -type f -exec sed -i 's/==IPV4_NET_EXTERNAL_PREFIX==/{{ IPV4_NET_EXTERNAL_PREFIX }}./g' {} +
 
+    find /srv/salt/reclass/ -type f -exec sed -i 's/apt_mk_version:.*/apt_mk_version: {{ REPOSITORY_SUITE }}/g' {} +
+
     # Disable checkouting the model from remote repository
     cat << 'EOF' >> /srv/salt/reclass/nodes/{{ HOSTNAME_CFG01 }}.yml
     # local storage
@@ -226,25 +229,19 @@
   retry: {count: 1, delay: 1}
   skip_fail: false
 
-#- description: (duplicate of the next two steps) Run 'reclass' formula on cfg01
-#  cmd: timeout 120 salt --hard-crash --state-output=mixed --state-verbose=False
-#    -C 'I@salt:master' state.sls reclass;
-#    salt-call --hard-crash --state-output=mixed --state-verbose=False state.sls salt.master;
-#  node_name: {{ HOSTNAME_CFG01 }}
-#  retry: {count: 1, delay: 5}
-#  skip_fail: true
-
-
-- description: Run 'salt' formula on cfg01
+- description: Run 'salt.master' formula on cfg01
   cmd: timeout 120 salt --hard-crash --state-output=mixed --state-verbose=False
     -C 'I@salt:master' state.sls salt.master.service;
-    salt-call --hard-crash --state-output=mixed --state-verbose=False
-        state.sls salt.master,salt.api,salt.minion.ca;
-    systemctl restart salt-minion;
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 1, delay: 5}
-  skip_fail: true
+  skip_fail: false
 
+- description: Run 'salt' formula on cfg01 with workaround proposed in PROD-10894
+  cmd: salt-call --hard-crash --state-output=mixed --state-verbose=False state.sls salt;
+    systemctl restart salt-minion;
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 2, delay: 5}
+  skip_fail: false
 
 - description: Generate inventory for all the nodes to the /srv/salt/reclass/nodes/_generated
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False
