Skip to main content

Node pool management for a distributed test infrastructure

Project description

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:

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Install dependencies:

sudo pip install bindep
sudo apt-get install $(bindep -b nodepool)

mkdir src
cd ~/src
git clone git://git.openstack.org/openstack-infra/system-config
git clone git://git.openstack.org/openstack-infra/nodepool
cd nodepool
sudo pip install -U -r requirements.txt
sudo pip install -e .

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:

git review -x XXXXX

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:

mysql -u root

mysql> create database nodepool;
mysql> GRANT ALL ON nodepool.* TO 'nodepool'@'localhost';
mysql> flush privileges;

Set up database for unit tests:

mysql -u root
mysql> grant all privileges on *.* to 'openstack_citest'@'localhost' identified by 'openstack_citest' with grant option;
mysql> flush privileges;
mysql> create database openstack_citest;

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:

export NODEPOOL_SSH_KEY=`cat ~/.ssh/id_rsa.pub | awk '{print $2}'`

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

export STATSD_HOST=127.0.0.1
export STATSD_PORT=8125
nodepoold -d -c tools/fake.yaml

All logging ends up in stdout.

Use the following tool to check on progress:

nodepool image-list

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

mysql> delete from snapshot_image; delete from node;

Project details


Release history Release notifications | RSS feed

This version

0.5.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nodepool-0.5.0.tar.gz (125.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nodepool-0.5.0-py2-none-any.whl (121.7 kB view details)

Uploaded Python 2

File details

Details for the file nodepool-0.5.0.tar.gz.

File metadata

  • Download URL: nodepool-0.5.0.tar.gz
  • Upload date:
  • Size: 125.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for nodepool-0.5.0.tar.gz
Algorithm Hash digest
SHA256 1b8962745567386142b4515c0c6ae3ad08b169612191974efa3f17b56eb9acf6
MD5 bc3346bf5187f5ff606d0ea5a8febf5b
BLAKE2b-256 48916019fd972c5a1d0d981a7ab06637d0052f4720834dbbdbacfd533e05345e

See more details on using hashes here.

File details

Details for the file nodepool-0.5.0-py2-none-any.whl.

File metadata

File hashes

Hashes for nodepool-0.5.0-py2-none-any.whl
Algorithm Hash digest
SHA256 69763935c80cb1cfa19547153e143df9bc710efad70769c0c7772145ca17bc6d
MD5 f141a5b4daac4c578a234ec8f6fb2319
BLAKE2b-256 bf9fe7495fedfec19f649a21c21be11d92856b70750d1360f7bcb531640cb987

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page