From 12f4554330590357664b88cc696c4faf2be59d7c Mon Sep 17 00:00:00 2001
From: MinSun <minsu@cisco.com>
Date: Fri, 20 Jul 2018 10:00:37 +0800
Subject: [PATCH] Support checkout dedicated version from git with dev mode

Now kolla dev mode only support clone master branch from git,
add version tag to support clone dedicated branch.

Change-Id: I88de238e5dc7461ba0662a3ecea9a2d80fd0db60
---
 ansible/group_vars/all.yml                 | 1 +
 ansible/roles/aodh/defaults/main.yml       | 1 +
 ansible/roles/aodh/tasks/clone.yml         | 1 +
 ansible/roles/barbican/defaults/main.yml   | 1 +
 ansible/roles/barbican/tasks/clone.yml     | 1 +
 ansible/roles/blazar/defaults/main.yml     | 1 +
 ansible/roles/blazar/tasks/clone.yml       | 1 +
 ansible/roles/ceilometer/defaults/main.yml | 1 +
 ansible/roles/ceilometer/tasks/clone.yml   | 1 +
 ansible/roles/cinder/defaults/main.yml     | 1 +
 ansible/roles/cinder/tasks/clone.yml       | 1 +
 ansible/roles/cloudkitty/defaults/main.yml | 1 +
 ansible/roles/cloudkitty/tasks/clone.yml   | 1 +
 ansible/roles/congress/defaults/main.yml   | 1 +
 ansible/roles/congress/tasks/clone.yml     | 1 +
 ansible/roles/designate/defaults/main.yml  | 1 +
 ansible/roles/designate/tasks/clone.yml    | 1 +
 ansible/roles/glance/defaults/main.yml     | 1 +
 ansible/roles/glance/tasks/clone.yml       | 1 +
 ansible/roles/heat/defaults/main.yml       | 1 +
 ansible/roles/heat/tasks/clone.yml         | 1 +
 ansible/roles/horizon/defaults/main.yml    | 2 ++
 ansible/roles/horizon/tasks/clone.yml      | 2 ++
 ansible/roles/ironic/defaults/main.yml     | 1 +
 ansible/roles/ironic/tasks/clone.yml       | 2 ++
 ansible/roles/keystone/defaults/main.yml   | 1 +
 ansible/roles/keystone/tasks/clone.yml     | 1 +
 ansible/roles/kuryr/defaults/main.yml      | 1 +
 ansible/roles/kuryr/tasks/clone.yml        | 2 ++
 ansible/roles/magnum/defaults/main.yml     | 1 +
 ansible/roles/magnum/tasks/clone.yml       | 1 +
 ansible/roles/manila/defaults/main.yml     | 1 +
 ansible/roles/manila/tasks/clone.yml       | 1 +
 ansible/roles/mistral/defaults/main.yml    | 1 +
 ansible/roles/mistral/tasks/clone.yml      | 1 +
 ansible/roles/murano/defaults/main.yml     | 1 +
 ansible/roles/murano/tasks/clone.yml       | 1 +
 ansible/roles/sahara/defaults/main.yml     | 1 +
 ansible/roles/sahara/tasks/clone.yml       | 1 +
 ansible/roles/senlin/defaults/main.yml     | 1 +
 ansible/roles/senlin/tasks/clone.yml       | 1 +
 ansible/roles/solum/defaults/main.yml      | 1 +
 ansible/roles/solum/tasks/clone.yml        | 1 +
 ansible/roles/tacker/defaults/main.yml     | 1 +
 ansible/roles/tacker/tasks/clone.yml       | 1 +
 ansible/roles/vitrage/defaults/main.yml    | 1 +
 ansible/roles/vitrage/tasks/clone.yml      | 1 +
 ansible/roles/watcher/defaults/main.yml    | 1 +
 ansible/roles/watcher/tasks/clone.yml      | 1 +
 ansible/roles/zun/defaults/main.yml        | 1 +
 ansible/roles/zun/tasks/clone.yml          | 1 +
 51 files changed, 55 insertions(+)

diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index 9fd85e66db..f751d59d93 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -49,6 +49,7 @@ kolla_dev_repos_directory: "/opt/stack/"
 kolla_dev_repos_git: "https://git.openstack.org/openstack"
 kolla_dev_repos_pull: "no"
 kolla_dev_mode: "no"
+kolla_source_version: "master"
 
 # Proxy settings for containers such as magnum that need internet access
 container_http_proxy: ""
diff --git a/ansible/roles/aodh/defaults/main.yml b/ansible/roles/aodh/defaults/main.yml
index ac3eadf423..003d59a044 100644
--- a/ansible/roles/aodh/defaults/main.yml
+++ b/ansible/roles/aodh/defaults/main.yml
@@ -103,3 +103,4 @@ openstack_aodh_auth: "{{ openstack_auth }}"
 aodh_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 aodh_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 aodh_dev_mode: "{{ kolla_dev_mode }}"
+aodh_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/aodh/tasks/clone.yml b/ansible/roles/aodh/tasks/clone.yml
index ddffef3a37..498c4a0bbb 100644
--- a/ansible/roles/aodh/tasks/clone.yml
+++ b/ansible/roles/aodh/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ aodh_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ aodh_dev_repos_pull }}"
+    version: "{{ aodh_source_version }}"
diff --git a/ansible/roles/barbican/defaults/main.yml b/ansible/roles/barbican/defaults/main.yml
index 12e6bba073..844c4e63ad 100644
--- a/ansible/roles/barbican/defaults/main.yml
+++ b/ansible/roles/barbican/defaults/main.yml
@@ -92,3 +92,4 @@ openstack_barbican_auth: "{{ openstack_auth }}"
 barbican_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 barbican_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 barbican_dev_mode: "{{ kolla_dev_mode }}"
+barbican_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/barbican/tasks/clone.yml b/ansible/roles/barbican/tasks/clone.yml
index 573965753b..9b76362fe0 100644
--- a/ansible/roles/barbican/tasks/clone.yml
+++ b/ansible/roles/barbican/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ barbican_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ barbican_dev_repos_pull }}"
+    version: "{{ barbican_source_version }}"
diff --git a/ansible/roles/blazar/defaults/main.yml b/ansible/roles/blazar/defaults/main.yml
index 6a1ddcd3ab..5dc41af547 100644
--- a/ansible/roles/blazar/defaults/main.yml
+++ b/ansible/roles/blazar/defaults/main.yml
@@ -76,3 +76,4 @@ openstack_blazar_auth: "{{ openstack_auth }}"
 blazar_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 blazar_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 blazar_dev_mode: "{{ kolla_dev_mode }}"
+blazar_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/blazar/tasks/clone.yml b/ansible/roles/blazar/tasks/clone.yml
index a107eefa58..43427861d7 100644
--- a/ansible/roles/blazar/tasks/clone.yml
+++ b/ansible/roles/blazar/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ blazar_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ blazar_dev_repos_pull }}"
+    version: "{{ blazar_source_version }}"
diff --git a/ansible/roles/ceilometer/defaults/main.yml b/ansible/roles/ceilometer/defaults/main.yml
index 654a24de22..cbfc9f0e88 100644
--- a/ansible/roles/ceilometer/defaults/main.yml
+++ b/ansible/roles/ceilometer/defaults/main.yml
@@ -80,3 +80,4 @@ openstack_ceilometer_auth: "{{ openstack_auth }}"
 ceilometer_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 ceilometer_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 ceilometer_dev_mode: "{{ kolla_dev_mode }}"
