diff --git a/ansible/roles/ironic/defaults/main.yml b/ansible/roles/ironic/defaults/main.yml index 3b91bcce3aa5e0a83e2948a33cfa0660515eea50..64a76e13c47e40db9b2b877e4cc620e68b4c4860 100644 --- a/ansible/roles/ironic/defaults/main.yml +++ b/ansible/roles/ironic/defaults/main.yml @@ -11,6 +11,7 @@ ironic_services: - "{{ node_config_directory }}/ironic-api/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" - "kolla_logs:/var/log/kolla" + - "{{ kolla_dev_repos_directory ~ '/ironic/ironic:/var/lib/kolla/venv/lib/python2.7/site-packages/ironic' if ironic_dev_mode | bool else '' }}" ironic-conductor: container_name: ironic_conductor group: ironic-conductor @@ -28,6 +29,7 @@ ironic_services: - "ironic:/var/lib/ironic" - "ironic_pxe:/tftpboot/" - "ironic_ipxe:/httpboot/" + - "{{ kolla_dev_repos_directory ~ '/ironic/ironic:/var/lib/kolla/venv/lib/python2.7/site-packages/ironic' if ironic_dev_mode | bool else '' }}" ironic-inspector: container_name: ironic_inspector group: ironic-inspector @@ -38,6 +40,7 @@ ironic_services: - "{{ node_config_directory }}/ironic-inspector/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" - "kolla_logs:/var/log/kolla" + - "{{ kolla_dev_repos_directory ~ '/ironic-inspector/ironic_inspector:/var/lib/kolla/venv/lib/python2.7/site-packages/ironic_inspector' if ironic_dev_mode | bool else '' }}" ironic-pxe: container_name: ironic_pxe group: ironic-pxe @@ -140,3 +143,12 @@ ironic_dnsmasq_boot_file: "{% if enable_ironic_ipxe | bool %}undionly.kpxe{% els ironic_cleaning_network: ironic_console_serial_speed: "115200n8" ironic_ipxe_url: http://{{ api_interface_address }}:{{ ironic_ipxe_port }} + + +#################### +## Kolla +##################### +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 }}" diff --git a/ansible/roles/ironic/handlers/main.yml b/ansible/roles/ironic/handlers/main.yml index 49ee9132e58bf6019be8476de37adbf035e687f9..903d3e44e5b47d04984c0bc31c8896d9a42643b8 100644 --- a/ansible/roles/ironic/handlers/main.yml +++ b/ansible/roles/ironic/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] @@ -36,7 +36,7 @@ name: "{{ service.container_name }}" image: "{{ service.image }}" privileged: "{{ service.privileged | default(False) }}" - volumes: "{{ service.volumes }}" + volumes: "{{ service.volumes|reject('equalto', '')|list }}" when: - kolla_action != "config" - inventory_hostname in groups[service.group] @@ -59,7 +59,7 @@ name: "{{ service.container_name }}" image: "{{ service.image }}" privileged: "{{ service.privileged | default(False) }}" - volumes: "{{ service.volumes }}" + volumes: "{{ service.volumes|reject('equalto', '')|list }}" when: - kolla_action != "config" - inventory_hostname in groups[service.group] diff --git a/ansible/roles/ironic/tasks/bootstrap_service.yml b/ansible/roles/ironic/tasks/bootstrap_service.yml index 559e15c1a9ffd7d53f7a48e8af7ce80de0516c06..0962481bca3d32a53d2d75f7d62b7c6a9049b011 100644 --- a/ansible/roles/ironic/tasks/bootstrap_service.yml +++ b/ansible/roles/ironic/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ BOOTSTRAP: name: "bootstrap_ironic" restart_policy: "never" - volumes: "{{ ironic_api.volumes }}" + volumes: "{{ ironic_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[ironic_api.group][0] }}" when: inventory_hostname in groups[ironic_api.group] @@ -34,7 +34,7 @@ BOOTSTRAP: name: "bootstrap_ironic_inspector" restart_policy: "never" - volumes: "{{ ironic_inspector.volumes }}" + volumes: "{{ ironic_inspector.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[ironic_inspector.group][0] }}" when: inventory_hostname in groups[ironic_inspector.group] diff --git a/ansible/roles/ironic/tasks/clone.yml b/ansible/roles/ironic/tasks/clone.yml new file mode 100644 index 0000000000000000000000000000000000000000..6a01b8cf677d11d3a33ccada185eb0c756999b3a --- /dev/null +++ b/ansible/roles/ironic/tasks/clone.yml @@ -0,0 +1,12 @@ +--- +- name: Cloning ironic source repository for development + git: + repo: "{{ ironic_git_repository }}" + dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}" + update: "{{ ironic_dev_repos_pull }}" + +- 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 }}" diff --git a/ansible/roles/ironic/tasks/config.yml b/ansible/roles/ironic/tasks/config.yml index 99f284e23f908bf94bec68058a51fe6f189305c4..e821726a8f40b4b546d7a8e4b9146f0ab62cc1cb 100644 --- a/ansible/roles/ironic/tasks/config.yml +++ b/ansible/roles/ironic/tasks/config.yml @@ -258,7 +258,7 @@ image: "{{ item.value.image }}" privileged: "{{ item.value.privileged|default(False) }}" cap_add: "{{ item.value.cap_add|default([]) }}" - volumes: "{{ item.value.volumes }}" + volumes: "{{ item.value.volumes|reject('equalto', '')|list }}" register: check_ironic_containers when: - kolla_action != "config" diff --git a/ansible/roles/ironic/tasks/deploy.yml b/ansible/roles/ironic/tasks/deploy.yml index d599fbe5181f9de84bfceb1fafb1ca184e3ff787..898363357a6e72889630d2e51a92625081417f4a 100644 --- a/ansible/roles/ironic/tasks/deploy.yml +++ b/ansible/roles/ironic/tasks/deploy.yml @@ -11,6 +11,9 @@ inventory_hostname in groups['ironic-pxe'] or inventory_hostname in groups['ironic-ipxe'] +- include: clone.yml + when: ironic_dev_mode | bool + - include: bootstrap.yml when: inventory_hostname in groups['ironic-api'] or inventory_hostname in groups['ironic-inspector'] or