diff --git a/tcp_tests/managers/virtlet_manager.py b/tcp_tests/managers/virtlet_manager.py
index 717ba76..866192d 100644
--- a/tcp_tests/managers/virtlet_manager.py
+++ b/tcp_tests/managers/virtlet_manager.py
@@ -40,15 +40,15 @@
                               label='Install Virtlet project')
         self.__config.virtlet.virtlet_installed = True
 
-    def run_vm(self, name=None):
+    def run_vm(self, name=None, yaml_path='virtlet/examples/cirros-vm.yaml'):
         if not name:
             name = 'virtlet-vm-{}'.format(uuid4())
         virt_node = self.virtlet_nodes[0]
         cmd = (
-            "kubectl convert -f virtlet/examples/cirros-vm.yaml --local "
-            "-o json | jq '.metadata.name|=\"{}\"' | kubectl create -f -")
+            "kubectl convert -f {0} --local "
+            "-o json | jq '.metadata.name|=\"{1}\"' | kubectl create -f -")
         self.__underlay.check_call(
-            cmd.format(name),
+            cmd.format(name, yaml_path),
             node_name=virt_node['node_name'])
         return name
 
@@ -81,3 +81,44 @@
             timeout_msg="VM {} didn't Running state in {} sec. "
                         "Current state: ".format(
                 name, timeout, self.get_vm_info(name)['stdout'][0]))
+
+    def adjust_cirros_resources(
+            self, cpu=2, memory='256',
+            target_yaml='virtlet/examples/cirros-vm-exp.yaml'):
+        virt_node = self.virtlet_nodes[0]
+        # We will need to change params in case of example change
+        cmd = ("cd ~/virtlet/examples && "
+               "cp cirros-vm.yaml {2} && "
+               "sed -r 's/^(\s*)(VirtletVCPUCount\s*:\s*\"1\"\s*$)/ "
+               "\1VirtletVCPUCount: \"{0}\"/' {2} && "
+               "sed -r 's/^(\s*)(memory\s*:\s*128Mi\s*$)/\1memory: "
+               "{1}Mi/' {2}".format(cpu, memory, target_yaml))
+        self.__underlay.check_call(cmd, node_name=virt_node['node_name'])
+
+    def get_domain_name(self, vm_name):
+        virt_node = self.virtlet_nodes[0]
+        cmd = ("cd ~/virtlet/examples && "
+               "./virsh.sh list | grep -i {0} "
+               "| awk {{'print $2'}}".format(vm_name))
+        result = self.__underlay.check_call(cmd,
+                                            node_name=virt_node['node_name'])
+        return result['stdout'].strip()
+
+    def get_vm_cpu_count(self, domain_name):
+        virt_node = self.virtlet_nodes[0]
+        cmd = ("cd ~/virtlet/examples && "
+               "./virsh.sh dumpxml {0} | "
+               "grep 'cpu' | grep -o '[[:digit:]]*'".format(domain_name))
+        result = self.__underlay.check_call(cmd,
+                                            node_name=virt_node['node_name'])
+        return int(result['stdout'].strip())
+
+    def get_vm_memory_count(self, domain_name):
+        virt_node = self.virtlet_nodes[0]
+        cmd = ("cd ~/virtlet/examples && "
+               "./virsh.sh dumpxml {0} | "
+               "grep 'memory unit' | "
+               "grep -o '[[:digit:]]*'".format(domain_name))
+        result = self.__underlay.check_call(cmd,
+                                            node_name=virt_node['node_name'])
+        return int(result['stdout'].strip())
diff --git a/tcp_tests/tests/system/test_install_virtlet.py b/tcp_tests/tests/system/test_install_virtlet.py
index f49319d..0ccb75d 100644
--- a/tcp_tests/tests/system/test_install_virtlet.py
+++ b/tcp_tests/tests/system/test_install_virtlet.py
@@ -62,4 +62,4 @@
             5. Launch Ceph one-node cluster in docker
 
         """
-        LOG.info("*************** DONE **************")
\ No newline at end of file
+        LOG.info("*************** DONE **************")
diff --git a/tcp_tests/tests/system/test_virtlet_actions.py b/tcp_tests/tests/system/test_virtlet_actions.py
index 523aceb..4db505c 100644
--- a/tcp_tests/tests/system/test_virtlet_actions.py
+++ b/tcp_tests/tests/system/test_virtlet_actions.py
@@ -46,3 +46,35 @@
         vm_name = virtlet_actions.run_vm()
         virtlet_actions.wait_active_state(vm_name)
         virtlet_actions.delete_vm(vm_name)
+
+    def test_vm_resource_quotas(self, underlay, virtlet_deployed, show_step,
+                                virtlet_actions):
+        """Test for deploying a VM with specific quotas
+
+        Scenario:
+            1. Prepare VM's yaml
+            2. Start a VM
+            3. Check that VM resources is equal to provided in yaml
+            4. Destroy VM
+
+        """
+
+        target_cpu = 2  # Cores
+        target_memory = 256  # Size in MB
+        target_memory_kb = target_memory*1024
+        target_yaml = 'virtlet/examples/cirros-vm-exp.yaml'
+        virtlet_actions.adjust_cirros_resources(cpu=target_cpu,
+                                                memory=target_memory,
+                                                target_yaml=target_yaml)
+        vm_name = virtlet_actions.run_vm(target_yaml)
+        virtlet_actions.wait_active_state(vm_name)
+        domain_name = virtlet_actions.get_domain_name(vm_name)
+        cpu = virtlet_actions.get_vm_cpu_count(domain_name)
+        mem = virtlet_actions.get_vm_memory_count(domain_name)
+        fail_msg = '{0} is not correct memory unit for VM. Correct is {1}'.\
+            format(mem, target_memory_kb)
+        assert target_memory_kb == mem, fail_msg
+        fail_msg = '{0} is not correct cpu cores count for VM. ' \
+                   'Correct is {1}'.format(cpu, target_cpu)
+        assert target_cpu == cpu, fail_msg
+        virtlet_actions.delete_vm(target_yaml)