+ceilometer_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/ceilometer/tasks/clone.yml b/ansible/roles/ceilometer/tasks/clone.yml
index 8fb02fa6ef..d7515e9345 100644
--- a/ansible/roles/ceilometer/tasks/clone.yml
+++ b/ansible/roles/ceilometer/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ ceilometer_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ ceilometer_dev_repos_pull }}"
+    version: "{{ ceilometer_source_version }}"
diff --git a/ansible/roles/cinder/defaults/main.yml b/ansible/roles/cinder/defaults/main.yml
index 7b5498f534..d52f96da47 100644
--- a/ansible/roles/cinder/defaults/main.yml
+++ b/ansible/roles/cinder/defaults/main.yml
@@ -217,3 +217,4 @@ zfssa_iscsi_target_interfaces:
 cinder_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 cinder_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 cinder_dev_mode: "{{ kolla_dev_mode }}"
+cinder_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/cinder/tasks/clone.yml b/ansible/roles/cinder/tasks/clone.yml
index 884d7248b3..5ac31ac289 100644
--- a/ansible/roles/cinder/tasks/clone.yml
+++ b/ansible/roles/cinder/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ cinder_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ cinder_dev_repos_pull }}"
+    version: "{{ cinder_source_version }}"
diff --git a/ansible/roles/cloudkitty/defaults/main.yml b/ansible/roles/cloudkitty/defaults/main.yml
index aec99f9cd9..ee7f8bac40 100644
--- a/ansible/roles/cloudkitty/defaults/main.yml
+++ b/ansible/roles/cloudkitty/defaults/main.yml
@@ -78,3 +78,4 @@ cloudkitty_openstack_keystone_default_role: "rating"
 cloudkitty_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 cloudkitty_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 cloudkitty_dev_mode: "{{ kolla_dev_mode }}"
+cloudkitty_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/cloudkitty/tasks/clone.yml b/ansible/roles/cloudkitty/tasks/clone.yml
index 906be97d92..775b933782 100644
--- a/ansible/roles/cloudkitty/tasks/clone.yml
+++ b/ansible/roles/cloudkitty/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ cloudkitty_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ cloudkitty_dev_repos_pull }}"
+    version: "{{ cloudkitty_source_version }}"
diff --git a/ansible/roles/congress/defaults/main.yml b/ansible/roles/congress/defaults/main.yml
index 2193ba9c0d..b2118b1469 100644
--- a/ansible/roles/congress/defaults/main.yml
+++ b/ansible/roles/congress/defaults/main.yml
@@ -87,3 +87,4 @@ openstack_congress_auth: "{{ openstack_auth }}"
 congress_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 congress_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 congress_dev_mode: "{{ kolla_dev_mode }}"
+congress_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/congress/tasks/clone.yml b/ansible/roles/congress/tasks/clone.yml
index 6942bd3f4b..1cee822709 100644
--- a/ansible/roles/congress/tasks/clone.yml
+++ b/ansible/roles/congress/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ congress_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ congress_dev_repos_pull }}"
+    version: "{{ congress_source_version }}"
diff --git a/ansible/roles/designate/defaults/main.yml b/ansible/roles/designate/defaults/main.yml
index 8ec80eddfc..774f27e98a 100644
--- a/ansible/roles/designate/defaults/main.yml
+++ b/ansible/roles/designate/defaults/main.yml
@@ -155,6 +155,7 @@ openstack_designate_auth: "{{ openstack_auth }}"
 designate_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 designate_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 designate_dev_mode: "{{ kolla_dev_mode }}"
+designate_source_version: "{{ kolla_source_version }}"
 
 ####################
 ## Designate
diff --git a/ansible/roles/designate/tasks/clone.yml b/ansible/roles/designate/tasks/clone.yml
index 9e7e97e92f..2eab8626b3 100644
--- a/ansible/roles/designate/tasks/clone.yml
+++ b/ansible/roles/designate/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ designate_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ designate_dev_repos_pull }}"
+    version: "{{ designate_source_version }}"
diff --git a/ansible/roles/glance/defaults/main.yml b/ansible/roles/glance/defaults/main.yml
index 6be838feb0..d4b401fdd8 100644
--- a/ansible/roles/glance/defaults/main.yml
+++ b/ansible/roles/glance/defaults/main.yml
@@ -124,6 +124,7 @@ openstack_glance_auth: "{{ openstack_auth }}"
 glance_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 glance_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 glance_dev_mode: "{{ kolla_dev_mode }}"
