From 6eb02245d6e3a6188a6fbfce6196a42f823799e5 Mon Sep 17 00:00:00 2001 From: Christian Berendt Date: Wed, 10 Jun 2020 10:36:28 +0200 Subject: [PATCH] Remove Hyper-V integration Change-Id: I2e22ec47f644de2f1509a0111c9e1fffe8da0a1a --- ansible/group_vars/all.yml | 1 - ansible/inventory/all-in-one | 10 - ansible/inventory/multinode | 10 - ansible/roles/neutron/defaults/main.yml | 10 +- ansible/roles/nova-hyperv/defaults/main.yml | 21 --- ansible/roles/nova-hyperv/handlers/main.yml | 15 -- ansible/roles/nova-hyperv/tasks/check.yml | 1 - ansible/roles/nova-hyperv/tasks/config.yml | 39 ---- .../roles/nova-hyperv/tasks/copy-certs.yml | 6 - ansible/roles/nova-hyperv/tasks/deploy.yml | 6 - ansible/roles/nova-hyperv/tasks/install.yml | 26 --- ansible/roles/nova-hyperv/tasks/main.yml | 8 - ansible/roles/nova-hyperv/tasks/precheck.yml | 1 - ansible/roles/nova-hyperv/tasks/pull.yml | 1 - .../roles/nova-hyperv/tasks/reconfigure.yml | 2 - ansible/roles/nova-hyperv/tasks/stop.yml | 1 - .../templates/neutron_hyperv_agent.conf.j2 | 26 --- .../nova-hyperv/templates/nova_hyperv.conf.j2 | 78 -------- .../roles/nova-hyperv/templates/wsgate.ini.j2 | 28 --- ansible/roles/nova/defaults/main.yml | 6 - ansible/site.yml | 12 -- doc/source/reference/compute/hyperv-guide.rst | 173 ------------------ doc/source/reference/compute/index.rst | 5 +- doc/source/reference/compute/nova-guide.rst | 9 - etc/kolla/globals.yml | 14 -- .../notes/remove-hyperv-fbffba997e1abb61.yaml | 4 + tests/templates/inventory.j2 | 10 - 27 files changed, 10 insertions(+), 513 deletions(-) delete mode 100644 ansible/roles/nova-hyperv/defaults/main.yml delete mode 100644 ansible/roles/nova-hyperv/handlers/main.yml delete mode 100644 ansible/roles/nova-hyperv/tasks/check.yml delete mode 100644 ansible/roles/nova-hyperv/tasks/config.yml delete mode 100644 ansible/roles/nova-hyperv/tasks/copy-certs.yml delete mode 100644 ansible/roles/nova-hyperv/tasks/deploy.yml delete mode 100644 ansible/roles/nova-hyperv/tasks/install.yml delete mode 100644 ansible/roles/nova-hyperv/tasks/main.yml delete mode 100644 ansible/roles/nova-hyperv/tasks/precheck.yml delete mode 100644 ansible/roles/nova-hyperv/tasks/pull.yml delete mode 100644 ansible/roles/nova-hyperv/tasks/reconfigure.yml delete mode 100644 ansible/roles/nova-hyperv/tasks/stop.yml delete mode 100644 ansible/roles/nova-hyperv/templates/neutron_hyperv_agent.conf.j2 delete mode 100644 ansible/roles/nova-hyperv/templates/nova_hyperv.conf.j2 delete mode 100644 ansible/roles/nova-hyperv/templates/wsgate.ini.j2 delete mode 100644 doc/source/reference/compute/hyperv-guide.rst create mode 100644 releasenotes/notes/remove-hyperv-fbffba997e1abb61.yaml diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index ef60395b26..9e7b6ac861 100644 --- a/ansible/group_vars/all.yml +++ b/ansible/group_vars/all.yml @@ -601,7 +601,6 @@ enable_horizon_trove: "{{ enable_trove | bool }}" enable_horizon_vitrage: "{{ enable_vitrage | bool }}" enable_horizon_watcher: "{{ enable_watcher | bool }}" enable_horizon_zun: "{{ enable_zun | bool }}" -enable_hyperv: "no" enable_influxdb: "{{ enable_monasca | bool or (enable_cloudkitty | bool and cloudkitty_storage_backend == 'influxdb') }}" enable_ironic: "no" enable_ironic_ipxe: "no" diff --git a/ansible/inventory/all-in-one b/ansible/inventory/all-in-one index 80bf8f783b..28dd2fda4e 100644 --- a/ansible/inventory/all-in-one +++ b/ansible/inventory/all-in-one @@ -75,16 +75,6 @@ control [haproxy:children] network -[hyperv] -#hyperv_host - -[hyperv:vars] -#ansible_user=user -#ansible_password=password -#ansible_port=5986 -#ansible_connection=winrm -#ansible_winrm_server_cert_validation=ignore - [mariadb:children] control diff --git a/ansible/inventory/multinode b/ansible/inventory/multinode index 9a4ec07058..d2e11d9091 100644 --- a/ansible/inventory/multinode +++ b/ansible/inventory/multinode @@ -99,16 +99,6 @@ control [haproxy:children] network -[hyperv] -#hyperv_host - -[hyperv:vars] -#ansible_user=user -#ansible_password=password -#ansible_port=5986 -#ansible_connection=winrm -#ansible_winrm_server_cert_validation=ignore - [mariadb:children] control diff --git a/ansible/roles/neutron/defaults/main.yml b/ansible/roles/neutron/defaults/main.yml index 18322779c8..8d5874c450 100644 --- a/ansible/roles/neutron/defaults/main.yml +++ b/ansible/roles/neutron/defaults/main.yml @@ -357,12 +357,10 @@ mechanism_drivers: enabled: "{{ neutron_plugin_agent == 'linuxbridge' }}" - name: "openvswitch" enabled: "{{ neutron_plugin_agent == 'openvswitch' }}" - - name: "hyperv" - enabled: "{{ enable_hyperv | bool }}" - name: "baremetal" enabled: "{{ enable_ironic_neutron_agent | bool }}" - name: "l2population" - enabled: "{{ not enable_hyperv | bool and neutron_plugin_agent != 'ovn' }}" + enabled: "{{ neutron_plugin_agent != 'ovn' }}" - name: "ovn" enabled: "{{ neutron_plugin_agent == 'ovn' }}" @@ -373,13 +371,13 @@ neutron_mechanism_drivers: "{{ mechanism_drivers | selectattr('enabled', 'equalt #################### extension_drivers: - name: "qos" - enabled: "{{ enable_neutron_qos | bool and not enable_hyperv | bool }}" + enabled: "{{ enable_neutron_qos | bool }}" - name: "port_security" enabled: true - name: "dns" - enabled: "{{ enable_designate | bool and not enable_hyperv | bool }}" + enabled: "{{ enable_designate | bool }}" - name: "sfc" - enabled: "{{ enable_neutron_sfc | bool and not enable_hyperv | bool }}" + enabled: "{{ enable_neutron_sfc | bool }}" neutron_extension_drivers: "{{ extension_drivers | selectattr('enabled', 'equalto', true) | list }}" diff --git a/ansible/roles/nova-hyperv/defaults/main.yml b/ansible/roles/nova-hyperv/defaults/main.yml deleted file mode 100644 index e927c5d555..0000000000 --- a/ansible/roles/nova-hyperv/defaults/main.yml +++ /dev/null @@ -1,21 +0,0 @@ ---- -project_name: "nova-hyperv" - -msi_dir: "%SYSTEMDRIVE%\\OpenStack\\MSIs" -log_dir: "%SYSTEMDRIVE%\\OpenStack\\Log" -freerdp_msi_url: "https://cloudbase.it/downloads/FreeRDPWebConnect.msi" -hyperv_compute_msi: "HyperVNovaCompute.msi" -freerdp_webconnect_msi: "FreeRDPWebConnect.msi" - -#################### -# Notification -#################### -nova_notification_topics: - - name: notifications - enabled: "{{ enable_ceilometer | bool or enable_searchlight | bool or enable_neutron_infoblox_ipam_agent | bool }}" - - name: notifications_designate - enabled: "{{ enable_designate | bool }}" - - name: vitrage_notifications - enabled: "{{ enable_vitrage | bool }}" - -nova_enabled_notification_topics: "{{ nova_notification_topics | selectattr('enabled', 'equalto', true) | list }}" diff --git a/ansible/roles/nova-hyperv/handlers/main.yml b/ansible/roles/nova-hyperv/handlers/main.yml deleted file mode 100644 index f6cd425d46..0000000000 --- a/ansible/roles/nova-hyperv/handlers/main.yml +++ /dev/null @@ -1,15 +0,0 @@ ---- -- name: Restart nova-compute - win_service: - name: nova-compute - state: restarted - -- name: Restart neutron-hyperv-agent - win_service: - name: neutron-hyperv-agent - state: restarted - -- name: Restart FreeRDP-WebConnect - win_service: - name: wsgate - state: restarted diff --git a/ansible/roles/nova-hyperv/tasks/check.yml b/ansible/roles/nova-hyperv/tasks/check.yml deleted file mode 100644 index ed97d539c0..0000000000 --- a/ansible/roles/nova-hyperv/tasks/check.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/ansible/roles/nova-hyperv/tasks/config.yml b/ansible/roles/nova-hyperv/tasks/config.yml deleted file mode 100644 index cfe3b73ed1..0000000000 --- a/ansible/roles/nova-hyperv/tasks/config.yml +++ /dev/null @@ -1,39 +0,0 @@ ---- -- name: Create log directory - win_command: "cmd /c mkdir {{ log_dir }}" - args: - creates: "{{ log_dir }}" - -- name: Configure nova-compute - win_template: - src: "{{ item }}" - dest: "%PROGRAMFILES%\\Cloudbase Solutions\\OpenStack\\Nova\\etc\\nova.conf" - with_first_found: - - "{{ node_custom_config }}/nova-hyperv/{{ inventory_hostname }}/nova_hyperv.conf" - - "{{ node_custom_config }}/nova-hyperv/nova_hyperv.conf" - - "nova_hyperv.conf.j2" - notify: Restart nova-compute - -- name: Configure neutron-hyperv-agent - win_template: - src: "{{ item }}" - dest: "%PROGRAMFILES%\\Cloudbase Solutions\\OpenStack\\Nova\\etc\\neutron_hyperv_agent.conf" - with_first_found: - - "{{ node_custom_config }}/nova-hyperv/{{ inventory_hostname }}/neutron_hyperv_agent.conf" - - "{{ node_custom_config }}/nova-hyperv/neutron_hyperv_agent.conf" - - "neutron_hyperv_agent.conf.j2" - notify: Restart neutron-hyperv-agent - -- name: Configure FreeRDP-WebConnect - win_template: - src: "{{ item }}" - dest: "%PROGRAMFILES%\\Cloudbase Solutions\\FreeRDP-WebConnect\\etc\\wsgate.ini" - with_first_found: - - "{{ node_custom_config }}/nova-hyperv/{{ inventory_hostname }}/wsgate.ini" - - "{{ node_custom_config }}/nova-hyperv/wsgate.ini" - - "wsgate.ini.j2" - notify: Restart FreeRDP-WebConnect - -- include_tasks: copy-certs.yml - when: - - kolla_copy_ca_into_containers | bool diff --git a/ansible/roles/nova-hyperv/tasks/copy-certs.yml b/ansible/roles/nova-hyperv/tasks/copy-certs.yml deleted file mode 100644 index ee01137018..0000000000 --- a/ansible/roles/nova-hyperv/tasks/copy-certs.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- name: "Copy certificates and keys for {{ project_name }}" - import_role: - role: service-cert-copy - vars: - project_services: "{{ nova_hyperv_services }}" diff --git a/ansible/roles/nova-hyperv/tasks/deploy.yml b/ansible/roles/nova-hyperv/tasks/deploy.yml deleted file mode 100644 index 9e64c36929..0000000000 --- a/ansible/roles/nova-hyperv/tasks/deploy.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- include_tasks: install.yml - when: inventory_hostname in groups['hyperv'] - -- include_tasks: config.yml - when: inventory_hostname in groups['hyperv'] diff --git a/ansible/roles/nova-hyperv/tasks/install.yml b/ansible/roles/nova-hyperv/tasks/install.yml deleted file mode 100644 index c875c94015..0000000000 --- a/ansible/roles/nova-hyperv/tasks/install.yml +++ /dev/null @@ -1,26 +0,0 @@ ---- -- name: Create MSIs download directory - win_command: "cmd /c mkdir {{ msi_dir }}" - args: - creates: "{{ msi_dir }}" - -- name: Download Nova and FreeRDP-WebConnect MSIs - win_get_url: - url: "{{ item.name }}" - dest: "{{ item.destination }}" - force: no - with_items: - - { name: "{{ nova_msi_url }}", destination: "{{ msi_dir }}\\{{ hyperv_compute_msi }}" } - - { name: "{{ freerdp_msi_url }}", destination: "{{ msi_dir }}\\{{ freerdp_webconnect_msi }}" } - -- name: Install the Compute MSI - win_command: "msiexec /i {{ hyperv_compute_msi }} SKIPNOVACONF=0" - args: - chdir: "{{ msi_dir }}" - creates: "%PROGRAMFILES%\\Cloudbase Solutions\\OpenStack\\Nova\\bin" - -- name: Install the FreeRDP-WebConnect MSI - win_command: "msiexec.exe /i {{ freerdp_webconnect_msi }}" - args: - chdir: "{{ msi_dir }}" - creates: "%PROGRAMFILES%\\Cloudbase Solutions\\FreeRDP-WebConnect\\Binaries" diff --git a/ansible/roles/nova-hyperv/tasks/main.yml b/ansible/roles/nova-hyperv/tasks/main.yml deleted file mode 100644 index 1fb862db52..0000000000 --- a/ansible/roles/nova-hyperv/tasks/main.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -- name: Warn about deprecation - debug: - msg: > - Nova Hyper-V deployment role is deprecated in Ussuri and will be removed - in Victoria. Please read release notes for more background. - -- include_tasks: "{{ kolla_action }}.yml" diff --git a/ansible/roles/nova-hyperv/tasks/precheck.yml b/ansible/roles/nova-hyperv/tasks/precheck.yml deleted file mode 100644 index ed97d539c0..0000000000 --- a/ansible/roles/nova-hyperv/tasks/precheck.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/ansible/roles/nova-hyperv/tasks/pull.yml b/ansible/roles/nova-hyperv/tasks/pull.yml deleted file mode 100644 index ed97d539c0..0000000000 --- a/ansible/roles/nova-hyperv/tasks/pull.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/ansible/roles/nova-hyperv/tasks/reconfigure.yml b/ansible/roles/nova-hyperv/tasks/reconfigure.yml deleted file mode 100644 index f670a5b78d..0000000000 --- a/ansible/roles/nova-hyperv/tasks/reconfigure.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -- include_tasks: deploy.yml diff --git a/ansible/roles/nova-hyperv/tasks/stop.yml b/ansible/roles/nova-hyperv/tasks/stop.yml deleted file mode 100644 index ed97d539c0..0000000000 --- a/ansible/roles/nova-hyperv/tasks/stop.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/ansible/roles/nova-hyperv/templates/neutron_hyperv_agent.conf.j2 b/ansible/roles/nova-hyperv/templates/neutron_hyperv_agent.conf.j2 deleted file mode 100644 index a15e0edd4b..0000000000 --- a/ansible/roles/nova-hyperv/templates/neutron_hyperv_agent.conf.j2 +++ /dev/null @@ -1,26 +0,0 @@ -[DEFAULT] -debug = {{ openstack_logging_debug }} -control_exchange = neutron -rpc_backend = rabbit -log_dir = C:\OpenStack\Log -log_file = neutron-hyperv-agent.log -transport_url = {{ rpc_transport_url }} - -[AGENT] -polling_interval = 2 -physical_network_vswitch_mappings = *:{{ vswitch_name }} -enable_metrics_collection = false -enable_qos_extension = false - -[SECURITYGROUP] -firewall_driver = hyperv -enable_security_group = true - -[oslo_messaging_notifications] -transport_url = {{ notify_transport_url }} -{% if nova_enabled_notification_topics %} -driver = messagingv2 -topics = {{ nova_enabled_notification_topics | map(attribute='name') | join(',') }} -{% else %} -driver = noop -{% endif %} diff --git a/ansible/roles/nova-hyperv/templates/nova_hyperv.conf.j2 b/ansible/roles/nova-hyperv/templates/nova_hyperv.conf.j2 deleted file mode 100644 index 260b0774c6..0000000000 --- a/ansible/roles/nova-hyperv/templates/nova_hyperv.conf.j2 +++ /dev/null @@ -1,78 +0,0 @@ -[DEFAULT] -compute_driver = compute_hyperv.driver.HyperVDriver -instances_path = C:\OpenStack\Instances -use_cow_images = true -flat_injected = true -mkisofs_cmd = C:\Program Files\Cloudbase Solutions\OpenStack\Nova\bin\mkisofs.exe -debug = {{ openstack_logging_debug }} -allow_resize_to_same_host = true -running_deleted_instance_action = reap -running_deleted_instance_poll_interval = 120 -resize_confirm_window = 5 -resume_guests_state_on_host_boot = true -rpc_response_timeout = 1800 -lock_path = C:\OpenStack\Log -vif_plugging_is_fatal = false -vif_plugging_timeout = 60 -rpc_backend = rabbit -log_dir = C:\OpenStack\Log -log_file = nova-compute.log -force_config_drive = True -transport_url = {{ rpc_transport_url }} - -[placement] -auth_type = password -auth_url = {{ keystone_admin_url }}/v3 -project_name = service -username = {{ placement_keystone_user }} -password = {{ placement_keystone_password }} -project_domain_name = {{ default_project_domain_name }} -user_domain_name = {{ default_user_domain_name }} -os_region_name = {{ openstack_region_name }} -cafile = {{ openstack_cacert }} - -[glance] -api_servers = {{ internal_protocol }}://{{ glance_internal_fqdn | put_address_in_context('url') }}:{{ glance_api_port }} -cafile = {{ openstack_cacert }} - - -[hyperv] -vswitch_name = {{ vswitch_name }} -limit_cpu_features = false -config_drive_inject_password = true -qemu_img_cmd = C:\Program Files\Cloudbase Solutions\OpenStack\Nova\bin\qemu-img.exe -config_drive_cdrom = true -dynamic_memory_ratio = 1 -enable_instance_metrics_collection = false - -[rdp] -enabled = true -html5_proxy_base_url = {{ public_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ rdp_port }} - -[neutron] -url = {{ internal_protocol }}://{{ neutron_internal_fqdn | put_address_in_context('url') }}:{{ neutron_server_port }} -auth_strategy = keystone -project_domain_name = default -project_name = service -user_domain_name = default -username = {{ neutron_keystone_user }} -password = {{ neutron_keystone_password }} -auth_url = {{ keystone_admin_url }}/v3 -auth_type = v3password -cafile = {{ openstack_cacert }} - -[oslo_messaging_notifications] -transport_url = {{ notify_transport_url }} -{% if nova_enabled_notification_topics %} -driver = messagingv2 -topics = {{ nova_enabled_notification_topics | map(attribute='name') | join(',') }} -{% else %} -driver = noop -{% endif %} - -[notifications] -{% if not enable_searchlight | bool %} -notification_format = unversioned -{% else %} -notification_format = both -{% endif %} diff --git a/ansible/roles/nova-hyperv/templates/wsgate.ini.j2 b/ansible/roles/nova-hyperv/templates/wsgate.ini.j2 deleted file mode 100644 index 1079667967..0000000000 --- a/ansible/roles/nova-hyperv/templates/wsgate.ini.j2 +++ /dev/null @@ -1,28 +0,0 @@ -[global] -debug = {{ openstack_logging_debug }} -redirect = false -port = {{ rdp_port }} -bindaddr = {% for host in groups['hyperv'] %}{% for ip in hostvars[inventory_hostname]['ansible_ip_addresses'] %}{% if host == ip %}{{ ip }}{% endif %}{% endfor %}{% endfor %} - - -[http] -documentroot = C:\Program Files\Cloudbase Solutions\FreeRDP-WebConnect\WebRoot\ - -[ssl] -port=4430 -bindaddr = {% for host in groups['hyperv'] %}{% for ip in hostvars[inventory_hostname]['ansible_ip_addresses'] %}{% if host == ip %}{{ ip }}{% endif %}{% endfor %}{% endfor %} - -certfile = C:\Program Files\Cloudbase Solutions\FreeRDP-WebConnect\etc\server.cer - -[rdpoverride] -nofullwindowdrag = true - -[openstack] -authurl = {{ keystone_admin_url }}/v2.0 -tenantname = service -username = {{ nova_keystone_user }} -password = {{ nova_keystone_password }} - -[hyperv] -hostusername = {{ hyperv_username }} -hostpassword = {{ hyperv_password }} diff --git a/ansible/roles/nova/defaults/main.yml b/ansible/roles/nova/defaults/main.yml index 533c595b7d..850ab8fc49 100644 --- a/ansible/roles/nova/defaults/main.yml +++ b/ansible/roles/nova/defaults/main.yml @@ -35,12 +35,6 @@ nova_services: external: true port: "{{ nova_metadata_port }}" listen_port: "{{ nova_metadata_listen_port }}" - nova_rdp: - enabled: "{{ enable_nova|bool and nova_console == 'rdp' }}" - mode: "http" - external: false - port: "{{ rdp_port }}" - host_group: "hyperv" nova-scheduler: container_name: "nova_scheduler" group: "nova-scheduler" diff --git a/ansible/site.yml b/ansible/site.yml index 4c21276a9c..7c76da9c17 100644 --- a/ansible/site.yml +++ b/ansible/site.yml @@ -35,7 +35,6 @@ - enable_haproxy_{{ enable_haproxy | bool }} - enable_heat_{{ enable_heat | bool }} - enable_horizon_{{ enable_horizon | bool }} - - enable_hyperv_{{ enable_hyperv | bool }} - enable_influxdb_{{ enable_influxdb | bool }} - enable_ironic_{{ enable_ironic | bool }} - enable_iscsid_{{ enable_iscsid | bool }} @@ -728,17 +727,6 @@ tags: ovn, when: enable_ovn | bool } -- name: Apply role nova-hyperv - gather_facts: false - hosts: - - hyperv - - '&enable_hyperv_True' - serial: '{{ kolla_serial|default("0") }}' - roles: - - { role: nova-hyperv, - tags: nova-hyperv, - when: enable_hyperv | bool } - # NOTE(gmmaha): Please do not change the order listed here. The current order is a # workaround to fix the bug https://bugs.launchpad.net/kolla/+bug/1546789 - name: Apply role neutron diff --git a/doc/source/reference/compute/hyperv-guide.rst b/doc/source/reference/compute/hyperv-guide.rst deleted file mode 100644 index ec62667327..0000000000 --- a/doc/source/reference/compute/hyperv-guide.rst +++ /dev/null @@ -1,173 +0,0 @@ -.. _hyperv-guide: - -=========== -Nova HyperV -=========== - -.. note:: - - Hyper-V support has been deprecated and will be removed in the Victoria cycle. - -Overview -~~~~~~~~ -Currently, Kolla can deploy the following OpenStack services for Hyper-V: - -* nova-compute -* neutron-hyperv-agent -* wsgate - -It is possible to use Hyper-V as a compute node within an OpenStack Deployment. -The nova-compute service runs as openstack-compute, a 64-bit service directly -upon the Windows platform with the Hyper-V role enabled. The necessary Python -components as well as the nova-compute service are installed directly onto -the Windows platform. Windows Clustering Services are not needed for -functionality within the OpenStack infrastructure. - -The wsgate is the FreeRDP-WebConnect service that is used for accessing -virtual machines from Horizon web interface. - -.. note:: - - HyperV services are not currently deployed as containers. This functionality - is in development. The current implementation installs OpenStack services - via MSIs. - - -.. note:: - - HyperV services do not currently support outside the box upgrades. Manual - upgrades are required for this process. MSI release versions can be found - `here `__. - To upgrade an existing MSI to a newer version, simply uninstall the current - MSI and install the newer one. This will not delete the configuration files. - To preserve the configuration files, check the Skip configuration checkbox - during installation. - - -Preparation for Hyper-V node -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Ansible communicates with Hyper-V host via WinRM protocol. An HTTPS WinRM -listener needs to be configured on the Hyper-V host, which can be easily -created with `this PowerShell script -`__. - - -A virtual switch has to be created with which Hyper-V virtual machines -communicate with OpenStack. To quickly enable an interface to be used as a -Virtual Interface the following PowerShell may be used: - -.. code-block:: console - - PS C:\> $if = Get-NetIPAddress -IPAddress 192* | Get-NetIPInterface - PS C:\> New-VMSwitch -NetAdapterName $if.ifAlias -Name YOUR_BRIDGE_NAME -AllowManagementOS $false - -.. note:: - - It is very important to make sure that when you are using a Hyper-V node - with only 1 NIC the ``-AllowManagementOS`` option is set on ``True``, - otherwise you will lose connectivity to the Hyper-V node. - - -To prepare the Hyper-V node to be able to attach to volumes provided by -cinder you must first make sure the Windows iSCSI initiator service is -running and started automatically. - -.. code-block:: console - - PS C:\> Set-Service -Name MSiSCSI -StartupType Automatic - PS C:\> Start-Service MSiSCSI - -Preparation for Kolla deployer node -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Hyper-V role is required, enable it in ``/etc/kolla/globals.yml``: - -.. code-block:: yaml - - enable_hyperv: "yes" - -Hyper-V options are also required in ``/etc/kolla/globals.yml``: - -.. code-block:: yaml - - hyperv_username: - hyperv_password: - vswitch_name: - nova_msi_url: "https://www.cloudbase.it/downloads/HyperVNovaCompute_Beta.msi" - -If tenant networks are to be built using VLAN add corresponding type in -``/etc/kolla/globals.yml``: - -.. code-block:: yaml - - neutron_tenant_network_types: 'flat,vlan' - -The virtual switch is the same one created on the HyperV setup part. -For nova_msi_url, different Nova MSI (Mitaka/Newton/Ocata) versions can -be found on `Cloudbase website -`__. - -Add the Hyper-V node in ``ansible/inventory`` file: - -.. code-block:: ini - - [hyperv] - - - [hyperv:vars] - ansible_user= - ansible_password= - ansible_port=5986 - ansible_connection=winrm - ansible_winrm_server_cert_validation=ignore - -``pywinrm`` package needs to be installed in order for Ansible to work -on the HyperV node: - -.. code-block:: console - - pip install "pywinrm>=0.2.2" - -.. note:: - - In case of a test deployment with controller and compute nodes as - virtual machines on Hyper-V, if VLAN tenant networking is used, - trunk mode has to be enabled on the VMs: - -.. code-block:: console - - Set-VMNetworkAdapterVlan -Trunk -AllowedVlanIdList -NativeVlanId 0 - -networking-hyperv mechanism driver is needed for neutron-server to -communicate with HyperV nova-compute. This can be built with source -images by default. Manually it can be intalled in neutron-server -container with pip: - -.. code-block:: console - - pip install "networking-hyperv>=4.0.0" - -For neutron_extension_drivers, ``port_security`` and ``qos`` are -currently supported by the networking-hyperv mechanism driver. -By default only ``port_security`` is set. - - -Verify Operations -~~~~~~~~~~~~~~~~~ - -OpenStack HyperV services can be inspected and managed from PowerShell: - -.. code-block:: console - - PS C:\> Get-Service nova-compute - PS C:\> Get-Service neutron-hyperv-agent - -.. code-block:: console - - PS C:\> Restart-Service nova-compute - PS C:\> Restart-Service neutron-hyperv-agent - -For more information on OpenStack HyperV, see -:nova-doc:`Hyper-V virtualization platform -`. diff --git a/doc/source/reference/compute/index.rst b/doc/source/reference/compute/index.rst index 5dd9b175d9..f38377a85c 100644 --- a/doc/source/reference/compute/index.rst +++ b/doc/source/reference/compute/index.rst @@ -3,17 +3,16 @@ Compute ======= This section describes configuring nova hypervisors and -compute services like HyperV and so on. +compute services. .. note:: - Hyper-V and VMware support have been deprecated and will + VMware support has been deprecated and will be removed in the Victoria cycle. .. toctree:: :maxdepth: 1 - hyperv-guide libvirt-guide masakari-guide nova-cells-guide diff --git a/doc/source/reference/compute/nova-guide.rst b/doc/source/reference/compute/nova-guide.rst index b53635cc58..06096ab260 100644 --- a/doc/source/reference/compute/nova-guide.rst +++ b/doc/source/reference/compute/nova-guide.rst @@ -16,15 +16,6 @@ The virtualisation driver may be selected via ``nova_compute_virt_type`` in ``globals.yml``. Supported options are ``qemu``, ``kvm``, and ``vmware``. The default is ``kvm``. -HyperV ------- - -.. note:: - - Hyper-V support has been deprecated and will be removed in the Victoria cycle. - -Information on using Nova with HyperV can be found in :doc:`hyperv-guide`. - Libvirt ------- diff --git a/etc/kolla/globals.yml b/etc/kolla/globals.yml index ef9b245092..ca7e2074bb 100644 --- a/etc/kolla/globals.yml +++ b/etc/kolla/globals.yml @@ -289,7 +289,6 @@ #enable_horizon_vitrage: "{{ enable_vitrage | bool }}" #enable_horizon_watcher: "{{ enable_watcher | bool }}" #enable_horizon_zun: "{{ enable_zun | bool }}" -#enable_hyperv: "no" #enable_influxdb: "{{ enable_monasca | bool or (enable_cloudkitty | bool and cloudkitty_storage_backend == 'influxdb') }}" #enable_ironic: "no" #enable_ironic_ipxe: "no" @@ -523,19 +522,6 @@ # Enable distributed floating ip for OVN deployments #neutron_ovn_distributed_fip: "no" -################# -# Hyper-V options -################# - -# NOTE: Hyper-V support has been deprecated and will be removed in the Victoria cycle. - -# Hyper-V can be used as hypervisor -#hyperv_username: "user" -#hyperv_password: "password" -#vswitch_name: "vswitch" -# URL from which Nova Hyper-V MSI is downloaded -#nova_msi_url: "https://www.cloudbase.it/downloads/HyperVNovaCompute_Beta.msi" - ############################# # Horizon - Dashboard Options ############################# diff --git a/releasenotes/notes/remove-hyperv-fbffba997e1abb61.yaml b/releasenotes/notes/remove-hyperv-fbffba997e1abb61.yaml new file mode 100644 index 0000000000..0f52a94af5 --- /dev/null +++ b/releasenotes/notes/remove-hyperv-fbffba997e1abb61.yaml @@ -0,0 +1,4 @@ +--- +upgrade: + - | + Support for deploying with Hyper-V integrations has been removed. diff --git a/tests/templates/inventory.j2 b/tests/templates/inventory.j2 index 1c3c755559..86b3213b54 100644 --- a/tests/templates/inventory.j2 +++ b/tests/templates/inventory.j2 @@ -113,16 +113,6 @@ control [haproxy:children] network -[hyperv] -#hyperv_host - -[hyperv:vars] -#ansible_user=user -#ansible_password=password -#ansible_port=5986 -#ansible_connection=winrm -#ansible_winrm_server_cert_validation=ignore - [mariadb:children] control