diff --git a/ansible/roles/sahara/defaults/main.yml b/ansible/roles/sahara/defaults/main.yml
index 929f9fc36a6ab545c8d8f7fb1aaca5cd6c7fb366..426fb1a75f78b88af5a5d8ea333ad28436caa77e 100644
--- a/ansible/roles/sahara/defaults/main.yml
+++ b/ansible/roles/sahara/defaults/main.yml
@@ -12,6 +12,7 @@ sahara_services:
       - "/etc/localtime:/etc/localtime:ro"
       - "sahara:/var/lib/sahara/"
       - "kolla_logs:/var/log/kolla/"
+      - "{{ kolla_dev_repos_directory ~ '/sahara/sahara:/var/lib/kolla/venv/lib/python2.7/site-packages/sahara' if sahara_dev_mode | bool else '' }}"
   sahara-engine:
     container_name: sahara_engine
     group: sahara-engine
@@ -24,6 +25,7 @@ sahara_services:
       - "sahara:/var/lib/sahara/"
       - "kolla_logs:/var/log/kolla/"
       - "/run:/run:shared"
+      - "{{ kolla_dev_repos_directory ~ '/sahara/sahara:/var/lib/kolla/venv/lib/python2.7/site-packages/sahara' if sahara_dev_mode | bool else '' }}"
 
 
 ####################
@@ -61,3 +63,11 @@ sahara_logging_debug: "{{ openstack_logging_debug }}"
 sahara_keystone_user: "sahara"
 
 openstack_sahara_auth: "{{ openstack_auth }}"
+
+
+####################
+## Kolla
+#####################
+sahara_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
+sahara_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
+sahara_dev_mode: "{{ kolla_dev_mode }}"
diff --git a/ansible/roles/sahara/handlers/main.yml b/ansible/roles/sahara/handlers/main.yml
index 37a2f4a7a80add67b538c70ad4fb5a5832db7af8..476107e5a86899d8753e6579afaf183e636dc58b 100644
--- a/ansible/roles/sahara/handlers/main.yml
+++ b/ansible/roles/sahara/handlers/main.yml
@@ -12,7 +12,7 @@
     common_options: "{{ docker_common_options }}"
     name: "{{ service.container_name }}"
     image: "{{ service.image }}"
-    volumes: "{{ service.volumes }}"
+    volumes: "{{ service.volumes|reject('equalto', '')|list }}"
   when:
     - kolla_action != "config"
     - inventory_hostname in groups[service.group]
@@ -35,7 +35,7 @@
     common_options: "{{ docker_common_options }}"
     name: "{{ service.container_name }}"
     image: "{{ service.image }}"
-    volumes: "{{ service.volumes }}"
+    volumes: "{{ service.volumes|reject('equalto', '')|list }}"
     privileged: "{{ service.privileged | default(False) }}"
   when:
     - kolla_action != "config"
diff --git a/ansible/roles/sahara/tasks/bootstrap_service.yml b/ansible/roles/sahara/tasks/bootstrap_service.yml
index f0bd0bcadf11d7d5dbde312578e6dddcb546fa68..f2d878716482ea7de28bb7b696a03111c79f9473 100644
--- a/ansible/roles/sahara/tasks/bootstrap_service.yml
+++ b/ansible/roles/sahara/tasks/bootstrap_service.yml
@@ -14,6 +14,6 @@
       BOOTSTRAP:
     name: "bootstrap_sahara"
     restart_policy: "never"
-    volumes: "{{ sahara_api.volumes }}"
+    volumes: "{{ sahara_api.volumes|reject('equalto', '')|list }}"
   run_once: True
   delegate_to: "{{ groups[sahara_api.group][0] }}"
diff --git a/ansible/roles/sahara/tasks/clone.yml b/ansible/roles/sahara/tasks/clone.yml
new file mode 100644
index 0000000000000000000000000000000000000000..401c913b0b639b50e2731da1ed1bc89a5d1ba348
--- /dev/null
+++ b/ansible/roles/sahara/tasks/clone.yml
@@ -0,0 +1,6 @@
+---
+- name: Cloning sahara source repository for development
+  git:
+    repo: "{{ sahara_git_repository }}"
+    dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
+    update: "{{ sahara_dev_repos_pull }}"
diff --git a/ansible/roles/sahara/tasks/config.yml b/ansible/roles/sahara/tasks/config.yml
index 14753b2a91eb97f38409e43dc3683810d10aa038..687ff46e342fc1cfcd6cd6979094a9050c2a24bf 100644
--- a/ansible/roles/sahara/tasks/config.yml
+++ b/ansible/roles/sahara/tasks/config.yml
@@ -89,7 +89,7 @@
     name: "{{ item.value.container_name }}"
     image: "{{ item.value.image }}"
     privileged: "{{ item.value.privileged | default(False) }}"
-    volumes: "{{ item.value.volumes }}"
+    volumes: "{{ item.value.volumes|reject('equalto', '')|list }}"
   register: check_sahara_containers
   when:
     - kolla_action != "config"
diff --git a/ansible/roles/sahara/tasks/deploy.yml b/ansible/roles/sahara/tasks/deploy.yml
index 05655b739e9dfc2dc2b3cc93ec2adc52fb585b8a..c18f2f52b578f2dad91535ce4723c164a38f6d82 100644
--- a/ansible/roles/sahara/tasks/deploy.yml
+++ b/ansible/roles/sahara/tasks/deploy.yml
@@ -6,6 +6,9 @@
   when: inventory_hostname in groups['sahara-api'] or
         inventory_hostname in groups['sahara-engine']
 
+- include: clone.yml
+  when: sahara_dev_mode | bool
+
 - include: bootstrap.yml
   when: inventory_hostname in groups['sahara-api']