Task #4961
closed[Epic] Improve Integration and Testing with Nginx and Apache
100%
Description
Problems¶
1. Currently pulp-smash tests assume nginx is in use. This assumption will make some tests difficult such as rewriting nginx configs for specific tests. Also testing how Pulp performs in various deployment types is harder when you have to go through an additional webserver.
2. We don't run the tests through Apache and Nginx on Travis. We should mirror the testing strategy we use for postgreSQL and MariaDB, which is that Travis has those different deployment types in its matrix.
3. The installer nginx and apache doesn't offer the pulp-api service. We need to figure out some way to have users who do want to use nginx and apache get both services.
4. The ansible installer user can't choose what interface the gunicorn services will bind to, this should be consistently configurable for both pulp-api and pulp-content-app
Solutions¶
1. Switch the ansible installer for pulp-api and pulp-content-app to bind to 127.0.0.1:24817 and 127.0.0.1:24816 respectively.
2. Allow ^ to be configurable via ansible variables so users can set one or both to 0.0.0.0:24816 and 0.0.0.0:24817 for example.
3. Switch pulp-smash to expect Pulp to be available directly at ports 24816 and 24817. When installing using the Ansible installer configure the gunicorn services to be available directly at those ports. Pulp smash will deal will pulp-api and pulp-content-app directly, not through nginx.
4. Fix the nginx and apache configs so that they properly reverse proxy both the pulp-api and pulp-content-app to users.
5. Extend the Travis test matrix to include running pulp-smash against gunicorn directly, through nginx as deployed by the Ansible installer, and through Apache as deployed by the ansible installer.
6. Add/Improve documentation on the various types of deployment options.
Related issues