+glance_source_version: "{{ kolla_source_version }}"
 
 ################################################
 # VMware - OpenStack VMware support
diff --git a/ansible/roles/glance/tasks/clone.yml b/ansible/roles/glance/tasks/clone.yml
index a85e10eb2a..5dfd3490f7 100644
--- a/ansible/roles/glance/tasks/clone.yml
+++ b/ansible/roles/glance/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ glance_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ glance_dev_repos_pull }}"
+    version: "{{ glance_source_version }}"
diff --git a/ansible/roles/heat/defaults/main.yml b/ansible/roles/heat/defaults/main.yml
index 46506aee0c..ecfe421385 100644
--- a/ansible/roles/heat/defaults/main.yml
+++ b/ansible/roles/heat/defaults/main.yml
@@ -92,3 +92,4 @@ openstack_heat_auth: "{{ openstack_auth }}"
 heat_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 heat_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 heat_dev_mode: "{{ kolla_dev_mode }}"
+heat_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/heat/tasks/clone.yml b/ansible/roles/heat/tasks/clone.yml
index d9ad99bda3..0171cb9fd7 100644
--- a/ansible/roles/heat/tasks/clone.yml
+++ b/ansible/roles/heat/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ heat_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ heat_dev_repos_pull }}"
+    version: "{{ heat_source_version }}"
diff --git a/ansible/roles/horizon/defaults/main.yml b/ansible/roles/horizon/defaults/main.yml
index 9fac5bc0e1..71fa903211 100644
--- a/ansible/roles/horizon/defaults/main.yml
+++ b/ansible/roles/horizon/defaults/main.yml
@@ -78,3 +78,5 @@ murano_dashboard_git_repository: "{{ kolla_dev_repos_git }}/murano-dashboard"
 horizon_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 horizon_dev_mode: "{{ kolla_dev_mode }}"
 horizon_murano_dev_mode: "{{ kolla_dev_mode }}"
+horizon_source_version: "{{ kolla_source_version }}"
+horizon_murano_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/horizon/tasks/clone.yml b/ansible/roles/horizon/tasks/clone.yml
index 46799ef668..8b42d92d23 100644
--- a/ansible/roles/horizon/tasks/clone.yml
+++ b/ansible/roles/horizon/tasks/clone.yml
@@ -4,11 +4,13 @@
     repo: "{{ horizon_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ horizon_dev_repos_pull }}"
+    version: "{{ horizon_source_version }}"
 
 - name: Cloning murano-dashboard source repositories for development
   git:
     repo: "{{ murano_dashboard_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/murano-dashboard"
     update: "{{ horizon_dev_repos_pull }}"
+    version: "{{ horizon_murano_source_version }}"
   when:
     - horizon_murano_dev_mode | bool
diff --git a/ansible/roles/ironic/defaults/main.yml b/ansible/roles/ironic/defaults/main.yml
index c707027610..ddd26e9415 100644
--- a/ansible/roles/ironic/defaults/main.yml
+++ b/ansible/roles/ironic/defaults/main.yml
@@ -166,3 +166,4 @@ ironic_inspector_git_repository: "{{ kolla_dev_repos_git }}/ironic-inspector"
 ironic_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 ironic_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 ironic_dev_mode: "{{ kolla_dev_mode }}"
+ironic_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/ironic/tasks/clone.yml b/ansible/roles/ironic/tasks/clone.yml
index 6a01b8cf67..db7f2a83f9 100644
--- a/ansible/roles/ironic/tasks/clone.yml
+++ b/ansible/roles/ironic/tasks/clone.yml
@@ -4,9 +4,11 @@
     repo: "{{ ironic_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ ironic_dev_repos_pull }}"
