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
This commit is contained in:
Mohammed Naser 2019-05-31 18:37:37 -04:00
parent 53682cebcb
commit 3341ce834f
15 changed files with 5 additions and 345 deletions

View File

@ -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

View File

@ -1,112 +0,0 @@
`Home <index.html>`_ 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: <<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

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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 %}

View File

@ -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 }}

View File

@ -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'

View File

@ -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) %}

View File

@ -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'

View File

@ -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) %}

View File

@ -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'