Issue #3980
closedIssue #3981: Switch Pulp3 settings to Dynaconf
Redis only works on localhost
Description
Problem¶
While deploying Pulp to openshift my Redis was in another container on another IP, not localhost. I correctly configured my server.yaml file so that it should connect to the other hostname (not localhost). Everytime I started RQ it would tell me: error cannot connect to localhost:6379
.
Root Cause¶
We are expecting to configure Redis through the PulpWorker, but Redis doesn't work that way. Even before RQ instantiates the custom worker class, i.e. pulpcore.tasking.worker.PulpWorker, it attempts to connect to RQ and clean out previous old data. Thus how we are configuring RQ is incorrect.
Solution¶
1. Have RQ use its own config file like it wants to. I tested this and it works well. See "Using a config file" here: http://python-rq.org/docs/workers/
Lingering Problems¶
The pulp config file is yaml and it also needs these settings so users now need to put the same data in two places.
Problem: Pulp can't be configured using environment variables
Solution: use dynaconf to manage all of Pulp configuration settings
This patch also adds pulpcore.rqconfig module that is dynamically generated from the Django settings generated by dynaconf. The rq workers use this module for their configuration.
The default location of the config file is now at
/etc/pulp/settings.py
. Pulp can operate without by relying on environment variables.closes: #3981 https://pulp.plan.io/issues/3981
closes: #3879 https://pulp.plan.io/issues/3879
closes: #3980 https://pulp.plan.io/issues/3980
closes #3618 https://pulp.plan.io/issues/3618
closes: #3943 https://pulp.plan.io/issues/3943