This version includes a partial implementation of a migration to Proxy objects for block limitations. Unfortunately that implemenation only covered cinder v3 apis and not cinder v2 apis. In the case of cinder v2 apis it just breaks on us: 2023-10-31 16:37:06,135 ERROR nodepool.PoolWorker.rax-iad-main: Error in PoolWorker: Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/nodepool/launcher.py", line 491, in run for chunk in self._assignHandlers(): File "/usr/local/lib/python3.11/site-packages/nodepool/launcher.py", line 242, in _assignHandlers reasons_to_decline = rh.getDeclinedReasons() ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/nodepool/driver/__init__.py", line 600, in getDeclinedReasons elif not self.hasProviderQuota(self.request.node_types): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/nodepool/driver/statemachine.py", line 520, in hasProviderQuota cloud_quota = self.manager.estimatedNodepoolQuota() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/nodepool/driver/utils.py", line 312, in estimatedNodepoolQuota nodepool_quota = self.getProviderLimits() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/nodepool/driver/statemachine.py", line 785, in getProviderLimits return self.adapter.getQuotaLimits() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/nodepool/driver/openstack/adapter.py", line 500, in getQuotaLimits volume = self._client.get_volume_limits() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/openstack/cloud/_block_storage.py", line 277, in get_volume_limits return self.block_storage.get_limits(**params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'Proxy' object has no attribute 'get_limits' We can exclude the broken version for now. Change-Id: Ib3bac4c47db01a1c5025c07173053495fc493ce9
Nodepool
Nodepool is a system for managing test node resources. It supports launching single-use test nodes from cloud providers as well as managing access to pre-defined pre-existing nodes. Nodepool is part of a suite of tools that form a comprehensive test system, including Zuul.
The latest documentation for Nodepool is published at: https://zuul-ci.org/docs/nodepool/
The latest documentation for Zuul is published at: https://zuul-ci.org/docs/zuul/
Getting Help
There are two Zuul-related mailing lists:
- zuul-announce
-
A low-traffic announcement-only list to which every Zuul operator or power-user should subscribe.
- zuul-discuss
-
General discussion about Zuul, including questions about how to use it, and future development.
You will also find Zuul developers in the #zuul channel on Freenode IRC.
Contributing
To browse the latest code, see: https://opendev.org/zuul/nodepool To clone the latest code, use git clone https://opendev.org/zuul/nodepool
Bugs are handled at: https://storyboard.openstack.org/#!/project/zuul/nodepool
Code reviews are handled by gerrit at https://review.opendev.org
After creating a Gerrit account, use git review to submit patches. Example:
# Do your commits
$ git review
# Enter your username if prompted
Join #zuul on Freenode to discuss development or usage.
License
Nodepool is free software, licensed under the Apache License, version 2.0.
Python Version Support
Nodepool requires Python 3. It does not support Python 2.