Manage a pool of nodes for a distributed test infrastructure
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
James E. Blair 1e311031ec Zuul: add file extension to playbook path 1 year ago
devstack Remove opensuse-42.2 and fedora-25 from nodepool dsvm jobs 1 year ago
doc Clarify diskimage names in docs 1 year ago
nodepool Add SSH Host Key Verifier Strategy 1 year ago
playbooks Migrate legacy jobs 1 year ago
tools Remove opensuse-42.2 and fedora-25 from nodepool dsvm jobs 1 year ago
.gitignore Ignore vim editor backup and swap files. 5 years ago
.gitreview Added .gitreview 5 years ago
.testr.conf Add a test for subnodes 5 years ago
.zuul.yaml Zuul: add file extension to playbook path 1 year ago
LICENSE Add LICENSE file 3 years ago
README.rst Update README to mention bindep 2 years ago
bindep.txt Initial support for bindep 2 years ago
requirements.txt Merge "Remove duplicate python-jenkins code from nodepool" 1 year ago
setup.cfg Builders can be run on their own 3 years ago
setup.py Bump pbr requirements to >=1.3 3 years ago
test-requirements.txt Merge "Remove discover from test-requirements" 2 years ago
tox.ini Initial support for bindep 2 years ago

README.rst

Nodepool

Nodepool is a service used by the OpenStack CI team to deploy and manage a pool of devstack images on a cloud server for use in OpenStack project testing.

Developer setup

Make sure you have pip installed:

Install dependencies:

If you're testing a specific patch that is already in gerrit, you will also want to install git-review and apply that patch while in the nodepool directory, ie:

Create or adapt a nodepool yaml file. You can adapt an infra/system-config one, or fake.yaml as desired. Note that fake.yaml's settings won't Just Work - consult ./modules/openstack_project/templates/nodepool/nodepool.yaml.erb in the infra/system-config tree to see a production config.

If the cloud being used has no default_floating_pool defined in nova.conf, you will need to define a pool name using the nodepool yaml file to use floating ips.

Set up database for interactive testing:

Set up database for unit tests:

Note that the script tools/test-setup.sh can be used for the step above.

Export variable for your ssh key so you can log into the created instances:

Start nodepool with a demo config file (copy or edit fake.yaml to contain your data):

All logging ends up in stdout.

Use the following tool to check on progress:

After each run (the fake nova provider is only in-memory):