diff --git a/tcp_tests/managers/k8smanager.py b/tcp_tests/managers/k8smanager.py
index 7476b60..7353d6b 100644
--- a/tcp_tests/managers/k8smanager.py
+++ b/tcp_tests/managers/k8smanager.py
@@ -568,19 +568,23 @@
             if system is 'docker':
                 cmd = ("docker ps --all | grep {0} |"
                        " awk '{{print $1}}'".format(container))
-                result = remote.check_call(cmd)
-                container_id = result['stdout'][0].strip()
+                result = remote.check_call(cmd, raise_on_err=False)
+                if result['stdout']:
+                    container_id = result['stdout'][0].strip()
+                else:
+                    LOG.info('No container found, skipping extraction...')
+                    return
                 cmd = "docker start {}".format(container_id)
-                remote.check_call(cmd)
+                remote.check_call(cmd, raise_on_err=False)
                 cmd = "docker cp {0}:/{1} .".format(container_id, file_path)
-                remote.check_call(cmd)
+                remote.check_call(cmd, raise_on_err=False)
             else:
                 # system is k8s
                 pod_name = kwargs.get('pod_name')
                 pod_namespace = kwargs.get('pod_namespace')
                 cmd = 'kubectl cp {0}/{1}:/{2} .'.format(
                     pod_namespace, pod_name, file_path)
-                remote.check_call(cmd)
+                remote.check_call(cmd, raise_on_err=False)
 
     def download_k8s_logs(self, files):
         """
@@ -610,13 +614,13 @@
             cmd = ("apt-get install python-setuptools -y; "
                    "pip install git+https://github.com/mogaika/xunitmerge.git")
             LOG.debug('Installing xunitmerge')
-            r.check_call(cmd)
+            r.check_call(cmd, raise_on_err=False)
             LOG.debug('Merging xunit')
             cmd = ("cd {0}; arg = ''; "
                    "for i in $(ls | grep xml); "
                    "do arg=\"$arg $i\"; done && "
                    "xunitmerge $arg {1}".format(path, output))
-            r.check_call(cmd)
+            r.check_call(cmd, raise_on_err=False)
 
     def manage_cncf_archive(self):
         """
@@ -638,14 +642,14 @@
                 node_name=self.ctl_host) as remote:
             tar_name = remote.check_call(get_tar_name_cmd)['stdout'][0].strip()
             untar = "mkdir result && tar -C result -xzf {0}".format(tar_name)
-            remote.check_call(untar)
+            remote.check_call(untar, raise_on_err=False)
             manage_results = ("mv result/plugins/e2e/results/e2e.log . && "
                               "mv result/plugins/e2e/results/junit_01.xml . ;"
                               "kubectl version > version.txt")
             remote.check_call(manage_results, raise_on_err=False)
             cleanup_host = "rm -rf result"
-            remote.check_call(cleanup_host)
+            remote.check_call(cleanup_host, raise_on_err=False)
             # This one needed to use download fixture, since I don't know
             # how possible apply fixture arg dynamically from test.
             rename_tar = "mv {0} cncf_results.tar.gz".format(tar_name)
