Adding additional Python wheels to the repo
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack-Ansible |
Fix Released
|
Wishlist
|
Kevin Carter | ||
Liberty |
Fix Released
|
Wishlist
|
Unassigned | ||
Trunk |
Fix Released
|
Wishlist
|
Kevin Carter |
Bug Description
The repo-build playbook uses the py_pkg lookup plugin to gather a list of Python packages that need to exist on the repo. The py_pkgs filter is used to search the playbooks directory for requirements files or YAML files in defaults or vars subdirectories. If, for example, a cinder backend requires an additional library the overrides file needs updating in /etc/openstack_
I think the lookup plugin should be modified so that at the very least it picks up variables that have been overridden in /etc/openstack_
The question of adding in additional Python packages relates to using alternative cinder backends. Has the project got any thoughts on using including all the applicable libraries by default?
All of the libs that are found within the global- requirements. txt within https:/ /github. com/openstack/ requirements are built within the repo server environment. Within the build process the lookup plugin is used to see what packages are being used throughout the stack, that data is then compared to the global requirements and a difference is generated. All of the requirements files are built using one of two pip build tasks that leverage a constraints file to provide boundaries for the build process.
The output of a build can be found here: rpc-repo. rackspace. com/os- releases/ 12.0.0/ requirements_ local_filtered. txt rpc-repo. rackspace. com/os- releases/ 12.0.0/ requirements_ global_ requirements. txt rpc-repo. rackspace. com/os- releases/ 12.0.0/ requirements_ constraints. txt
http://
http://
http://
Within that build process an absolute requirements file is generated which will allow a deployer to create all of the base requirements as needed at anytime: rpc-repo. rackspace. com/os- releases/ 12.0.0/ requirements_ absolute_ requirements. txt
http://
All of that leads me to the question of, what alternative lib, thats not part of upstream, are we not already building?
As an aside, you could add additional deps to the global- requirement- pins.txt which would load additional packages / pins into the build / constraint process. /github. com/openstack/ openstack- ansible/ blob/master/ global- requirement- pins.txt
* https:/
That said it may be a good idea to scan /etc/openstack_ deploy (as you've mentioned) for additional packages / pins. The plugin already loads in using a list and should be a trivial matter to extend however its never been tested with more than one source. If that's something that you wouldn't mind taking on I'd be for supporting that as an extension for further flexibility.