From 5bffb86bbb0f9e41e17f5ef31d721a9b733262bc Mon Sep 17 00:00:00 2001 From: Logan V Date: Mon, 6 May 2019 11:00:37 -0500 Subject: [PATCH] Remove nova placement API Placement is now a separate service and has been removed from nova[1] and implemented as a separate service in OSA[2]. As such, the nova in-tree placement API is now disabled and can be removed. [1] https://review.opendev.org/#/c/618215/ [2] https://review.opendev.org/#/c/656891/ Depends-On: I01df855d8b9255d24efe16ab053ffa491fda351f Depends-On: I25ce79b9e3492cb075c50beed90ea2b78055e474 Change-Id: I2f5d4c2f1fc1418bc4f4c4baa1ce3c90b88208fc --- defaults/main.yml | 40 ------------- ...va_placement_removal-71bccb809e1e3b2f.yaml | 6 ++ tasks/nova_service_setup.yml | 58 ++++--------------- templates/nova.conf.j2 | 25 ++++---- tests/inventory | 4 -- vars/debian.yml | 1 - vars/redhat-7.yml | 1 - vars/suse.yml | 1 - 8 files changed, 28 insertions(+), 108 deletions(-) create mode 100644 releasenotes/notes/nova_placement_removal-71bccb809e1e3b2f.yaml diff --git a/defaults/main.yml b/defaults/main.yml index c236f79e..e33ebb29 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -263,32 +263,6 @@ nova_enable_instance_password: True nova_force_config_drive: False nova_nested_virt_enabled: False -## Nova placement -nova_placement_service_enabled: True -nova_placement_service_user_domain_id: Default -nova_placement_service_project_domain_id: Default -nova_placement_service_interface: internal -nova_placement_service_in_ldap: "{{ nova_service_in_ldap }}" -nova_placement_service_username: placement -nova_placement_service_name: placement -nova_placement_service_role_name: "{{ nova_service_role_name }}" -nova_placement_service_type: placement -nova_placement_service_project_name: "{{ nova_service_project_name }}" -nova_placement_service_region: "{{ nova_service_region }}" -nova_placement_service_description: "Openstack Placement Service" -nova_placement_service_port: 8780 -nova_placement_service_proto: "{{ nova_service_proto }}" -nova_placement_ssl: false -nova_placement_service_publicuri_proto: "{{ openstack_service_publicuri_proto | default(nova_placement_service_proto) }}" -nova_placement_service_adminuri_proto: "{{ openstack_service_adminuri_proto | default(nova_placement_service_proto) }}" -nova_placement_service_internaluri_proto: "{{ openstack_service_internaluri_proto | default(nova_placement_service_proto) }}" -nova_placement_service_publicuri: "{{ nova_placement_service_publicuri_proto }}://{{ external_lb_vip_address }}:{{ nova_placement_service_port }}" -nova_placement_service_publicurl: "{{ nova_placement_service_publicuri }}" -nova_placement_service_adminuri: "{{ nova_placement_service_adminuri_proto }}://{{ internal_lb_vip_address }}:{{ nova_placement_service_port }}" -nova_placement_service_adminurl: "{{ nova_placement_service_adminuri }}" -nova_placement_service_internaluri: "{{ nova_placement_service_internaluri_proto }}://{{ internal_lb_vip_address }}:{{ nova_placement_service_port }}" -nova_placement_service_internalurl: "{{ nova_placement_service_internaluri }}" - # Uwsgi settings nova_wsgi_processes_max: 16 nova_wsgi_processes: "{{ [[ansible_processor_vcpus|default(1), 1] | max * 2, nova_wsgi_processes_max] | min }}" @@ -468,7 +442,6 @@ nova_conductor_init_overrides: {} nova_novncproxy_init_overrides: {} nova_scheduler_init_overrides: {} nova_spicehtml5proxy_init_overrides: {} -nova_placement_api_init_overrides: {} nova_serialproxy_init_overrides: {} ## Service Name-Group Mapping @@ -534,18 +507,6 @@ nova_services: condition: "{{ nova_console_type == 'spice' }}" start_order: 5 execstarts: "{{ nova_bin }}/nova-spicehtml5proxy" - nova-placement-api: - group: nova_api_placement - service_name: nova-placement-api - init_config_overrides: "{{ nova_placement_api_init_overrides }}" - condition: "{{ nova_placement_service_enabled | bool }}" - start_order: 1 - execstarts: "{{ nova_uwsgi_bin }}/uwsgi --autoload --ini /etc/uwsgi/nova-placement-api.ini" - execreloads: "{{ nova_uwsgi_bin }}/uwsgi --reload /var/run/nova-placement-api/nova-placement-api.pid" - wsgi_app: True - uwsgi_port: "{{ nova_placement_service_port }}" - wsgi_name: nova-placement-api - wsgi_overrides: "{{ nova_placement_uwsgi_ini_overrides }}" nova-serialconsole-proxy: group: nova_console service_name: nova-serialproxy @@ -603,7 +564,6 @@ nova_rootwrap_conf_overrides: {} nova_api_paste_ini_overrides: {} nova_policy_overrides: {} nova_vendor_data_overrides: {} -nova_placement_uwsgi_ini_overrides: {} nova_api_metadata_uwsgi_ini_overrides: {} nova_api_os_compute_uwsgi_ini_overrides: {} diff --git a/releasenotes/notes/nova_placement_removal-71bccb809e1e3b2f.yaml b/releasenotes/notes/nova_placement_removal-71bccb809e1e3b2f.yaml new file mode 100644 index 00000000..5ef2d78e --- /dev/null +++ b/releasenotes/notes/nova_placement_removal-71bccb809e1e3b2f.yaml @@ -0,0 +1,6 @@ +--- +deprecations: + - | + nova-placement-api has been removed from the os_nova role, along with all + `nova_placement_*` variables. Please review the `os_placement` role for + information about how to configure the new placement service. diff --git a/tasks/nova_service_setup.yml b/tasks/nova_service_setup.yml index 051beaf4..2de2c801 100644 --- a/tasks/nova_service_setup.yml +++ b/tasks/nova_service_setup.yml @@ -27,76 +27,49 @@ os_keystone_service: cloud: default state: present - name: "{{ item.name }}" - service_type: "{{ item.service_type }}" - description: "{{ item.description }}" + name: "{{ nova_service_name }}" + service_type: "{{ nova_service_type }}" + description: "{{ nova_service_description }}" endpoint_type: admin verify: "{{ not keystone_service_adminuri_insecure }}" register: add_service until: add_service is success retries: 5 delay: 10 - with_items: - - name: "{{ nova_service_name }}" - service_type: "{{ nova_service_type }}" - description: "{{ nova_service_description }}" - - name: "{{ nova_placement_service_name }}" - service_type: "{{ nova_placement_service_type }}" - description: "{{ nova_placement_service_description }}" - name: Add service users os_user: cloud: default state: present - name: "{{ item.name }}" - password: "{{ item.password }}" + name: "{{ nova_service_user_name }}" + password: "{{ nova_service_password }}" domain: default - default_project: "{{ item.default_project }}" + default_project: "{{ nova_service_project_name }}" endpoint_type: admin verify: "{{ not keystone_service_adminuri_insecure }}" register: add_service when: - - item.condition + - not nova_service_in_ldap | bool until: add_service is success retries: 5 delay: 10 no_log: True - with_items: - - name: "{{ nova_service_user_name }}" - password: "{{ nova_service_password }}" - default_project: "{{ nova_service_project_name }}" - condition: "{{ not nova_service_in_ldap | bool }}" - - name: "{{ nova_placement_service_username }}" - password: "{{ nova_placement_service_password }}" - default_project: "{{ nova_placement_service_project_name }}" - condition: "{{ not nova_service_in_ldap | bool }}" - loop_control: - label: "{{ item.name }}" - name: Add service users to admin roles os_user_role: cloud: default state: present - user: "{{ item.user }}" - role: "{{ item.role }}" - project: "{{ item.project }}" + user: "{{ nova_service_user_name }}" + role: "{{ nova_service_role_name }}" + project: "{{ nova_service_project_name }}" endpoint_type: admin verify: "{{ not keystone_service_adminuri_insecure }}" register: add_service when: - - item.condition + - not nova_service_in_ldap | bool until: add_service is success retries: 5 delay: 10 - with_items: - - user: "{{ nova_service_user_name }}" - role: "{{ nova_service_role_name }}" - project: "{{ nova_service_project_name }}" - condition: "{{ not nova_service_in_ldap | bool }}" - - user: "{{ nova_placement_service_username }}" - role: "{{ nova_placement_service_role_name }}" - project: "{{ nova_placement_service_project_name }}" - condition: "{{ not nova_placement_service_in_ldap | bool }}" - name: Add endpoints to keystone endpoint catalog os_keystone_endpoint: @@ -122,12 +95,3 @@ - service: "{{ nova_service_name }}" interface: "admin" url: "{{ nova_service_adminurl }}" - - service: "{{ nova_placement_service_name }}" - interface: "public" - url: "{{ nova_placement_service_publicurl }}" - - service: "{{ nova_placement_service_name }}" - interface: "internal" - url: "{{ nova_placement_service_internalurl }}" - - service: "{{ nova_placement_service_name }}" - interface: "admin" - url: "{{ nova_placement_service_adminurl }}" diff --git a/templates/nova.conf.j2 b/templates/nova.conf.j2 index dca9981f..d883c3ad 100644 --- a/templates/nova.conf.j2 +++ b/templates/nova.conf.j2 @@ -168,14 +168,12 @@ notification_format = {% if nova_versioned_notification_enabled %}both{% else %} {% endif %} [placement] -region_name = {{ nova_placement_service_region }} -valid_interfaces = {{ nova_placement_service_interface }} -auth_type = "password" -password = {{ nova_placement_service_password }} -username = {{ nova_placement_service_username }} -project_name = {{ nova_placement_service_project_name }} -user_domain_name = {{ nova_placement_service_user_domain_id }} -project_domain_name = {{ nova_placement_service_project_domain_id }} +auth_type = password +username = {{ placement_service_user_name }} +password = {{ placement_service_password }} +project_name = {{ placement_service_project_name }} +user_domain_id = {{ placement_service_user_domain_id }} +project_domain_id = {{ placement_service_project_domain_id }} auth_url = {{ keystone_service_adminurl }} insecure = {{ keystone_service_adminuri_insecure | bool }} @@ -287,13 +285,12 @@ auth_endpoint = {{ keystone_service_internaluri }}/v3 [key_manager] backend = barbican -region_name = {{ nova_placement_service_region }} auth_type = "password" -password = {{ nova_placement_service_password }} -username = {{ nova_placement_service_username }} -project_name = {{ nova_placement_service_project_name }} -user_domain_name = {{ nova_placement_service_user_domain_id }} -project_domain_name = {{ nova_placement_service_project_domain_id }} +username = {{ placement_service_user_name }} +password = {{ placement_service_password }} +project_name = {{ placement_service_project_name }} +user_domain_id = {{ placement_service_user_domain_id }} +project_domain_id = {{ placement_service_project_domain_id }} auth_url = {{ keystone_service_adminurl }} insecure = {{ keystone_service_adminuri_insecure | bool }} {% endif %} diff --git a/tests/inventory b/tests/inventory index 36200172..43da4b97 100644 --- a/tests/inventory +++ b/tests/inventory @@ -97,9 +97,6 @@ openstack1 [nova_scheduler] openstack1 -[nova_api_placement] -openstack1 - [nova_all:children] nova_api_metadata nova_api_os_compute @@ -107,7 +104,6 @@ nova_compute nova_conductor nova_console nova_scheduler -nova_api_placement [utility_all] infra1 diff --git a/vars/debian.yml b/vars/debian.yml index e854ec0a..5a5fb5be 100644 --- a/vars/debian.yml +++ b/vars/debian.yml @@ -35,7 +35,6 @@ nova_devel_distro_packages: nova_service_distro_packages: - nova-api - nova-conductor - - nova-placement-api - nova-scheduler - python-memcache - python-novaclient diff --git a/vars/redhat-7.yml b/vars/redhat-7.yml index 5bec4c90..f02bcc54 100644 --- a/vars/redhat-7.yml +++ b/vars/redhat-7.yml @@ -35,7 +35,6 @@ nova_service_distro_packages: - openstack-nova-api - openstack-nova-conductor - openstack-nova-console - - openstack-nova-placement-api - openstack-nova-scheduler - python-memcached - python-novaclient diff --git a/vars/suse.yml b/vars/suse.yml index 61ea98f2..d9b1c9fd 100644 --- a/vars/suse.yml +++ b/vars/suse.yml @@ -36,7 +36,6 @@ nova_devel_distro_packages: nova_service_distro_packages: - openstack-nova-api - openstack-nova-conductor - - openstack-nova-placement-api - openstack-nova-scheduler - python-memcached - python-novaclient