-            remote.check_call(rename_tar)
+            remote.check_call(rename_tar, raise_on_err=False)
diff --git a/tcp_tests/settings_oslo.py b/tcp_tests/settings_oslo.py
index c6a4201..9082301 100644
--- a/tcp_tests/settings_oslo.py
+++ b/tcp_tests/settings_oslo.py
@@ -290,7 +290,10 @@
            default='sbPfel23ZigJF3Bm'),
     ct.Cfg('kubernetes_docker_package', ct.String(), default=''),
     ct.Cfg('kubernetes_hyperkube_image', ct.String(),
-           default='{}/mirantis/kubernetes/hyperkube-amd64:v1.8.11-9'.format(
+           default='{}/mirantis/kubernetes/hyperkube-amd64:v1.8.13-11'.format(
+               settings.DOCKER_REGISTRY)),
+    ct.Cfg('kubernetes_pause_image', ct.String(),
+           default='{}/mirantis/kubernetes/pause-amd64:v1.8.13-11'.format(
                settings.DOCKER_REGISTRY)),
     ct.Cfg('kubernetes_calico_image', ct.String(),
            default='{}/mirantis/projectcalico/calico/node:v2.6.9'.format(
@@ -343,7 +346,7 @@
            default=False),
     ct.Cfg('k8s_conformance_image', ct.String(),
            default='docker-prod-virtual.docker.mirantis.net/mirantis/'
-                   'kubernetes/k8s-conformance:v1.8.11-9')
+                   'kubernetes/k8s-conformance:v1.8.13-11')
 ]
 
 _group_opts = [
diff --git a/tcp_tests/templates/shared-salt.yaml b/tcp_tests/templates/shared-salt.yaml
index 653eef9..f3b8414 100644
--- a/tcp_tests/templates/shared-salt.yaml
+++ b/tcp_tests/templates/shared-salt.yaml
@@ -581,7 +581,7 @@
     -C 'I@salt:master' state.sls openssh &&
     salt --hard-crash --state-output=mixed --state-verbose=False
     -C 'I@salt:master' cmd.run "sed -i 's/PasswordAuthentication no/PasswordAuthentication
-    yes/' /etc/ssh/sshd_config && sed -i 's/ClientAliveInterval 300/ClientAliveInterval 3000/' /etc/ssh/sshd_config && service ssh reload"
+    yes/' /etc/ssh/sshd_config && sed -i 's/ClientAliveInterval 300/ClientAliveInterval 18000/' /etc/ssh/sshd_config && service ssh reload"
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 3, delay: 5}
   skip_fail: false
diff --git a/tcp_tests/templates/virtual-mcp-ocata-dvr/salt.yaml b/tcp_tests/templates/virtual-mcp-ocata-dvr/salt.yaml
index 7ba7a9c..1a7f785 100644
--- a/tcp_tests/templates/virtual-mcp-ocata-dvr/salt.yaml
+++ b/tcp_tests/templates/virtual-mcp-ocata-dvr/salt.yaml
@@ -14,7 +14,7 @@
 
 {{ SHARED.MACRO_CLONE_RECLASS_MODELS() }}
 
-{{ SHARED.MACRO_CONFIGURE_RECLASS(FORMULA_SERVICES='"linux" "reclass" "salt" "openssh" "ntp" "git" "nginx" "collectd" "sensu" "heka" "sphinx" "keystone" "mysql" "grafana" "haproxy" "rsyslog" "horizon" "prometheus" "telegraf" "elasticsearch" "powerdns"') }}
+{{ SHARED.MACRO_CONFIGURE_RECLASS(FORMULA_SERVICES='"linux" "reclass" "salt" "openssh" "ntp" "git" "nginx" "collectd" "sensu" "heka" "sphinx" "keystone" "mysql" "grafana" "haproxy" "rsyslog" "horizon" "prometheus" "telegraf" "elasticsearch" "powerdns" "glusterfs" "jenkins" "maas" "backupninja" "fluentd"') }}
 
 {{ SHARED.MACRO_INSTALL_SALT_MINIONS() }}
 
diff --git a/tcp_tests/templates/virtual-mcp-ocata-ovs/salt.yaml b/tcp_tests/templates/virtual-mcp-ocata-ovs/salt.yaml
index c05f7a2..9f5cda6 100644
--- a/tcp_tests/templates/virtual-mcp-ocata-ovs/salt.yaml
+++ b/tcp_tests/templates/virtual-mcp-ocata-ovs/salt.yaml
@@ -14,7 +14,7 @@
 
 {{ SHARED.MACRO_CLONE_RECLASS_MODELS() }}
 
-{{ SHARED.MACRO_CONFIGURE_RECLASS(FORMULA_SERVICES='"linux" "reclass" "salt" "openssh" "ntp" "git" "nginx" "collectd" "sensu" "heka" "sphinx" "keystone" "mysql" "grafana" "haproxy" "rsyslog" "horizon" "prometheus" "telegraf" "elasticsearch"') }}
+{{ SHARED.MACRO_CONFIGURE_RECLASS(FORMULA_SERVICES='"linux" "reclass" "salt" "openssh" "ntp" "git" "nginx" "collectd" "sensu" "heka" "sphinx" "keystone" "mysql" "grafana" "haproxy" "rsyslog" "horizon" "prometheus" "telegraf" "elasticsearch" "glusterfs" "jenkins" "maas" "backupninja" "fluentd"') }}
 
 {{ SHARED.MACRO_INSTALL_SALT_MINIONS() }}
 
