From 0b8721141f9b526ba4902f5cfc53f05c2fc0758e Mon Sep 17 00:00:00 2001 From: Jean-Philippe Evrard Date: Wed, 6 Jul 2016 10:10:52 +0100 Subject: [PATCH] Use UCA for non-OVS neutron This commit refactors tasks to allow the use of UCA for Linux Bridge. It also changes default behavior: now every neutron install will make use of Ubuntu Cloud Archive, unless mentionned. Closes-Bug: 1497272 Closes-Bug: 1433172 Change-Id: I4373f544eb178720f33795a71adae925a8b8cb03 Signed-off-by: Jean-Philippe Evrard --- defaults/main.yml | 2 + .../use-uca-by-default-070751b0b388fcbe.yaml | 6 +++ tasks/main.yml | 6 --- tasks/neutron_install-apt.yml | 34 +++++++++++++- tasks/ovs_install-apt.yml | 45 ------------------- tasks/ovs_install.yml | 20 --------- tests/inventory | 2 + 7 files changed, 43 insertions(+), 72 deletions(-) create mode 100644 releasenotes/notes/use-uca-by-default-070751b0b388fcbe.yaml delete mode 100644 tasks/ovs_install-apt.yml delete mode 100644 tasks/ovs_install.yml diff --git a/defaults/main.yml b/defaults/main.yml index 98e22bab..7b76d25d 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -38,6 +38,8 @@ neutron_developer_constraints: - "git+{{ neutron_lbaas_git_repo }}@{{ neutron_lbaas_git_install_branch }}#egg=neutron-lbaas" - "git+{{ neutron_vpnaas_git_repo }}@{{ neutron_vpnaas_git_install_branch }}#egg=neutron-vpnaas" +neutron_use_uca: True + # Name of the virtual env to deploy into neutron_venv_tag: untagged neutron_bin: "/openstack/venvs/neutron-{{ neutron_venv_tag }}/bin" diff --git a/releasenotes/notes/use-uca-by-default-070751b0b388fcbe.yaml b/releasenotes/notes/use-uca-by-default-070751b0b388fcbe.yaml new file mode 100644 index 00000000..f96b65e2 --- /dev/null +++ b/releasenotes/notes/use-uca-by-default-070751b0b388fcbe.yaml @@ -0,0 +1,6 @@ +--- +other: + - Neutron now makes use of ubuntu cloud archive by + default. This can be disabled by setting + ``neutron_use_uca`` to ``False`` in your user + variables. diff --git a/tasks/main.yml b/tasks/main.yml index 52c032bd..b8f507e2 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -36,12 +36,6 @@ tags: - always -- include: ovs_install.yml - when: - - neutron_services['neutron-openvswitch-agent']['group'] in group_names - - inventory_hostname in groups[neutron_services['neutron-openvswitch-agent']['group']] - - neutron_services['neutron-openvswitch-agent'].service_en | bool - - include: neutron_check.yml - include: neutron_pre_install.yml - include: neutron_install.yml diff --git a/tasks/neutron_install-apt.yml b/tasks/neutron_install-apt.yml index 918d9011..d1e5ad68 100644 --- a/tasks/neutron_install-apt.yml +++ b/tasks/neutron_install-apt.yml @@ -13,6 +13,20 @@ # See the License for the specific language governing permissions and # limitations under the License. +- name: Add Ubuntu Cloud Archive keyring + apt: + pkg: ubuntu-cloud-keyring + state: latest + register: add_uca_keys + when: neutron_use_uca | bool + +- name: Add Ubuntu Cloud Archive Repository + apt_repository: + repo: "{{ uca_repo }}" + state: present + register: add_uca_repo + when: neutron_use_uca | bool + #TODO(evrardjp): Replace the next 2 tasks by a standard apt with cache #when https://github.com/ansible/ansible-modules-core/pull/1517 is merged #in 1.9.x or we move to 2.0 (if tested working) @@ -26,7 +40,8 @@ - name: Update apt if needed apt: update_cache: yes - when: "ansible_date_time.epoch|float - apt_cache_stat.stat.mtime > {{cache_timeout}}" + when: ("ansible_date_time.epoch|float - apt_cache_stat.stat.mtime > {{cache_timeout}}" or + add_uca_keys | changed or add_uca_repo | changed) tags: - neutron-apt-packages @@ -60,6 +75,23 @@ - neutron-install - neutron-apt-packages +- name: Install apt packages for ovs + apt: + pkg: "{{ item }}" + state: latest + register: install_packages + until: install_packages|success + retries: 5 + delay: 2 + with_items: "{{ ovs_apt_packages }}" + when: + - inventory_hostname in groups[neutron_services['neutron-openvswitch-agent']['group']] + - neutron_services['neutron-openvswitch-agent']['group'] in group_names + - neutron_services['neutron-openvswitch-agent'].service_en | bool + tags: + - neutron-install + - neutron-apt-packages + - name: Install apt packages for LBaaS apt: pkg: "{{ item }}" diff --git a/tasks/ovs_install-apt.yml b/tasks/ovs_install-apt.yml deleted file mode 100644 index 5b5d4f15..00000000 --- a/tasks/ovs_install-apt.yml +++ /dev/null @@ -1,45 +0,0 @@ ---- -# Copyright 2016, Walmart Stores, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -- name: Add Ubuntu Cloud Archive keyring - apt: - pkg: ubuntu-cloud-keyring - state: latest - register: add_uca_keys - -- name: Add Ubuntu Cloud Archive Repository - apt_repository: - repo: "{{ uca_repo }}" - state: present - register: add_uca_repo - -- name: Update apt cache after repo addition - apt: - update_cache: yes - when: add_uca_keys | changed or - add_uca_repo | changed - -- name: Install apt packages - apt: - pkg: "{{ item }}" - state: latest - register: install_packages - until: install_packages|success - retries: 5 - delay: 2 - with_items: "{{ ovs_apt_packages }}" - tags: - - ovs-install - - ovs-apt-packages diff --git a/tasks/ovs_install.yml b/tasks/ovs_install.yml deleted file mode 100644 index d04fe8b7..00000000 --- a/tasks/ovs_install.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -# Copyright 2016, Walmart Stores, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -- include: ovs_install-apt.yml - when: - - ansible_pkg_mgr == 'apt' - tags: - - install-apt diff --git a/tests/inventory b/tests/inventory index ec0a13e4..94531861 100644 --- a/tests/inventory +++ b/tests/inventory @@ -29,6 +29,8 @@ openstack1 [neutron_linuxbridge_agent] openstack1 +[neutron_openvswitch_agent] + [neutron_metering_agent] openstack1