Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1586080 - Add UWSGI packages to RDO Rocky
Summary: Add UWSGI packages to RDO Rocky
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: RDO
Classification: Community
Component: distribution
Version: unspecified
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: trunk
Assignee: Alfredo Moralejo
QA Contact: Shai Revivo
URL:
Whiteboard:
Depends On:
Blocks: RDO-ROCKY
TreeView+ depends on / blocked
 
Reported: 2018-06-05 13:09 UTC by Mohammed Naser
Modified: 2019-04-30 13:46 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-04-30 13:46:18 UTC
Embargoed:


Attachments (Terms of Use)

Description Mohammed Naser 2018-06-05 13:09:31 UTC
Description of problem:
The RDO packages do not currently ship anything related to uwsgi.  However, one of the recommended ways of deploying things is using uwsgi.  The packages are available in EPEL but adding EPEL and RDO together is problematic.

Comment 1 Alfredo Moralejo 2018-06-05 13:30:57 UTC
Some context:

- uwsgi is the wsgi server used to test in some OpenStack services upstream (cinder, glance, keystone, nova and barbican at least).
- OpenStack Ansible (OSA) is adding support to RDO.
- OSA is willing to use the same wsgi server used in services gates jobs.
- In RDO we currently ship httpd/mod_wsgi as wsgi server. As of today, it's used by deployment tools as TripleO or Packstack.
- gunicorn is also included in RDO Repository (used for barbican and octavia, afaik).
- uwsgi exists in Fedora and EPEL repos.
- Some fork will be needed to build it in CBS (a first scratch built failed complaining about python34-devel and gloox-devel). Some more investigation is needed to find out what other packages we may need to add to RDO as build and runtime requirements.

Comment 2 Alfredo Moralejo 2018-06-05 13:36:17 UTC
Would it be possible to evaluate gunicorn or httpd/mod_wsgi as alternatives to uwsgi in OSA?

Comment 3 Mohammed Naser 2018-06-05 13:38:57 UTC
I will reach out to the OpenStack ansible team and gather their comments on this.

Comment 4 Haïkel Guémar 2018-06-05 14:48:55 UTC
I'd prefer that we consider gunicorn for such use-cases but if openstack-ansible is committing to support RDO packages, I'm not against shipping uwsgi (probably a trimmed down version though).

Comment 5 Jesse Pretorius (Account no longer used) 2018-06-05 16:39:52 UTC
In OSA we've implemented uwsgi rather than use apache/mod_wsgi for a number of reasons:

a. uwsgi has been adopted by the development community and is therefore broadly tested, used and understood by it
b. uwsgi provides great debugging and monitoring options [1]
c. uwsgi provides adaptive process spawning, helping to scale in a simple and automated way [2]
d. uwsgi provides a fastrouter [3] and SSL support [4], negating the need to make use of a web server for the basic needs of most of the API services
e. uwsgi provides interesting ways to auto-scale using emperor [5], broodlord [6] and zerg [7] mode

[1] https://www.engagespark.com/blog/deploying-monitoring-python-web-apps-uwsgi/
[2] https://uwsgi-docs.readthedocs.io/en/latest/Cheaper.html
[3] http://uwsgi-docs.readthedocs.io/en/latest/Fastrouter.html
[4] http://uwsgi-docs.readthedocs.io/en/latest/HTTPS.html
[5] http://uwsgi-docs.readthedocs.io/en/latest/Emperor.html
[6] http://uwsgi-docs.readthedocs.io/en/latest/Broodlord.html
[7] http://uwsgi-docs.readthedocs.io/en/latest/Zerg.html

We've been using uwsgi since Pike, so our deployers are accustomed to it, so we'd really rather not change the model. As a community we'd really like to keep our tech debt low by ensuring that our deployments across all platforms are uniform, so having uwsgi in RDO packages would really help us out. It might also give the RDO community some interesting new ways to deploy. ;)

