From c3c7b4827ecce684886ff05403e1b44000ad214c Mon Sep 17 00:00:00 2001 From: caoyuan Date: Fri, 13 Apr 2018 00:47:35 +0800 Subject: [PATCH] dev mode: Add support for mistral Provide support for kolla dev mode in mistral. When 'kolla_dev_mode' or 'mistral_dev_mode' variables are enabled, source code of mistral project is cloned and bind mounted. Partially implements: blueprint mount-sources Co-Authored-By: chenqiaomin Change-Id: I6e5f9b1a6b35dbb672905987e715cae4bf10af7f --- ansible/roles/mistral/defaults/main.yml | 10 ++++++++++ ansible/roles/mistral/handlers/main.yml | 6 +++--- ansible/roles/mistral/tasks/bootstrap_service.yml | 2 +- ansible/roles/mistral/tasks/clone.yml | 6 ++++++ ansible/roles/mistral/tasks/config.yml | 2 +- ansible/roles/mistral/tasks/deploy.yml | 3 +++ 6 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 ansible/roles/mistral/tasks/clone.yml diff --git a/ansible/roles/mistral/defaults/main.yml b/ansible/roles/mistral/defaults/main.yml index 7fa09e23f9..1c651445d2 100644 --- a/ansible/roles/mistral/defaults/main.yml +++ b/ansible/roles/mistral/defaults/main.yml @@ -11,6 +11,7 @@ mistral_services: - "{{ node_config_directory }}/mistral-api/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" - "kolla_logs:/var/log/kolla/" + - "{{ kolla_dev_repos_directory ~ '/mistral/mistral:/var/lib/kolla/venv/lib/python2.7/site-packages/mistral' if mistral_dev_mode | bool else '' }}" mistral-engine: container_name: mistral_engine group: mistral-engine @@ -20,6 +21,7 @@ mistral_services: - "{{ node_config_directory }}/mistral-engine/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" - "kolla_logs:/var/log/kolla/" + - "{{ kolla_dev_repos_directory ~ '/mistral/mistral:/var/lib/kolla/venv/lib/python2.7/site-packages/mistral' if mistral_dev_mode | bool else '' }}" mistral-executor: container_name: mistral_executor group: mistral-executor @@ -29,6 +31,7 @@ mistral_services: - "{{ node_config_directory }}/mistral-executor/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" - "kolla_logs:/var/log/kolla/" + - "{{ kolla_dev_repos_directory ~ '/mistral/mistral:/var/lib/kolla/venv/lib/python2.7/site-packages/mistral' if mistral_dev_mode | bool else '' }}" #################### @@ -70,3 +73,10 @@ mistral_logging_debug: "{{ openstack_logging_debug }}" mistral_keystone_user: "mistral" openstack_mistral_auth: "{{ openstack_auth }}" + +#################### +# Kolla +#################### +mistral_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}" +mistral_dev_repos_pull: "{{ kolla_dev_repos_pull }}" +mistral_dev_mode: "{{ kolla_dev_mode }}" diff --git a/ansible/roles/mistral/handlers/main.yml b/ansible/roles/mistral/handlers/main.yml index 5cf73cf0f2..1ed3c9baa0 100644 --- a/ansible/roles/mistral/handlers/main.yml +++ b/ansible/roles/mistral/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 }}" when: - kolla_action != "config" - inventory_hostname in groups[service.group] @@ -58,7 +58,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] diff --git a/ansible/roles/mistral/tasks/bootstrap_service.yml b/ansible/roles/mistral/tasks/bootstrap_service.yml index 58d4a796bb..42a81b1bfb 100644 --- a/ansible/roles/mistral/tasks/bootstrap_service.yml +++ b/ansible/roles/mistral/tasks/bootstrap_service.yml @@ -14,6 +14,6 @@ BOOTSTRAP: name: "bootstrap_mistral" restart_policy: "never" - volumes: "{{ mistral_api.volumes }}" + volumes: "{{ mistral_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[mistral_api.group][0] }}" diff --git a/ansible/roles/mistral/tasks/clone.yml b/ansible/roles/mistral/tasks/clone.yml new file mode 100644 index 0000000000..051e4ab410 --- /dev/null +++ b/ansible/roles/mistral/tasks/clone.yml @@ -0,0 +1,6 @@ +--- +- name: Cloning mistral source repository for development + git: + repo: "{{ mistral_git_repository }}" + dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}" + update: "{{ mistral_dev_repos_pull }}" diff --git a/ansible/roles/mistral/tasks/config.yml b/ansible/roles/mistral/tasks/config.yml index 07ac83e86b..cc22c9d96a 100644 --- a/ansible/roles/mistral/tasks/config.yml +++ b/ansible/roles/mistral/tasks/config.yml @@ -83,7 +83,7 @@ common_options: "{{ docker_common_options }}" name: "{{ item.value.container_name }}" image: "{{ item.value.image }}" - volumes: "{{ item.value.volumes }}" + volumes: "{{ item.value.volumes|reject('equalto', '')|list }}" register: check_mistral_containers when: - kolla_action != "config" diff --git a/ansible/roles/mistral/tasks/deploy.yml b/ansible/roles/mistral/tasks/deploy.yml index e8b3e135cd..4ca5aa737a 100644 --- a/ansible/roles/mistral/tasks/deploy.yml +++ b/ansible/roles/mistral/tasks/deploy.yml @@ -7,6 +7,9 @@ inventory_hostname in groups['mistral-engine'] or inventory_hostname in groups['mistral-executor'] +- include: clone.yml + when: mistral_dev_mode | bool + - include: bootstrap.yml when: inventory_hostname in groups['mistral-api']