+    version: "{{ ironic_source_version }}"
 
 - name: Cloning ironic-inspector source repository for development
   git:
     repo: "{{ ironic_inspector_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/ironic-inspector"
     update: "{{ ironic_dev_repos_pull }}"
+    version: "{{ ironic_source_version }}"
diff --git a/ansible/roles/keystone/defaults/main.yml b/ansible/roles/keystone/defaults/main.yml
index 4f1af8adc1..25afb256b5 100644
--- a/ansible/roles/keystone/defaults/main.yml
+++ b/ansible/roles/keystone/defaults/main.yml
@@ -89,3 +89,4 @@ openstack_keystone_auth: "{{ openstack_auth }}"
 keystone_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 keystone_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 keystone_dev_mode: "{{ kolla_dev_mode }}"
+keystone_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/keystone/tasks/clone.yml b/ansible/roles/keystone/tasks/clone.yml
index b1105344c4..a56604d536 100644
--- a/ansible/roles/keystone/tasks/clone.yml
+++ b/ansible/roles/keystone/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ keystone_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ keystone_dev_repos_pull }}"
+    version: "{{ keystone_source_version }}"
diff --git a/ansible/roles/kuryr/defaults/main.yml b/ansible/roles/kuryr/defaults/main.yml
index 7b1d783a66..6a62b94b7f 100644
--- a/ansible/roles/kuryr/defaults/main.yml
+++ b/ansible/roles/kuryr/defaults/main.yml
@@ -55,3 +55,4 @@ kuryr_libnetwork_git_repository: "{{ kolla_dev_repos_git }}/{{ libnetwork_projec
 kuryr_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 kuryr_dev_mode: "{{ kolla_dev_mode }}"
 kuryr_dimensions: "{{ default_container_dimensions }}"
+kuryr_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/kuryr/tasks/clone.yml b/ansible/roles/kuryr/tasks/clone.yml
index 32a1db9117..a4ea56297e 100644
--- a/ansible/roles/kuryr/tasks/clone.yml
+++ b/ansible/roles/kuryr/tasks/clone.yml
@@ -4,9 +4,11 @@
     repo: "{{ kuryr_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ kuryr_dev_repos_pull }}"
+    version: "{{ kuryr_source_version }}"
 
 - 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 }}"
+    version: "{{ kuryr_source_version }}"
diff --git a/ansible/roles/magnum/defaults/main.yml b/ansible/roles/magnum/defaults/main.yml
index ed5e720520..272625b554 100644
--- a/ansible/roles/magnum/defaults/main.yml
+++ b/ansible/roles/magnum/defaults/main.yml
@@ -84,3 +84,4 @@ openstack_magnum_auth: "{{ openstack_auth }}"
 magnum_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 magnum_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 magnum_dev_mode: "{{ kolla_dev_mode }}"
+magnum_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/magnum/tasks/clone.yml b/ansible/roles/magnum/tasks/clone.yml
index f98b8836e8..d4c28aa0a5 100644
--- a/ansible/roles/magnum/tasks/clone.yml
+++ b/ansible/roles/magnum/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ magnum_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ magnum_dev_repos_pull }}"
+    version: "{{ magnum_source_version }}"
diff --git a/ansible/roles/manila/defaults/main.yml b/ansible/roles/manila/defaults/main.yml
index decefdda49..b77abbc625 100644
--- a/ansible/roles/manila/defaults/main.yml
+++ b/ansible/roles/manila/defaults/main.yml
@@ -159,3 +159,4 @@ manila_enabled_backends: "{{ manila_backends|selectattr('enabled', 'equalto', tr
 manila_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 manila_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 manila_dev_mode: "{{ kolla_dev_mode }}"