Comment 6 Alfredo Moralejo 2018-06-07 11:04:34 UTC
(In reply to Jesse Pretorius from comment #5)
> In OSA we've implemented uwsgi rather than use apache/mod_wsgi for a number
> of reasons:
> 
> a. uwsgi has been adopted by the development community and is therefore
> broadly tested, used and understood by it
> b. uwsgi provides great debugging and monitoring options [1]
> c. uwsgi provides adaptive process spawning, helping to scale in a simple
> and automated way [2]
> d. uwsgi provides a fastrouter [3] and SSL support [4], negating the need to
> make use of a web server for the basic needs of most of the API services
> e. uwsgi provides interesting ways to auto-scale using emperor [5],
> broodlord [6] and zerg [7] mode
> 
> [1]
> https://www.engagespark.com/blog/deploying-monitoring-python-web-apps-uwsgi/
> [2] https://uwsgi-docs.readthedocs.io/en/latest/Cheaper.html
> [3] http://uwsgi-docs.readthedocs.io/en/latest/Fastrouter.html
> [4] http://uwsgi-docs.readthedocs.io/en/latest/HTTPS.html
> [5] http://uwsgi-docs.readthedocs.io/en/latest/Emperor.html
> [6] http://uwsgi-docs.readthedocs.io/en/latest/Broodlord.html
> [7] http://uwsgi-docs.readthedocs.io/en/latest/Zerg.html
> 
> We've been using uwsgi since Pike, so our deployers are accustomed to it, so
> we'd really rather not change the model. As a community we'd really like to
> keep our tech debt low by ensuring that our deployments across all platforms
> are uniform, so having uwsgi in RDO packages would really help us out. It
> might also give the RDO community some interesting new ways to deploy. ;)

Sounds ok to me. I'll investigate what do we need to get it rebuilt in RDO. Could i see the list of uwsgi plugins (rpms) installed in OSA?

Comment 7 Jesse Pretorius (Account no longer used) 2018-06-07 11:20:00 UTC
From our package lists, it's a short set:

uwsgi
uwsgi-plugin-python
mod_proxy_uwsgi

I suspect that may bring in some deps. I'll have to do a build to actually validate the full set, but those are the primary packages.

Also, there are things we're not using yet, but are on the roadmap - what'll be the process of including those when we're keen to move forward for them?

Comment 8 Alfredo Moralejo 2018-06-07 16:01:49 UTC
I've been able to build uwsgi in RDO applying following patch on top of el7 branch in fedora https://github.com/amoralej/uwsgi-distgit/commit/af16f4be58b5b8376937e582c65d89ce18882094 

Haïkel, could you take a look?

Scratch build passed in https://cbs.centos.org/koji/taskinfo?taskID=443834

Packages are available in https://cbs.centos.org/koji/taskinfo?taskID=443836 in case someone want to do manual tests before pushing it.

Comment 9 Alfredo Moralejo 2018-06-07 16:58:53 UTC
I've created a new patch disabling some more plugins, including java (clojure does not exist in CentOS/RDO), rack and perl (perl-PSGI is not in RDO).

Latest scratch build is in https://cbs.centos.org/koji/taskinfo?taskID=443847

Comment 10 Alan Pevec 2018-06-07 22:49:48 UTC
"committing to support RDO packages" is the critical part, we need someone to sign up under maintainers: in the initial rdoinfo change adding uwsgi + deps

Comment 11 Alfredo Moralejo 2018-06-11 17:51:01 UTC
Could you do any test on the mentioned packages?

Comment 12 Mohammed Naser 2018-06-12 16:07:08 UTC
Yes, we've started working on implementing testing those.  I'll post reviews shortly.

Comment 13 Alfredo Moralejo 2019-04-30 13:46:18 UTC
uwsgi was rebuilt in RDO using https://github.com/rdo-common/uwsgi/commit/9059a0ea94d5ba557cbac729ca2e43f28c062cd8 and uwsgi-2.0.16-1.el7 is being used in rocky, stein and train.


Note You need to log in before you can comment on or make changes to this bug.