diff --git a/ansible/roles/kuryr/defaults/main.yml b/ansible/roles/kuryr/defaults/main.yml
index 25a2672b32244618309e8140caefc88b424dd353..6cb7529ed9f6258ccd43287cfb70375fd76f115d 100644
--- a/ansible/roles/kuryr/defaults/main.yml
+++ b/ansible/roles/kuryr/defaults/main.yml
@@ -1,5 +1,6 @@
 ---
 project_name: "kuryr"
+libnetwork_project_name: "kuryr-libnetwork"
 
 # NOTE(huikang, apuimedo): when you request a driver in a docker operation, such
 # as docker network create, docker searches /usr/lib/docker or /etc/docker
@@ -22,6 +23,8 @@ kuryr_services:
       - "/lib/modules:/lib/modules:ro"
       - "/run:/run:shared"
       - "/usr/lib/docker:/usr/lib/docker"
+      - "{{ kolla_dev_repos_directory ~ '/kuryr/kuryr:/var/lib/kolla/venv/lib/python2.7/site-packages/kuryr' if kuryr_dev_mode | bool else '' }}"
+      - "{{ kolla_dev_repos_directory ~ '/kuryr-libnetwork/kuryr_libnetwork:/var/lib/kolla/venv/lib/python2.7/site-packages/kuryr_libnetwork' if kuryr_dev_mode | bool else '' }}"
       - "kolla_logs:/var/log/kolla/"
 
 
@@ -41,3 +44,12 @@ kuryr_logging_debug: "{{ openstack_logging_debug }}"
 kuryr_keystone_user: "kuryr"
 
 openstack_kuryr_auth: "{{ openstack_auth }}"
+
+
+####################
+# Kolla
+####################
+kuryr_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
+kuryr_libnetwork_git_repository: "{{ kolla_dev_repos_git }}/{{ libnetwork_project_name }}"
+kuryr_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
+kuryr_dev_mode: "{{ kolla_dev_mode }}"
diff --git a/ansible/roles/kuryr/tasks/clone.yml b/ansible/roles/kuryr/tasks/clone.yml
new file mode 100644
index 0000000000000000000000000000000000000000..32a1db911752f6aefa97b518bb90262f3d805606
--- /dev/null
+++ b/ansible/roles/kuryr/tasks/clone.yml
@@ -0,0 +1,12 @@
+---
+- name: Cloning kuryr source repository for development
+  git:
+    repo: "{{ kuryr_git_repository }}"
+    dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
+    update: "{{ kuryr_dev_repos_pull }}"
+
+- name: Cloning kuryr-libnetwork source repository for development
+  git:
+    repo: "{{ kuryr_libnetwork_git_repository }}"
+    dest: "{{ kolla_dev_repos_directory }}/{{ libnetwork_project_name }}"
+    update: "{{ kuryr_dev_repos_pull }}"
diff --git a/ansible/roles/kuryr/tasks/deploy.yml b/ansible/roles/kuryr/tasks/deploy.yml
index 6b896c6e555b27ece5b7c4a88b103592c056e740..b1b0eebace908cacf3d14f4312a46ccf96568311 100644
--- a/ansible/roles/kuryr/tasks/deploy.yml
+++ b/ansible/roles/kuryr/tasks/deploy.yml
@@ -3,5 +3,9 @@
 
 - include: config.yml
 
+- include: clone.yml
+  when:
+    - kuryr_dev_mode | bool
+
 - name: Flush handlers
   meta: flush_handlers