James E. Blair 7ce4dbe26d Add a state machine driver framework
This is intended to simplify efficient driver implementation by
isolating ZooKeeper and other internal Nodepool logic from cloud
implementation, while at the same time reducing the need for
threads.

It is based on the simple driver interface, but by using state
machines, it can accomodate clouds (like Azure and OpenStack) which
require multiple steps to create an instance.

It's currently only suitable for use with a single pool, because
the launcher's poolworkers are multiple threads.  However, we should
be able to collapse them into one thread which would make this safe
for use with multiple pools.

We may also need to adjust some of the sleep times in the launcher
to accomodate the idea that the pool worker threads will be more
active in driving the state machine polling.

Change-Id: Ia179220a71653c9e261342a262ff1e23e5408215
2021-03-19 10:47:10 -07:00
2021-03-19 10:47:10 -07:00
2021-02-19 18:42:33 +00:00
2021-03-08 14:58:31 -08:00
2021-02-24 17:21:01 -08:00
2018-04-26 11:52:17 -05:00
2021-02-19 18:42:33 +00:00
2019-04-19 19:25:31 +00:00
2018-04-26 11:52:17 -05:00
2021-02-19 18:42:33 +00:00
2020-09-10 08:50:08 +10:00
2018-01-19 00:30:22 +00:00
2020-11-26 10:20:54 +01:00
2015-09-14 16:19:13 -04:00
2021-03-08 14:58:31 -08:00
2020-06-09 08:48:43 -07:00
2021-02-19 18:42:33 +00:00

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.

Description
Manage a pool of nodes for a distributed test infrastructure
Readme 35 MiB
Languages
Python 98.3%
Shell 1.1%
Dockerfile 0.3%
Jinja 0.3%