+manila_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/manila/tasks/clone.yml b/ansible/roles/manila/tasks/clone.yml
index 9a9b43d232..2a0f303d4b 100644
--- a/ansible/roles/manila/tasks/clone.yml
+++ b/ansible/roles/manila/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ manila_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ manila_dev_repos_pull }}"
+    version: "{{ manila_source_version }}"
diff --git a/ansible/roles/mistral/defaults/main.yml b/ansible/roles/mistral/defaults/main.yml
index a637970474..a4fa556e44 100644
--- a/ansible/roles/mistral/defaults/main.yml
+++ b/ansible/roles/mistral/defaults/main.yml
@@ -87,3 +87,4 @@ openstack_mistral_auth: "{{ openstack_auth }}"
 mistral_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 mistral_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 mistral_dev_mode: "{{ kolla_dev_mode }}"
+mistral_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/mistral/tasks/clone.yml b/ansible/roles/mistral/tasks/clone.yml
index 051e4ab410..341299de2a 100644
--- a/ansible/roles/mistral/tasks/clone.yml
+++ b/ansible/roles/mistral/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ mistral_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ mistral_dev_repos_pull }}"
+    version: "{{ mistral_source_version }}"
diff --git a/ansible/roles/murano/defaults/main.yml b/ansible/roles/murano/defaults/main.yml
index c16a2ae38c..da5f950975 100644
--- a/ansible/roles/murano/defaults/main.yml
+++ b/ansible/roles/murano/defaults/main.yml
@@ -71,3 +71,4 @@ murano_agent_timeout: 3600
 murano_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 murano_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 murano_dev_mode: "{{ kolla_dev_mode }}"
+murano_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/murano/tasks/clone.yml b/ansible/roles/murano/tasks/clone.yml
index 6c470004d5..d412d6c46e 100644
--- a/ansible/roles/murano/tasks/clone.yml
+++ b/ansible/roles/murano/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ murano_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ murano_dev_repos_pull }}"
+    version: "{{ murano_source_version }}"
diff --git a/ansible/roles/sahara/defaults/main.yml b/ansible/roles/sahara/defaults/main.yml
index cb5a930f1c..43502b3cd8 100644
--- a/ansible/roles/sahara/defaults/main.yml
+++ b/ansible/roles/sahara/defaults/main.yml
@@ -75,3 +75,4 @@ openstack_sahara_auth: "{{ openstack_auth }}"
 sahara_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 sahara_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 sahara_dev_mode: "{{ kolla_dev_mode }}"
+sahara_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/sahara/tasks/clone.yml b/ansible/roles/sahara/tasks/clone.yml
index 401c913b0b..ae22e136d5 100644
--- a/ansible/roles/sahara/tasks/clone.yml
+++ b/ansible/roles/sahara/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ sahara_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ sahara_dev_repos_pull }}"
+    version: "{{ sahara_source_version }}"
diff --git a/ansible/roles/senlin/defaults/main.yml b/ansible/roles/senlin/defaults/main.yml
index 26027d9525..f79b53e8b8 100644
--- a/ansible/roles/senlin/defaults/main.yml
+++ b/ansible/roles/senlin/defaults/main.yml
@@ -71,3 +71,4 @@ openstack_senlin_auth: "{{ openstack_auth }}"
 senlin_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 senlin_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 senlin_dev_mode: "{{ kolla_dev_mode }}"
+senlin_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/senlin/tasks/clone.yml b/ansible/roles/senlin/tasks/clone.yml
index 453b3e4234..1ab389a8d0 100644
--- a/ansible/roles/senlin/tasks/clone.yml
+++ b/ansible/roles/senlin/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ senlin_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ senlin_dev_repos_pull }}"
+    version: "{{ senlin_source_version }}"
diff --git a/ansible/roles/solum/defaults/main.yml b/ansible/roles/solum/defaults/main.yml
index 92d68f4106..150fd0b74f 100644
--- a/ansible/roles/solum/defaults/main.yml
+++ b/ansible/roles/solum/defaults/main.yml
@@ -107,3 +107,4 @@ openstack_solum_auth: "{{ openstack_auth }}"
 solum_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 solum_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 solum_dev_mode: "{{ kolla_dev_mode }}"
