From 7f7bb1b44816a13748e3e87f72722e0dcb940fe0 Mon Sep 17 00:00:00 2001 From: "wu.chunyang" <wuchunyang@yovole.com> Date: Thu, 13 Aug 2020 14:15:03 +0800 Subject: [PATCH] Register resources info for octavia upgrading kolla-ansible upgrade failed when octavia_auto_configure set to true. because upgrade action don't register the resources info. this change adds some tasks to query the resources info for upgrade action in octavia role. Change-Id: I4b0ac001b38bee81d983dd68534b9d0e78b4f6d7 --- .../octavia/tasks/get_resources_info.yml | 67 +++++++++++++++++++ ansible/roles/octavia/tasks/upgrade.yml | 3 + .../roles/octavia/templates/octavia.conf.j2 | 2 +- 3 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 ansible/roles/octavia/tasks/get_resources_info.yml diff --git a/ansible/roles/octavia/tasks/get_resources_info.yml b/ansible/roles/octavia/tasks/get_resources_info.yml new file mode 100644 index 0000000000..d5e13f01e3 --- /dev/null +++ b/ansible/roles/octavia/tasks/get_resources_info.yml @@ -0,0 +1,67 @@ +--- +- name: Get amphora flavor info + become: true + kolla_toolbox: + module_name: os_flavor_info + module_args: + auth: "{{ octavia_user_auth }}" + cacert: "{{ openstack_cacert }}" + endpoint_type: "{{ openstack_interface }}" + region_name: "{{ openstack_region_name }}" + name: "{{ octavia_amp_flavor.name }}" + run_once: True + delegate_to: "{{ groups['octavia-api'][0] }}" + register: flavor_results + +- name: Get {{ octavia_service_auth_project }} project id + become: True + kolla_toolbox: + module_name: os_project_info + module_args: + auth: "{{ octavia_user_auth }}" + cacert: "{{ openstack_cacert }}" + endpoint_type: "{{ openstack_interface }}" + region_name: "{{ openstack_region_name }}" + name: "{{ octavia_service_auth_project }}" + run_once: True + delegate_to: "{{ groups['octavia-api'][0] }}" + register: project_info + +# NOTE(wuchunyang): ansible doesn't have a module to query security groups +# let's use os_security_group module instead. +- name: Get security groups for octavia + become: true + kolla_toolbox: + module_name: os_security_group + module_args: + auth: "{{ octavia_user_auth }}" + cacert: "{{ openstack_cacert }}" + endpoint_type: "{{ openstack_interface }}" + region_name: "{{ openstack_region_name }}" + state: present + name: "{{ item.name }}" + loop: "{{ octavia_amp_security_groups.values() | list }}" + loop_control: + label: "{{ item.name }}" + run_once: True + delegate_to: "{{ groups['octavia-api'][0] }}" + register: sec_grp_info + +- name: Get loadbalancer management network + become: true + kolla_toolbox: + module_name: os_networks_info + module_args: + auth: "{{ octavia_user_auth }}" + cacert: "{{ openstack_cacert }}" + endpoint_type: "{{ openstack_interface }}" + region_name: "{{ openstack_region_name }}" + name: "{{ octavia_amp_network['name'] }}" + register: network_results + run_once: True + delegate_to: "{{ groups['octavia-api'][0] }}" + +- name: Set octavia resources facts + set_fact: + network_info: "{{ network_results.openstack_networks.0 }}" + amphora_flavor_info: "{{ flavor_results.openstack_flavors.0 }}" diff --git a/ansible/roles/octavia/tasks/upgrade.yml b/ansible/roles/octavia/tasks/upgrade.yml index 6ba9f99799..becb086045 100644 --- a/ansible/roles/octavia/tasks/upgrade.yml +++ b/ansible/roles/octavia/tasks/upgrade.yml @@ -1,4 +1,7 @@ --- +- include_tasks: get_resources_info.yml + when: octavia_auto_configure | bool + - import_tasks: config.yml - import_tasks: check-containers.yml diff --git a/ansible/roles/octavia/templates/octavia.conf.j2 b/ansible/roles/octavia/templates/octavia.conf.j2 index 9292a245ed..9898fa5bea 100644 --- a/ansible/roles/octavia/templates/octavia.conf.j2 +++ b/ansible/roles/octavia/templates/octavia.conf.j2 @@ -89,7 +89,7 @@ amp_flavor_id = {{ octavia_amp_flavor_id }} amp_image_owner_id = {{ project_info.openstack_projects.0.id }} amp_boot_network_list = {{ network_info.id }} amp_secgroup_list = {{ (sec_grp_info.results | selectattr('secgroup.name', 'equalto', octavia_amp_security_groups['mgmt-sec-grp'].name) | list).0.secgroup.id }} -amp_flavor_id = {{ amphora_flavor_info.flavor.id }} +amp_flavor_id = {{ amphora_flavor_info.id }} {% endif %} client_ca = /etc/octavia/certs/client_ca.cert.pem