From 3341ce834ff6e2ae9a4075387fb82e6133f406c8 Mon Sep 17 00:00:00 2001 From: Mohammed Naser Date: Fri, 31 May 2019 18:37:37 -0400 Subject: [PATCH] powervm: drop support The PowerVM driver has been untested for a few years as well as broken due to using the wrong driver as well. It's not possible to test it within our infrastructure neither has there been any contributions to improve/fix it. This patch drops the support for it. Change-Id: Iea84648c7ff65b5a4d8b97957fb92716578f714d --- defaults/main.yml | 9 -- doc/source/app-powervm.rst | 112 ------------------ doc/source/index.rst | 3 - .../notes/drop-powervm-6fed6605a4bf72cf.yaml | 5 + .../drivers/powervm/nova_compute_powervm.yml | 59 --------- tasks/nova_install.yml | 7 -- tasks/nova_install_apt_powervm.yml | 54 --------- tasks/nova_virt_detect.yml | 9 -- templates/nova-interfaces-template.j2 | 51 -------- templates/nova.conf.j2 | 4 - vars/debian.yml | 23 ---- vars/distro_install.yml | 2 - vars/redhat-7.yml | 5 - vars/source_install.yml | 2 - vars/suse.yml | 5 - 15 files changed, 5 insertions(+), 345 deletions(-) delete mode 100644 doc/source/app-powervm.rst create mode 100644 releasenotes/notes/drop-powervm-6fed6605a4bf72cf.yaml delete mode 100644 tasks/drivers/powervm/nova_compute_powervm.yml delete mode 100644 tasks/nova_install_apt_powervm.yml delete mode 100644 templates/nova-interfaces-template.j2 diff --git a/defaults/main.yml b/defaults/main.yml index a9a0bafa..6baa6a7c 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -172,10 +172,6 @@ nova_virt_types: nova_reserved_host_memory_mb: 2048 nova_scheduler_tracks_instance_changes: True nova_cpu_mode: "none" - powervm: - nova_compute_driver: powervm.driver.PowerVMDriver - nova_reserved_host_memory_mb: 8192 - nova_scheduler_tracks_instance_changes: True # If this is not set, then the playbook will try to guess it. @@ -190,7 +186,6 @@ nova_supported_virt_types: - kvm - lxd - ironic - - powervm ## Nova Auth nova_service_region: RegionOne @@ -565,10 +560,6 @@ nova_vendor_data_overrides: {} nova_api_metadata_uwsgi_ini_overrides: {} nova_api_os_compute_uwsgi_ini_overrides: {} -nova_compute_powervm_pip_packages: - - nova-powervm - - pyasn1-modules - lxd_bind_address: 0.0.0.0 lxd_bind_port: 8443 diff --git a/doc/source/app-powervm.rst b/doc/source/app-powervm.rst deleted file mode 100644 index c46bbe89..00000000 --- a/doc/source/app-powervm.rst +++ /dev/null @@ -1,112 +0,0 @@ -`Home `_ OpenStack-Ansible Neutron - -===================================== -Scenario - Using PowerVM Nova plugin -===================================== - -Prerequisites -~~~~~~~~~~~~~ - -In order to use the PowerVM OpenStack drivers with OpenStack-Ansible (OSA), the -following pre-requisites must be fulfilled: - - - At least one of the repo-build servers must be ppc64le. Can mix and match - repo-build servers between x86 and ppc64le. - - - The compute nodes should be pre-configured for PowerVM with the NovaLink_ - feature. - - - The NovaLink Management VM needs at least one direct attach I/O card. - OpenStack Ansible is currently able to deploy the PowerVM drivers when - paired with the Open vSwitch agent. The traditional PowerVM Shared Ethernet - Adapter networking agent is not yet supported. - - - The network topology on the NovaLink must match a supported OpenStack - Ansible network configuration. - -.. _NovaLink: http://www.ibm.com/support/knowledgecenter/POWER8/p8eig/p8eig_kickoff.htm?cp=POWER8 - - -PowerVM usage -~~~~~~~~~~~~~ - -The Compute driver for OpenStack-Ansible should automatically detect that it -is of type PowerVM. If the user has specified a specific compute type, that -is applicable to the whole cloud. It is advised that the you allow OSA to -detect the appropriate compute node type. - -The full set of configuration options for the PowerVM driver can be -found in the ``nova-powervm`` usage_. - -.. _usage: http://nova-powervm.readthedocs.io/en/latest/devref/usage.html - - -Configuring storage -~~~~~~~~~~~~~~~~~~~ - -There are various storage back ends available for PowerVM such as local disk -and shared storage pools. For example, to enable local disk storage backed by -a logical volume group, you can set: - -.. code-block:: yaml - - nova_nova_conf_overrides: - powervm: - disk_driver: localdisk - volume_group_name: <> - -To enable iSCSI as the volume attachment type, you can set the -``volume_adapter`` setting: - -.. code-block:: yaml - - nova_nova_conf_overrides: - powervm: - volume_adapter: iscsi - -The default volume attachment type for PowerVM is fibre channel. - -Enabling VNC console -~~~~~~~~~~~~~~~~~~~~ - -PowerVM only supports connecting to instance consoles over VNC. As -OpenStack-Ansible defaults to Spice console, you must set the -``nova_console_type`` variable to enable NoVNC: - -.. code-block:: yaml - - nova_console_type: novnc - - -Enabling configuration drive -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -By default, PowerVM uses configuration drives to provide configuration -information to instances built by nova. To enable this support in -OpenStack-Ansible, you can set the ``nova_force_config_drive`` -variable as documented in the `nova configuration instructions`_. - -.. _nova configuration instructions: ./configure-nova.html#config-drive - -Additionally, you can enable flat network injection by using the -``nova_nova_conf_overrides`` variable: - -.. code-block:: yaml - - nova_nova_conf_overrides: - DEFAULT: - flat_injected: True - -Enabling PowerVM RMC -~~~~~~~~~~~~~~~~~~~~ - -To enable PowerVM RMC_, IPv4/IPv6 dual-stack mode must be enabled. To do this, -you must set ``use_ipv6`` using the ``nova_nova_conf_overrides`` variable: - -.. code-block:: yaml - - nova_nova_conf_overrides: - DEFAULT: - use_ipv6: True - -.. _RMC: http://www.ibm.com/support/knowledgecenter/8284-22A/p8eig/p8eig_rmc.htm diff --git a/doc/source/index.rst b/doc/source/index.rst index 037c2fbd..7941850e 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -6,7 +6,6 @@ Nova role for OpenStack-Ansible :maxdepth: 2 configure-nova.rst - app-powervm.rst :tags: openstack, nova, cloud, ansible :category: \*nix @@ -81,13 +80,11 @@ compute drivers are supported: - libvirt (default) - ironic - lxd (via nova-lxd) -- powervm (via nova-powervm) The driver type is automatically detected by the OpenStack Ansible Nova role for the following compute driver types: - libvirt (kvm / qemu) -- powervm Any mix and match of compute node types can be used for those platforms, except for ironic. diff --git a/releasenotes/notes/drop-powervm-6fed6605a4bf72cf.yaml b/releasenotes/notes/drop-powervm-6fed6605a4bf72cf.yaml new file mode 100644 index 00000000..b2a6b045 --- /dev/null +++ b/releasenotes/notes/drop-powervm-6fed6605a4bf72cf.yaml @@ -0,0 +1,5 @@ +--- +deprecations: + - The PowerVM driver has been removed as it is not tested and + it has been broken since late 2016 due to the driver name + being renamed to powervm_ext instead of powervm. diff --git a/tasks/drivers/powervm/nova_compute_powervm.yml b/tasks/drivers/powervm/nova_compute_powervm.yml deleted file mode 100644 index 89516b84..00000000 --- a/tasks/drivers/powervm/nova_compute_powervm.yml +++ /dev/null @@ -1,59 +0,0 @@ ---- -# Copyright 2016, IBM Corp. -# -# 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: Install pip packages - pip: - name: "{{ nova_compute_powervm_pip_packages }}" - state: "{{ nova_pip_package_state }}" - virtualenv: "{{ nova_bin | dirname }}" - virtualenv_site_packages: "no" - extra_args: >- - {{ nova_developer_mode | ternary(pip_install_developer_constraints | default('--constraint /opt/developer-pip-constraints.txt'), '') }} - {{ (pip_install_upper_constraints is defined) | ternary('--constraint ' + pip_install_upper_constraints | default(''),'') }} - {{ pip_install_options|default('') }} - register: install_packages - until: install_packages is success - retries: 5 - delay: 2 - tags: - - nova-install - - nova-pip-packages - -- name: Add nova user to pvm_admin group - user: - name: "{{ nova_system_user_name }}" - groups: "pvm_admin" - append: "yes" - tags: - - nova-install - - nova-powervm - -- name: Ensure powervm permissions - command: "udevadm trigger" - changed_when: false - tags: - - nova-config - - nova-powervm - -- name: Template Nova interfaces file - template: - src: nova-interfaces-template.j2 - dest: /etc/nova/nova-interfaces-template - owner: "root" - group: "root" - mode: 0644 - tags: - - nova-config - - nova-powervm diff --git a/tasks/nova_install.yml b/tasks/nova_install.yml index cd0547f9..ee60c939 100644 --- a/tasks/nova_install.yml +++ b/tasks/nova_install.yml @@ -13,13 +13,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -- name: Setup powervm repository - include_tasks: nova_install_apt_powervm.yml - when: - - "nova_services['nova-compute']['group'] in group_names" - - "nova_virt_type == 'powervm'" - - "ansible_pkg_mgr == 'apt'" - - name: Record the installation method ini_file: dest: "/etc/ansible/facts.d/openstack_ansible.fact" diff --git a/tasks/nova_install_apt_powervm.yml b/tasks/nova_install_apt_powervm.yml deleted file mode 100644 index cff7fcfd..00000000 --- a/tasks/nova_install_apt_powervm.yml +++ /dev/null @@ -1,54 +0,0 @@ ---- -# Copyright 2017, IBM Corp. -# -# 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 novalink keys - apt_key: - url: "{{ item.url }}" - state: "{{ item.state }}" - register: add_nv_keys - until: add_nv_keys is success - retries: 5 - delay: 2 - with_items: "{{ novalink_gpg_keys }}" - tags: - - novalink-apt-keys - -# When updating the cache in the apt_repository -# task, and the update fails, a retry does not -# detect a change the second attempt and therefore -# does not update the cache, resulting in a changed -# repo config, but no updated cache. To work around -# this bug we implement the change of repo config -# and the cache update as two seperate tasks. -- name: Add novalink repo - apt_repository: - repo: "{{ novalink_repo.repo }}" - state: "{{ novalink_repo.state }}" - filename: "{{ novalink_repo.filename | default(omit) }}" - update_cache: no - register: add_nv_repos - tags: - - novalink-repo - -- name: Update Apt cache - apt: - update_cache: yes - when: add_nv_repos is changed - register: update_apt_cache - until: update_apt_cache is success - retries: 5 - delay: 2 - tags: - - novalink-repo diff --git a/tasks/nova_virt_detect.yml b/tasks/nova_virt_detect.yml index 3d20be88..f297efac 100644 --- a/tasks/nova_virt_detect.yml +++ b/tasks/nova_virt_detect.yml @@ -36,15 +36,6 @@ or (dev_kvm.stat.ischr is defined and dev_kvm.stat.ischr and ansible_architecture == 'aarch64') -- name: Register a fact for the nova powervm virt type - set_fact: - nova_virt_type: "powervm" - when: - - nova_virt_type is not defined - - cpuinfo_contents.stdout.find('pSeries') != -1 - - ansible_architecture == 'ppc64le' - - cpuinfo_contents.stdout.find('qemu') == -1 - - name: Register a fact for the nova qemu virt type set_fact: nova_virt_type: "qemu" diff --git a/templates/nova-interfaces-template.j2 b/templates/nova-interfaces-template.j2 deleted file mode 100644 index 098efad5..00000000 --- a/templates/nova-interfaces-template.j2 +++ /dev/null @@ -1,51 +0,0 @@ -# {{ ansible_managed }} - -{% raw %} -# Injected by Nova on instance boot -# -# This file describes the network interfaces available on your system -# and how to activate them. For more information, see interfaces(5). - -# The loopback network interface -auto lo -iface lo inet loopback -{% for ifc in interfaces %} - -auto {{ ifc.name }} -{% if ifc.address %} -iface {{ ifc.name }} inet static - hwaddress ether {{ ifc.hwaddress }} - address {{ ifc.address }} - netmask {{ ifc.netmask }} - broadcast {{ ifc.broadcast }} -{% if ifc.gateway %} - gateway {{ ifc.gateway }} -{% endif %} -{% if ifc.dns %} - dns-nameservers {{ ifc.dns }} -{% endif %} -{% endif %} -{% if use_ipv6 %} -{% if ifc.address_v6 %} -{% if libvirt_virt_type == 'lxc' %} -iface {{ ifc.name }} inet6 manual - post-up ip -6 addr add {{ ifc.address_v6 }}/{{ifc.netmask_v6 }} dev ${IFACE} -{% if ifc.gateway_v6 %} - post-up ip -6 route add default via {{ ifc.gateway_v6 }} dev ${IFACE} -{% endif %} -{% else %} -iface {{ ifc.name }} inet6 static - hwaddress ether {{ ifc.hwaddress }} - address {{ ifc.address_v6 }} - netmask {{ ifc.netmask_v6 }} -{% if ifc.gateway_v6 %} - gateway {{ ifc.gateway_v6 }} -{% endif %} -{% if ifc.dns_v6 %} - dns-nameservers {{ ifc.dns_v6 }} -{% endif %} -{% endif %} -{% endif %} -{% endif %} -{% endfor %} -{% endraw %} diff --git a/templates/nova.conf.j2 b/templates/nova.conf.j2 index d883c3ad..a0db25e3 100644 --- a/templates/nova.conf.j2 +++ b/templates/nova.conf.j2 @@ -60,10 +60,6 @@ libvirt_vif_type = ethernet # Hypervisor default_ephemeral_format = ext4 -{% if nova_virt_type == 'powervm' %} -injected_network_template = /etc/nova/nova-interfaces-template -{% endif %} - # Configdrive force_config_drive = {{ nova_force_config_drive }} diff --git a/vars/debian.yml b/vars/debian.yml index 5a5fb5be..d3721840 100644 --- a/vars/debian.yml +++ b/vars/debian.yml @@ -114,30 +114,7 @@ nova_compute_lxd_distro_packages: - vlan - thin-provisioning-tools -# nova powervm virt driver -nova_compute_powervm_distro_packages: - - bridge-utils - - genisoimage - - kpartx - - open-iscsi - - python-guestfs - - sysfsutils - - vlan - - nfs-common - - dosfstools - - multipath-tools - - pvm-novalink - nova_compute_ksm_packages: - ksmtuned -novalink_repo: - repo: "deb [arch=ppc64el] http://public.dhe.ibm.com/systems/virtualization/Novalink/debian/ novalink_1.0.0 non-free" - state: "present" - filename: "public_dhe_ibm_com_systems_virtualization_Novalink_debian" - -novalink_gpg_keys: - - url: "http://public.dhe.ibm.com/systems/virtualization/Novalink/debian/novalink-gpg-pub.key" - state: "present" - nova_uwsgi_bin: '/usr/bin' diff --git a/vars/distro_install.yml b/vars/distro_install.yml index daf2bb0c..7b22e022 100644 --- a/vars/distro_install.yml +++ b/vars/distro_install.yml @@ -43,8 +43,6 @@ nova_package_list: |- {% elif nova_virt_type == 'lxd' %} {% set _ = packages.extend(nova_compute_lxd_distro_packages) %} {% set _ = packages.extend(nova_service_extra_distro_packages['lxd']) %} - {% elif nova_virt_type == 'powervm' %} - {% set _ = packages.extend(nova_compute_powervm_distro_packages) %} {% endif %} {% if nova_barbican_enabled | bool %} {% set _ = packages.extend(nova_compute_barbican_distro_packages) %} diff --git a/vars/redhat-7.yml b/vars/redhat-7.yml index 5c5b332f..6d54839e 100644 --- a/vars/redhat-7.yml +++ b/vars/redhat-7.yml @@ -89,9 +89,4 @@ nova_compute_oslomsg_amqp1_distro_packages: # TODO: add support for LXD on CentOS at some point. nova_compute_lxd_distro_packages: [] -# TODO: add support for PowerVM/NovaLink on CentOS at some point. -nova_compute_powervm_distro_packages: [] - -novalink_gpg_keys: [] - nova_uwsgi_bin: '/usr/sbin' diff --git a/vars/source_install.yml b/vars/source_install.yml index 70e973fc..ffebe51d 100644 --- a/vars/source_install.yml +++ b/vars/source_install.yml @@ -28,8 +28,6 @@ nova_package_list: |- {% endif %} {% elif nova_virt_type == 'lxd' %} {% set _ = packages.extend(nova_compute_lxd_distro_packages) %} - {% elif nova_virt_type == 'powervm' %} - {% set _ = packages.extend(nova_compute_powervm_distro_packages) %} {% endif %} {% if nova_barbican_enabled | bool %} {% set _ = packages.extend(nova_compute_barbican_distro_packages) %} diff --git a/vars/suse.yml b/vars/suse.yml index d9b1c9fd..1a4fe3e0 100644 --- a/vars/suse.yml +++ b/vars/suse.yml @@ -100,9 +100,4 @@ nova_compute_oslomsg_amqp1_distro_packages: # TODO: add support for LXD on openSUSE at some point. nova_compute_lxd_distro_packages: [] -# TODO: add support for PowerVM/NovaLink on openSUSE at some point. -nova_compute_powervm_distro_packages: [] - -novalink_gpg_keys: [] - nova_uwsgi_bin: '/usr/sbin'