+solum_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/solum/tasks/clone.yml b/ansible/roles/solum/tasks/clone.yml
index 6058344995..8a434af9e0 100644
--- a/ansible/roles/solum/tasks/clone.yml
+++ b/ansible/roles/solum/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ solum_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ solum_dev_repos_pull }}"
+    version: "{{ solum_source_version }}"
diff --git a/ansible/roles/tacker/defaults/main.yml b/ansible/roles/tacker/defaults/main.yml
index 4ad540b951..dbcbae4e7f 100644
--- a/ansible/roles/tacker/defaults/main.yml
+++ b/ansible/roles/tacker/defaults/main.yml
@@ -68,3 +68,4 @@ openstack_tacker_auth: "{{ openstack_auth }}"
 tacker_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 tacker_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 tacker_dev_mode: "{{ kolla_dev_mode }}"
+tacker_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/tacker/tasks/clone.yml b/ansible/roles/tacker/tasks/clone.yml
index 0f724ae0a9..e36cd776d9 100644
--- a/ansible/roles/tacker/tasks/clone.yml
+++ b/ansible/roles/tacker/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ tacker_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ tacker_dev_repos_pull }}"
+    version: "{{ tacker_source_version }}"
diff --git a/ansible/roles/vitrage/defaults/main.yml b/ansible/roles/vitrage/defaults/main.yml
index 3b705e6381..6b04b7631c 100644
--- a/ansible/roles/vitrage/defaults/main.yml
+++ b/ansible/roles/vitrage/defaults/main.yml
@@ -151,3 +151,4 @@ vitrage_datasources: "{{ vitrage_datasource | selectattr('enabled', 'equalto', t
 vitrage_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 vitrage_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 vitrage_dev_mode: "{{ kolla_dev_mode }}"
+vitrage_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/vitrage/tasks/clone.yml b/ansible/roles/vitrage/tasks/clone.yml
index 6a44ee63c6..3e42798309 100644
--- a/ansible/roles/vitrage/tasks/clone.yml
+++ b/ansible/roles/vitrage/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ vitrage_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ vitrage_dev_repos_pull }}"
+    version: "{{ vitrage_source_version }}"
diff --git a/ansible/roles/watcher/defaults/main.yml b/ansible/roles/watcher/defaults/main.yml
index d143bb38e9..b50833d343 100644
--- a/ansible/roles/watcher/defaults/main.yml
+++ b/ansible/roles/watcher/defaults/main.yml
@@ -87,3 +87,4 @@ openstack_watcher_auth: "{{ openstack_auth }}"
 watcher_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 watcher_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 watcher_dev_mode: "{{ kolla_dev_mode }}"
+watcher_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/watcher/tasks/clone.yml b/ansible/roles/watcher/tasks/clone.yml
index 47c1b86be0..53bb788eea 100644
--- a/ansible/roles/watcher/tasks/clone.yml
+++ b/ansible/roles/watcher/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ watcher_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ watcher_dev_repos_pull }}"
+    version: "{{ watcher_source_version }}"
diff --git a/ansible/roles/zun/defaults/main.yml b/ansible/roles/zun/defaults/main.yml
index 52e1084994..40d7a4c893 100644
--- a/ansible/roles/zun/defaults/main.yml
+++ b/ansible/roles/zun/defaults/main.yml
@@ -90,3 +90,4 @@ openstack_zun_auth: "{{ openstack_auth }}"
 zun_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 zun_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 zun_dev_mode: "{{ kolla_dev_mode }}"
+zun_source_version: "{{ kolla_source_version }}"
diff --git a/ansible/roles/zun/tasks/clone.yml b/ansible/roles/zun/tasks/clone.yml
index c3f35c2504..3f71539a2d 100644
--- a/ansible/roles/zun/tasks/clone.yml
+++ b/ansible/roles/zun/tasks/clone.yml
@@ -4,3 +4,4 @@
     repo: "{{ zun_git_repository }}"
     dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
     update: "{{ zun_dev_repos_pull }}"
+    version: "{{ zun_source_version }}"