diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index edc17eabfe..cf61ed8cda 100644 --- a/ansible/group_vars/all.yml +++ b/ansible/group_vars/all.yml @@ -925,7 +925,7 @@ neutron_ovn_distributed_fip: "no" ####################### nova_backend_ceph: "no" 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_instance_datadir_volume: "nova_compute" nova_safety_upgrade: "no" @@ -1009,18 +1009,6 @@ vmware_vcenter_host_username: "username" vmware_vcenter_cluster_name: "cluster-1" 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 ############################################# diff --git a/ansible/roles/ceilometer/templates/ceilometer.conf.j2 b/ansible/roles/ceilometer/templates/ceilometer.conf.j2 index 9bb25ffdc2..1f15481fa8 100644 --- a/ansible/roles/ceilometer/templates/ceilometer.conf.j2 +++ b/ansible/roles/ceilometer/templates/ceilometer.conf.j2 @@ -7,8 +7,6 @@ transport_url = {{ rpc_transport_url }} {% if nova_compute_virt_type == 'vmware' %} hypervisor_inspector = vsphere -{% elif nova_compute_virt_type == 'xenapi' %} -hypervisor_inspector = xenapi {% endif %} [service_credentials] @@ -42,13 +40,6 @@ transport_url = {{ notify_transport_url }} policy_file = {{ ceilometer_policy_file }} {% 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] backend = oslo_cache.memcache_pool enabled = True diff --git a/ansible/roles/neutron/defaults/main.yml b/ansible/roles/neutron/defaults/main.yml index 24a778e10f..70c2268e38 100644 --- a/ansible/roles/neutron/defaults/main.yml +++ b/ansible/roles/neutron/defaults/main.yml @@ -34,7 +34,7 @@ neutron_services: KOLLA_LEGACY_IPTABLES: "{{ neutron_legacy_iptables | bool | lower }}" 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 inventory_hostname in groups['neutron-dhcp-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 }}" 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: container_name: "neutron_linuxbridge_agent" image: "{{ neutron_linuxbridge_agent_image_full }}" @@ -239,7 +228,6 @@ neutron_openvswitch_agent_dimensions: "{{ neutron_agent_dimensions }}" neutron_server_dimensions: "{{ default_container_dimensions }}" neutron_bgp_dragent_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 }}" ironic_neutron_agent_dimensions: "{{ default_container_dimensions }}" @@ -313,14 +301,6 @@ neutron_infoblox_ipam_agent_default_volumes: - "/etc/localtime:/etc/localtime:ro" - "{{ '/etc/timezone:/etc/timezone:ro' if kolla_base_distro in ['debian', 'ubuntu'] else '' }}" - "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: - "{{ node_config_directory }}/neutron-metering-agent/:{{ container_config_directory }}/: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_bgp_dragent_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 }}" ironic_neutron_agent_extra_volumes: "{{ neutron_extra_volumes }}" diff --git a/ansible/roles/neutron/handlers/main.yml b/ansible/roles/neutron/handlers/main.yml index af364f9940..e436048142 100644 --- a/ansible/roles/neutron/handlers/main.yml +++ b/ansible/roles/neutron/handlers/main.yml @@ -32,22 +32,6 @@ when: - 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 vars: service_name: "neutron-openvswitch-agent" diff --git a/ansible/roles/neutron/tasks/config.yml b/ansible/roles/neutron/tasks/config.yml index 9a8c12c622..ddb35d63fb 100644 --- a/ansible/roles/neutron/tasks/config.yml +++ b/ansible/roles/neutron/tasks/config.yml @@ -83,7 +83,6 @@ - "neutron-ovn-metadata-agent" - "neutron-metering-agent" - "neutron-openvswitch-agent" - - "neutron-openvswitch-agent-xenapi" - "neutron-server" - "neutron-bgp-dragent" - "neutron-infoblox-ipam-agent" @@ -189,28 +188,6 @@ notify: - "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 vars: service_name: "neutron-sriov-agent" diff --git a/ansible/roles/neutron/templates/openvswitch_agent_xenapi.ini.j2 b/ansible/roles/neutron/templates/openvswitch_agent_xenapi.ini.j2 deleted file mode 100644 index 4e32acefc9..0000000000 --- a/ansible/roles/neutron/templates/openvswitch_agent_xenapi.ini.j2 +++ /dev/null @@ -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 }} diff --git a/ansible/roles/nova-cell/tasks/bootstrap_xenapi.yml b/ansible/roles/nova-cell/tasks/bootstrap_xenapi.yml deleted file mode 100644 index f3a5e2febe..0000000000 --- a/ansible/roles/nova-cell/tasks/bootstrap_xenapi.yml +++ /dev/null @@ -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 diff --git a/ansible/roles/nova-cell/tasks/config.yml b/ansible/roles/nova-cell/tasks/config.yml index dd0988ba0a..c67afde709 100644 --- a/ansible/roles/nova-cell/tasks/config.yml +++ b/ansible/roles/nova-cell/tasks/config.yml @@ -53,13 +53,6 @@ notify: - "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 become: true vars: diff --git a/ansible/roles/nova-cell/tasks/deploy.yml b/ansible/roles/nova-cell/tasks/deploy.yml index f5853e13f2..cb7f1495d5 100644 --- a/ansible/roles/nova-cell/tasks/deploy.yml +++ b/ansible/roles/nova-cell/tasks/deploy.yml @@ -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 when: nova_dev_mode | bool diff --git a/ansible/roles/nova-cell/templates/nova.conf.j2 b/ansible/roles/nova-cell/templates/nova.conf.j2 index 025ee75a60..b9ae2fac86 100644 --- a/ansible/roles/nova-cell/templates/nova.conf.j2 +++ b/ansible/roles/nova-cell/templates/nova.conf.j2 @@ -19,11 +19,6 @@ host = {{ ansible_hostname }}_{{ service_name }} compute_driver = fake.FakeDriver {% elif nova_compute_virt_type == 'vmware' %} 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 %} compute_driver = libvirt.LibvirtDriver {% endif %} @@ -230,14 +225,6 @@ auth_endpoint = {{ keystone_internal_url }} cafile = {{ openstack_cacert }} {% 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: # https://opendev.org/openstack/devstack/src/branch/master/lib/nova#L874 {% if service_name.startswith("nova-compute") and enable_cells | bool %} diff --git a/doc/source/reference/compute/index.rst b/doc/source/reference/compute/index.rst index 05e2de1ada..5dd9b175d9 100644 --- a/doc/source/reference/compute/index.rst +++ b/doc/source/reference/compute/index.rst @@ -3,11 +3,11 @@ Compute ======= This section describes configuring nova hypervisors and -compute services like HyperV, XenServer and so on. +compute services like HyperV and so on. .. 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. .. toctree:: @@ -21,5 +21,4 @@ compute services like HyperV, XenServer and so on. nova-guide qinling-guide vmware-guide - xenserver-guide zun-guide diff --git a/doc/source/reference/compute/masakari-guide.rst b/doc/source/reference/compute/masakari-guide.rst index bd85b6500b..d24baf156d 100644 --- a/doc/source/reference/compute/masakari-guide.rst +++ b/doc/source/reference/compute/masakari-guide.rst @@ -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 containers which are the main Masakari components only if ``enable_masakari`` 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" diff --git a/doc/source/reference/compute/nova-guide.rst b/doc/source/reference/compute/nova-guide.rst index 58558a6bb9..b53635cc58 100644 --- a/doc/source/reference/compute/nova-guide.rst +++ b/doc/source/reference/compute/nova-guide.rst @@ -13,8 +13,8 @@ Virtualisation Drivers ====================== The virtualisation driver may be selected via ``nova_compute_virt_type`` in -``globals.yml``. Supported options are ``qemu``, ``kvm``, ``vmware``, and -``xenapi``. The default is ``kvm``. +``globals.yml``. Supported options are ``qemu``, ``kvm``, and ``vmware``. +The default is ``kvm``. HyperV ------ @@ -41,16 +41,6 @@ VMware Information on the VMware-based driver ``vmware`` can be found in :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 ---------- diff --git a/doc/source/reference/compute/xenserver-guide.rst b/doc/source/reference/compute/xenserver-guide.rst deleted file mode 100644 index 2d5f26cd31..0000000000 --- a/doc/source/reference/compute/xenserver-guide.rst +++ /dev/null @@ -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 ` - -.. _RDO repos: https://www.rdoproject.org/what/repos/ - -.. _XenServer documents: https://docs.citrix.com/en-us/xenserver/current-release.html diff --git a/etc/kolla/globals.yml b/etc/kolla/globals.yml index bc74b82efa..f67fa2a8ea 100644 --- a/etc/kolla/globals.yml +++ b/etc/kolla/globals.yml @@ -510,7 +510,7 @@ ######################## #nova_backend_ceph: "no" -# Valid options are [ qemu, kvm, vmware, xenapi ] +# Valid options are [ qemu, kvm, vmware ] #nova_compute_virt_type: "kvm" # The number of fake driver per compute node @@ -635,18 +635,6 @@ #vmware_vcenter_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 ############ diff --git a/etc/kolla/passwords.yml b/etc/kolla/passwords.yml index f4d4928c17..6c911ffeaa 100644 --- a/etc/kolla/passwords.yml +++ b/etc/kolla/passwords.yml @@ -254,11 +254,6 @@ etcd_cluster_token: #################### redis_master_password: -################ -# XenAPI options -################ -xenserver_password: - #################### # Prometheus options #################### diff --git a/releasenotes/notes/remove-xenapi-94ea90ffd61bae20.yaml b/releasenotes/notes/remove-xenapi-94ea90ffd61bae20.yaml new file mode 100644 index 0000000000..9034985e6a --- /dev/null +++ b/releasenotes/notes/remove-xenapi-94ea90ffd61bae20.yaml @@ -0,0 +1,4 @@ +--- +upgrade: + - | + Support for deploying with XenAPI integrations has been removed.