Remove XenAPI integration

Change-Id: Iea3f4f3d2e5c6040c1e0bc7bfae8719cc7d8ac55
This commit is contained in:
Christian Berendt 2020-06-08 21:31:15 +02:00
parent 522bc17981
commit 60e03d7bf3
17 changed files with 11 additions and 311 deletions

View File

@ -925,7 +925,7 @@ neutron_ovn_distributed_fip: "no"
####################### #######################
nova_backend_ceph: "no" nova_backend_ceph: "no"
nova_backend: "{{ 'rbd' if nova_backend_ceph | bool else 'default' }}" nova_backend: "{{ 'rbd' if nova_backend_ceph | bool else 'default' }}"
# Valid options are [ kvm, qemu, vmware, xenapi ] # Valid options are [ kvm, qemu, vmware ]
nova_compute_virt_type: "kvm" nova_compute_virt_type: "kvm"
nova_instance_datadir_volume: "nova_compute" nova_instance_datadir_volume: "nova_compute"
nova_safety_upgrade: "no" nova_safety_upgrade: "no"
@ -1009,18 +1009,6 @@ vmware_vcenter_host_username: "username"
vmware_vcenter_cluster_name: "cluster-1" vmware_vcenter_cluster_name: "cluster-1"
vmware_vcenter_insecure: "True" vmware_vcenter_insecure: "True"
#######################################
# XenAPI - Support XenAPI for XenServer
#######################################
# XenAPI driver use HIMN(Host Internal Management Network)
# to communicate with XenServer host.
xenserver_himn_ip: "169.254.0.1"
xenserver_username: "root"
xenserver_connect_protocol: "https"
# File used to save XenAPI's facts variables formatted as json.
xenapi_facts_root: "/etc/kolla/xenapi/"
xenapi_facts_file: "facts.json"
############################################# #############################################
# MariaDB component-specific database details # MariaDB component-specific database details
############################################# #############################################

View File

@ -7,8 +7,6 @@ transport_url = {{ rpc_transport_url }}
{% if nova_compute_virt_type == 'vmware' %} {% if nova_compute_virt_type == 'vmware' %}
hypervisor_inspector = vsphere hypervisor_inspector = vsphere
{% elif nova_compute_virt_type == 'xenapi' %}
hypervisor_inspector = xenapi
{% endif %} {% endif %}
[service_credentials] [service_credentials]
@ -42,13 +40,6 @@ transport_url = {{ notify_transport_url }}
policy_file = {{ ceilometer_policy_file }} policy_file = {{ ceilometer_policy_file }}
{% endif %} {% endif %}
{% if nova_compute_virt_type == 'xenapi' %}
[xenapi]
connection_url = {{ xenserver_connect_protocol }}://{{ xenserver_himn_ip }}
connection_username = {{ xenserver_username }}
connection_password = {{ xenserver_password }}
{% endif %}
[cache] [cache]
backend = oslo_cache.memcache_pool backend = oslo_cache.memcache_pool
enabled = True enabled = True

View File

