From 7215a537c77519a672edc94f47c4c64170f4e287 Mon Sep 17 00:00:00 2001 From: caoyuan Date: Thu, 12 Apr 2018 23:37:37 +0800 Subject: [PATCH] dev mode: Add support for barbican Provide support fot kolla dev mode in barbican. When 'kolla_dev_mode' or 'barbican_dev_mode' variables are enabled, source code of barbican project is cloned and bindmounted. Partially implements: blueprint mount-sources Change-Id: I8d48c43cf599548b4536285759ed0078f359538e --- ansible/roles/barbican/defaults/main.yml | 12 ++++++++++++ ansible/roles/barbican/handlers/main.yml | 6 +++--- ansible/roles/barbican/tasks/bootstrap_service.yml | 2 +- ansible/roles/barbican/tasks/clone.yml | 6 ++++++ ansible/roles/barbican/tasks/config.yml | 2 +- ansible/roles/barbican/tasks/deploy.yml | 3 +++ 6 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 ansible/roles/barbican/tasks/clone.yml diff --git a/ansible/roles/barbican/defaults/main.yml b/ansible/roles/barbican/defaults/main.yml index 199303f052..a1a06edf64 100644 --- a/ansible/roles/barbican/defaults/main.yml +++ b/ansible/roles/barbican/defaults/main.yml @@ -12,6 +12,7 @@ barbican_services: - "/etc/localtime:/etc/localtime:ro" - "barbican:/var/lib/barbican/" - "kolla_logs:/var/log/kolla/" + - "{{ kolla_dev_repos_directory ~ '/barbican/barbican:/var/lib/kolla/venv/lib/python2.7/site-packages/barbican' if barbican_dev_mode | bool else '' }}" barbican-keystone-listener: container_name: barbican_keystone_listener group: barbican-keystone-listener @@ -21,6 +22,7 @@ barbican_services: - "{{ node_config_directory }}/barbican-keystone-listener/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" - "kolla_logs:/var/log/kolla/" + - "{{ kolla_dev_repos_directory ~ '/barbican/barbican:/var/lib/kolla/venv/lib/python2.7/site-packages/barbican' if barbican_dev_mode | bool else '' }}" barbican-worker: container_name: barbican_worker group: barbican-worker @@ -30,6 +32,8 @@ barbican_services: - "{{ node_config_directory }}/barbican-worker/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" - "kolla_logs:/var/log/kolla/" + - "{{ kolla_dev_repos_directory ~ '/barbican/barbican:/var/lib/kolla/venv/lib/python2.7/site-packages/barbican' if barbican_dev_mode | bool else '' }}" + #################### # Database @@ -74,3 +78,11 @@ barbican_observer_role: "observer" barbican_audit_role: "audit" openstack_barbican_auth: "{{ openstack_auth }}" + + +#################### +# Kolla +#################### +barbican_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}" +barbican_dev_repos_pull: "{{ kolla_dev_repos_pull }}" +barbican_dev_mode: "{{ kolla_dev_mode }}" diff --git a/ansible/roles/barbican/handlers/main.yml b/ansible/roles/barbican/handlers/main.yml index 90f1080ed2..df1b8938ff 100644 --- a/ansible/roles/barbican/handlers/main.yml +++ b/ansible/roles/barbican/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] @@ -37,7 +37,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] @@ -60,7 +60,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/barbican/tasks/bootstrap_service.yml b/ansible/roles/barbican/tasks/bootstrap_service.yml index 862b727c0a..a7cd8089eb 100644 --- a/ansible/roles/barbican/tasks/bootstrap_service.yml +++ b/ansible/roles/barbican/tasks/bootstrap_service.yml @@ -14,6 +14,6 @@ BOOTSTRAP: name: "bootstrap_barbican" restart_policy: "never" - volumes: "{{ barbican_api.volumes }}" + volumes: "{{ barbican_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[barbican_api.group][0] }}" diff --git a/ansible/roles/barbican/tasks/clone.yml b/ansible/roles/barbican/tasks/clone.yml new file mode 100644 index 0000000000..573965753b --- /dev/null +++ b/ansible/roles/barbican/tasks/clone.yml @@ -0,0 +1,6 @@ +--- +- name: Cloning barbican source repository for development + git: + repo: "{{ barbican_git_repository }}" + dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}" + update: "{{ barbican_dev_repos_pull }}" diff --git a/ansible/roles/barbican/tasks/config.yml b/ansible/roles/barbican/tasks/config.yml index a9dd04395b..44165deae5 100644 --- a/ansible/roles/barbican/tasks/config.yml +++ b/ansible/roles/barbican/tasks/config.yml @@ -128,7 +128,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_barbican_containers when: - kolla_action != "config" diff --git a/ansible/roles/barbican/tasks/deploy.yml b/ansible/roles/barbican/tasks/deploy.yml index 3951ff2902..7990dda9c5 100644 --- a/ansible/roles/barbican/tasks/deploy.yml +++ b/ansible/roles/barbican/tasks/deploy.yml @@ -7,6 +7,9 @@ inventory_hostname in groups['barbican-worker'] or inventory_hostname in groups['barbican-keystone-listener'] +- include: clone.yml + when: barbican_dev_mode | bool + - include: bootstrap.yml when: inventory_hostname in groups['barbican-api']