designate/releasenotes/notes/remove-wsgi-scripts-d848069ac50cf062.yaml
Michael Johnson e6d83dfcf7 Add wsgi module to Designate and remove wsgi script
Changes in python packaging tooling mean that the wsgi_scripts
functionality via PBR may not longer function.

This patch switches Designate from using the PBR wsgi_scripts method to
using a new wsgi module that provides the same behavior as the generated
wsgi scripts provided.

A related devstack patch enables devstack to setup uWSGI to use the new
module path instead of the generated wsgi scripts.

This also aligns Designate to a new proposed OpenStack goal[1].

[1] https://review.opendev.org/c/openstack/governance/+/902807

In order to make the CI work, this patch was merged with:

zuul: Drop centos9 and make grenade non-voting

The requirements repo has dropped upper-constraints for python3.9, so
the centos9-based jobs are no longer working on master, let's drop them.

Also the grenade jobs are broken due to the referenced bug, make them
temporarily non-voting, so that we can merge the fix[0] on master first,
backport it, and then re-enable them.

[0] https://review.opendev.org/c/openstack/designate/+/902846

Related-Bug: 2109577
Depends-On: https://review.opendev.org/c/openstack/devstack/+/902758
Change-Id: If90056ae1de4a6a3557fc870497e6233088bfb02
2025-04-29 15:09:33 +00:00

30 lines
929 B
YAML

---
features:
- |
A new module, ``designate.wsgi``, has been added as a place to gather WSGI
``application`` objects. This is intended to ease deployment by providing
a consistent location for these objects. For example, if using uWSGI then
instead of:
.. code-block:: ini
[uwsgi]
wsgi-file = /bin/designate-api-wsgi
You can now use:
.. code-block:: ini
[uwsgi]
module = designate.wsgi.api:application
This also simplifies deployment with other WSGI servers that expect module
paths such as gunicorn.
upgrade:
- |
The WSGI script ``designate-api-wsgi`` has been removed. Deployment tooling
should instead reference the Python module path for the wsgi module in
Designate, ``designate.wsgi.api:application`` if their chosen WSGI server
supports this (gunicorn, uWSGI, etc.) or implement a .wsgi script
themselves if not (mod_wsgi).