@ -34,7 +34,7 @@ neutron_services:
KOLLA_LEGACY_IPTABLES: "{{ neutron_legacy_iptables | bool | lower }}" KOLLA_LEGACY_IPTABLES: "{{ neutron_legacy_iptables | bool | lower }}"
host_in_groups: >- host_in_groups: >-
{{ {{
( (inventory_hostname in groups['compute'] and nova_compute_virt_type != 'xenapi') ( inventory_hostname in groups['compute']
or (enable_manila | bool and inventory_hostname in groups['manila-share']) or (enable_manila | bool and inventory_hostname in groups['manila-share'])
or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-dhcp-agent']
or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-l3-agent']
@ -49,17 +49,6 @@ neutron_services:
}} }}
volumes: "{{ neutron_openvswitch_agent_default_volumes + neutron_openvswitch_agent_extra_volumes }}" volumes: "{{ neutron_openvswitch_agent_default_volumes + neutron_openvswitch_agent_extra_volumes }}"
dimensions: "{{ neutron_openvswitch_agent_dimensions }}" dimensions: "{{ neutron_openvswitch_agent_dimensions }}"
neutron-openvswitch-agent-xenapi:
container_name: "neutron_openvswitch_agent_xenapi"
image: "{{ neutron_openvswitch_agent_image_full }}"
enabled: "{{ neutron_plugin_agent == 'openvswitch' and nova_compute_virt_type == 'xenapi' }}"
privileged: True
host_in_groups: >-
{{
inventory_hostname in groups['compute']
}}
volumes: "{{ neutron_openvswitch_agent_xenapi_default_volumes + neutron_openvswitch_agent_xenapi_extra_volumes }}"
dimensions: "{{ neutron_openvswitch_agent_xenapi_dimensions }}"
neutron-linuxbridge-agent: neutron-linuxbridge-agent:
container_name: "neutron_linuxbridge_agent" container_name: "neutron_linuxbridge_agent"
image: "{{ neutron_linuxbridge_agent_image_full }}" image: "{{ neutron_linuxbridge_agent_image_full }}"
@ -239,7 +228,6 @@ neutron_openvswitch_agent_dimensions: "{{ neutron_agent_dimensions }}"
neutron_server_dimensions: "{{ default_container_dimensions }}" neutron_server_dimensions: "{{ default_container_dimensions }}"
neutron_bgp_dragent_dimensions: "{{ default_container_dimensions }}" neutron_bgp_dragent_dimensions: "{{ default_container_dimensions }}"
neutron_infoblox_ipam_agent_dimensions: "{{ default_container_dimensions }}" neutron_infoblox_ipam_agent_dimensions: "{{ default_container_dimensions }}"
neutron_openvswitch_agent_xenapi_dimensions: "{{ neutron_agent_dimensions }}"
neutron_metering_agent_dimensions: "{{ neutron_agent_dimensions }}" neutron_metering_agent_dimensions: "{{ neutron_agent_dimensions }}"
ironic_neutron_agent_dimensions: "{{ default_container_dimensions }}" ironic_neutron_agent_dimensions: "{{ default_container_dimensions }}"
@ -313,14 +301,6 @@ neutron_infoblox_ipam_agent_default_volumes:
- "/etc/localtime:/etc/localtime:ro" - "/etc/localtime:/etc/localtime:ro"
- "{{ '/etc/timezone:/etc/timezone:ro' if kolla_base_distro in ['debian', 'ubuntu'] else '' }}" - "{{ '/etc/timezone:/etc/timezone:ro' if kolla_base_distro in ['debian', 'ubuntu'] else '' }}"
- "kolla_logs:/var/log/kolla/" - "kolla_logs:/var/log/kolla/"
neutron_openvswitch_agent_xenapi_default_volumes:
- "{{ node_config_directory }}/neutron-openvswitch-agent-xenapi/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro"
- "{{ '/etc/timezone:/etc/timezone:ro' if kolla_base_distro in ['debian', 'ubuntu'] else '' }}"
- "/lib/modules:/lib/modules:ro"
- "/run/openvswitch:/run/openvswitch:shared"
- "kolla_logs:/var/log/kolla/"
- "{{ kolla_dev_repos_directory ~ '/neutron/neutron:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/neutron' if neutron_dev_mode | bool else '' }}"
neutron_metering_agent_default_volumes: neutron_metering_agent_default_volumes:
- "{{ node_config_directory }}/neutron-metering-agent/:{{ container_config_directory }}/:ro" - "{{ node_config_directory }}/neutron-metering-agent/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro" - "/etc/localtime:/etc/localtime:ro"
@ -344,7 +324,6 @@ neutron_openvswitch_agent_extra_volumes: "{{ neutron_extra_volumes }}"
neutron_server_extra_volumes: "{{ neutron_extra_volumes }}" neutron_server_extra_volumes: "{{ neutron_extra_volumes }}"
neutron_bgp_dragent_extra_volumes: "{{ neutron_extra_volumes }}" neutron_bgp_dragent_extra_volumes: "{{ neutron_extra_volumes }}"
neutron_infoblox_ipam_agent_extra_volumes: "{{ neutron_extra_volumes }}" neutron_infoblox_ipam_agent_extra_volumes: "{{ neutron_extra_volumes }}"
neutron_openvswitch_agent_xenapi_extra_volumes: "{{ neutron_extra_volumes }}"
neutron_metering_agent_extra_volumes: "{{ neutron_extra_volumes }}" neutron_metering_agent_extra_volumes: "{{ neutron_extra_volumes }}"
ironic_neutron_agent_extra_volumes: "{{ neutron_extra_volumes }}" ironic_neutron_agent_extra_volumes: "{{ neutron_extra_volumes }}"

View File

@ -32,22 +32,6 @@
when: when:
- kolla_action != "config" - kolla_action != "config"
- name: Restart neutron-openvswitch-agent-xenapi container
vars:
service_name: "neutron-openvswitch-agent-xenapi"
service: "{{ neutron_services[service_name] }}"
become: true
kolla_docker:
action: "recreate_or_restart_container"
common_options: "{{ docker_common_options }}"
name: "{{ service.container_name }}"
image: "{{ service.image }}"
volumes: "{{ service.volumes|reject('equalto', '')|list }}"
dimensions: "{{ service.dimensions }}"
privileged: "{{ service.privileged | default(False) }}"
when:
- kolla_action != "config"
- name: Restart fake neutron-openvswitch-agent container - name: Restart fake neutron-openvswitch-agent container
vars: vars:
service_name: "neutron-openvswitch-agent" service_name: "neutron-openvswitch-agent"

View File

@ -83,7 +83,6 @@
- "neutron-ovn-metadata-agent" - "neutron-ovn-metadata-agent"
- "neutron-metering-agent" - "neutron-metering-agent"
- "neutron-openvswitch-agent" - "neutron-openvswitch-agent"
- "neutron-openvswitch-agent-xenapi"
- "neutron-server" - "neutron-server"
- "neutron-bgp-dragent" - "neutron-bgp-dragent"
- "neutron-infoblox-ipam-agent" - "neutron-infoblox-ipam-agent"
@ -189,28 +188,6 @@
notify: notify:
- "Restart {{ service_name }} container" - "Restart {{ service_name }} container"
- name: Copying over openvswitch_agent.ini for XenAPI
become: true
vars:
service_name: "neutron-openvswitch-agent-xenapi"
os_xenapi_variables: "{{ lookup('file', xenapi_facts_root + '/' + inventory_hostname + '/' + xenapi_facts_file) | from_json }}"
merge_configs:
sources:
- "{{ role_path }}/templates/openvswitch_agent_xenapi.ini.j2"
- "{{ node_custom_config }}/neutron/openvswitch_agent_xenapi.ini"
- "{{ node_custom_config }}/neutron/{{ inventory_hostname }}/openvswitch_agent_xenapi.ini"
- "{{ node_custom_config }}/neutron/{{ service_name }}/openvswitch_agent_xenapi.ini"
# TODO(mnasiadka): Remove in V - left to not break existing deployments
- "{{ node_custom_config }}/neutron/ml2_conf.ini"
- "{{ node_custom_config }}/neutron/{{ inventory_hostname }}/ml2_conf.ini"
dest: "{{ node_config_directory }}/{{ service_name }}/openvswitch_agent.ini"
mode: "0660"
when:
- neutron_services[service_name].enabled | bool
- neutron_services[service_name].host_in_groups | bool
notify:
- "Restart {{ service_name }} container"
- name: Copying over sriov_agent.ini - name: Copying over sriov_agent.ini
vars: vars:
service_name: "neutron-sriov-agent" service_name: "neutron-sriov-agent"

View File

@ -1,25 +0,0 @@
[DEFAULT]
# Use service_name as the log file name for neutron-openvswitch-agent-xenapi,
# so that it will use a different log file from neutron-openvswitch-agent.
log_file = {{ service_name }}.log
host = {{ os_xenapi_variables.dom0_hostname }}
[agent]
root_helper_daemon = xenapi_root_helper
root_helper =
[ovs]
of_listen_address = {{ os_xenapi_variables.domu_himn_ip }}
ovsdb_connection = tcp:{{ xenserver_himn_ip }}:{{ ovsdb_port }}
{% if computes_need_external_bridge | bool %}
bridge_mappings = {% for interface in neutron_external_interface.split(',') %}physnet{{ loop.index0 + 1 }}:{{ os_xenapi_variables.domu_vifs[interface]["bridge"] }}{% if not loop.last %},{% endif %}{% endfor %}
{% else %}
bridge_mappings =
{% endif %}
local_ip = {% for ip in os_xenapi_variables.dom0_ipv4s %}{% if ip.bridge == os_xenapi_variables.domu_vifs[tunnel_interface]['bridge'] %}{{ ip.address }}{% endif %} {% endfor %}
[xenapi]
connection_password = {{ xenserver_password }}
connection_username = {{ xenserver_username }}
connection_url = {{ xenserver_connect_protocol }}://{{ xenserver_himn_ip }}

View File

@ -1,26 +0,0 @@
---
- name: Install package python-os-xenapi
package:
name: python-os-xenapi
state: present
become: True
- name: Ensure XenAPI root path
file:
path: "{{ xenapi_facts_root }}"
state: directory
mode: "0770"
become: True
- name: Bootstrap XenAPI compute node
vars:
xenapi_facts_path: "{{ xenapi_facts_root + '/' + xenapi_facts_file }}"
command: xenapi_bootstrap -i {{ xenserver_himn_ip }} -u {{ xenserver_username }} -p {{ xenserver_password }} -f {{ xenapi_facts_path }}
become: True
- name: Fetching XenAPI facts file
fetch:
src: "{{ xenapi_facts_root + '/' + xenapi_facts_file }}"
dest: "{{ xenapi_facts_root + '/' + inventory_hostname + '/' }}"
flat: yes
become: True

View File

@ -53,13 +53,6 @@
notify: notify:
- "Restart {{ item.key }} container" - "Restart {{ item.key }} container"
- name: Set XenAPI facts
set_fact:
xenapi_facts: "{{ lookup('file', xenapi_facts_root + '/' + inventory_hostname + '/' + xenapi_facts_file) | from_json }}"
when:
- nova_compute_virt_type == 'xenapi'
- inventory_hostname in groups[nova_cell_compute_group]
- name: Copying over nova.conf - name: Copying over nova.conf
become: true become: true
vars: vars:

View File

@ -1,9 +1,4 @@
--- ---
- include_tasks: bootstrap_xenapi.yml
when:
- inventory_hostname in groups[nova_cell_compute_group]
- nova_compute_virt_type == "xenapi"
- include_tasks: clone.yml - include_tasks: clone.yml
when: nova_dev_mode | bool when: nova_dev_mode | bool

View File

@ -19,11 +19,6 @@ host = {{ ansible_hostname }}_{{ service_name }}
compute_driver = fake.FakeDriver compute_driver = fake.FakeDriver
{% elif nova_compute_virt_type == 'vmware' %} {% elif nova_compute_virt_type == 'vmware' %}
compute_driver = vmwareapi.VMwareVCDriver compute_driver = vmwareapi.VMwareVCDriver
{% elif nova_compute_virt_type == 'xenapi' %}
compute_driver = xenapi.XenAPIDriver
{% if service_name == 'nova-compute' %}
host = xenapi_facts['dom0_hostname']
{% endif %}
{% else %} {% else %}
compute_driver = libvirt.LibvirtDriver compute_driver = libvirt.LibvirtDriver
{% endif %} {% endif %}
@ -230,14 +225,6 @@ auth_endpoint = {{ keystone_internal_url }}
cafile = {{ openstack_cacert }} cafile = {{ openstack_cacert }}
{% endif %} {% endif %}
{% if nova_compute_virt_type == "xenapi" %}
[xenserver]
ovs_integration_bridge = br-int
connection_password = {{ xenserver_password }}
connection_username = {{ xenserver_username }}
connection_url = {{ xenserver_connect_protocol }}://{{ xenserver_himn_ip }}
{% endif %}
# Cell specific settings from DevStack: # Cell specific settings from DevStack:
# https://opendev.org/openstack/devstack/src/branch/master/lib/nova#L874 # https://opendev.org/openstack/devstack/src/branch/master/lib/nova#L874
{% if service_name.startswith("nova-compute") and enable_cells | bool %} {% if service_name.startswith("nova-compute") and enable_cells | bool %}

View File

@ -3,11 +3,11 @@ Compute
======= =======
This section describes configuring nova hypervisors and This section describes configuring nova hypervisors and
compute services like HyperV, XenServer and so on. compute services like HyperV and so on.
.. note:: .. note::
Hyper-V, VMware, and XenAPI support have been deprecated and will Hyper-V and VMware support have been deprecated and will
be removed in the Victoria cycle. be removed in the Victoria cycle.
.. toctree:: .. toctree::
@ -21,5 +21,4 @@ compute services like HyperV, XenServer and so on.
nova-guide nova-guide
qinling-guide qinling-guide
vmware-guide vmware-guide
xenserver-guide
zun-guide zun-guide

View File

@ -16,19 +16,3 @@ provides an API service to manage and control the automated rescue mechanism.
Kolla deploys Masakari API, Masakari Engine and Masakari Instance Monitor Kolla deploys Masakari API, Masakari Engine and Masakari Instance Monitor
containers which are the main Masakari components only if ``enable_masakari`` containers which are the main Masakari components only if ``enable_masakari``
is set in ``/etc/kolla/globals.yml``. is set in ``/etc/kolla/globals.yml``.
Connection URI to libvirtd
~~~~~~~~~~~~~~~~~~~~~~~~~~
By default ``masakari-instancemonitor`` will connect to ``libvirt`` daemon
using ``qemu+tcp://`` connection URI to get events of KVM-based virtual
machines.
The setting is overridable using custom config, put the content in
``/etc/kolla/config/masakari/masakari-monitors.conf``.
.. code-block:: ini
[libvirt]
connection_uri = "xen://{{ migration_interface_address | put_address_in_context('url') }}/system"

View File

@ -13,8 +13,8 @@ Virtualisation Drivers
====================== ======================
The virtualisation driver may be selected via ``nova_compute_virt_type`` in The virtualisation driver may be selected via ``nova_compute_virt_type`` in
``globals.yml``. Supported options are ``qemu``, ``kvm``, ``vmware``, and ``globals.yml``. Supported options are ``qemu``, ``kvm``, and ``vmware``.
``xenapi``. The default is ``kvm``. The default is ``kvm``.
HyperV HyperV
------ ------
@ -41,16 +41,6 @@ VMware
Information on the VMware-based driver ``vmware`` can be found in Information on the VMware-based driver ``vmware`` can be found in
:doc:`vmware-guide`. :doc:`vmware-guide`.
XenServer
---------
.. note::
XenAPI support has been deprecated and will be removed in the Victoria cycle.
Information on the XenServer-based driver ``xenapi`` can be found in
:doc:`xenserver-guide`.
Bare Metal Bare Metal
---------- ----------

View File

@ -1,103 +0,0 @@
.. _XenServer-guide:
======================================
XenServer - Nova Virtualisation Driver
======================================
.. note::
XenAPI support has been deprecated and will be removed in the Victoria cycle.
Overview
========
Kolla can deploy the OpenStack services on XenServer hosts by choosing
``xenapi`` as the compute virt driver.
In XenServer, there is a privileged domain which is known as dom0;
and it can run a number of un-privileged domains which are known as
domUs or VMs.
Most OpenStack services (e.g. Keystone, Glance, Horizon) can run either
in the XenServer VMs or in separate baremetal hosts, but some services
(which make direct use of the hypervisor) must run in the XenServer VMs.
These services will interact with the XenServer host via XenAPI to perform
privileged operations. See the following list for such kind of services:
* ``nova-compute``
* ``neutron-openvswitch-agent-xenapi``
* ``ceilometer-compute``
.. note::
At the moment, only CentOS 7.x has been tested.
Preparation for compute node on XenServer hosts
===============================================
We need some bootstrap tasks particularly for XenAPI compute nodes. The
tasks are implemented in the package of ``python-os-xenapi`` and exposed
to kolla-ansible via a single command - ``xenapi_bootstrap``. This package
is contained in the ``RDO CloudSIG repository`` [`RDO repos`_] and will be
installed on compute nodes at nova deployment. So we need ensure this
repository is reachable from the compute nodes or cache the repository
locally.
Create a compute VM on each XenServer host which will be used to boot
instances on. The VM must meet the common requirements declared by
kolla-ansible for KVM/QEMU deployment.
Additionally you should install PV driver in the VM [`XenServer documents`_];
and create the HIMN(Host Internal Management Network) for each compute VM
by following these steps:
1. In XenCenter, from the menu choose "View -> Hidden Objects";
2. You will see HIMN in the host's 'Networking' page;
3. Create an interface on HIMN for the compute VM.
The remaining instructions are just the same as the preparations for
KVM/QEMU deployment.
Deployment
----------
Enable the virt type ``xenapi`` and configure connection options in
``/etc/kolla/globals.yml``:
.. code-block:: yaml
nova_compute_virt_type: "xenapi"
xenserver_username: "root"
xenserver_connect_protocol: "https"
.. note::
When using ``https`` as the connection protocol, please refer XenServer
user document to setup the signed SSL certificates to allow the secure
communications between dom0 and domU. Otherwise, please use ``http`` for
self-signed certificates.
You also need set the password for xenserver_username in
``/etc/kolla/passwords.yml``:
.. code-block:: yaml
xenserver_password: "root_password"
Then you can start kolla-ansible deployment just following the
:doc:`/user/quickstart`.
References
==========
For more information on XenAPI OpenStack, see
:nova-doc:`XenAPI OpenStack <admin/configuration/hypervisor-xen-api.html>`
.. _RDO repos: https://www.rdoproject.org/what/repos/
.. _XenServer documents: https://docs.citrix.com/en-us/xenserver/current-release.html

View File

@ -510,7 +510,7 @@
######################## ########################
#nova_backend_ceph: "no" #nova_backend_ceph: "no"
# Valid options are [ qemu, kvm, vmware, xenapi ] # Valid options are [ qemu, kvm, vmware ]
#nova_compute_virt_type: "kvm" #nova_compute_virt_type: "kvm"
# The number of fake driver per compute node # The number of fake driver per compute node
@ -635,18 +635,6 @@
#vmware_vcenter_name: #vmware_vcenter_name:
#vmware_vcenter_cluster_name: #vmware_vcenter_cluster_name:
#######################################
# XenAPI - Support XenAPI for XenServer
#######################################
# NOTE: XenAPI support has been deprecated and will be removed in the Victoria cycle.
# XenAPI driver use HIMN(Host Internal Management Network)
# to communicate with XenServer host.
#xenserver_himn_ip:
#xenserver_username:
#xenserver_connect_protocol:
############ ############
# Prometheus # Prometheus
############ ############

View File

@ -254,11 +254,6 @@ etcd_cluster_token:
#################### ####################
redis_master_password: redis_master_password:
################
# XenAPI options
################
xenserver_password:
#################### ####################
# Prometheus options # Prometheus options
#################### ####################

View File

@ -0,0 +1,4 @@
---
upgrade:
- |
Support for deploying with XenAPI integrations has been removed.