nodepool/nodepool
Clark Boylan 2a231a08c9 Add idle state to driver providers
This change adds an idle state to driver providers which is used to
indicate that the provider should stop performing actions that are not
safe to perform while we bootstrap a second newer version of the
provider to handle a config update.

This is particularly interesting for the static driver because it is
managing all of its state internally to nodepool and not relying on
external cloud systems to track resources. This means it is important
for the static provider to not have an old provider object update
zookeeper at the same time as a new provider object. This was previously
possible and created situtations where the resources in zookeeper did
not reflect our local config.

Since all other drivers rely on external state the primary update here
is to the static driver. We simply stop performing config
synchronization if the idle flag is set on a static provider. This will
allow the new provider to take over reflecting the new config
consistently.

Note, we don't take other approaches and essentially create a system
specific to the static driver because we're trying to avoid modifying
the nodepool runtime significantly to fix a problem that is specific to
the static driver.

Change-Id: I93519d0c6f4ddf8a417d837f6ae12a30a55870bb
2022-10-24 15:30:31 -07:00
..
cmd Check labels use valid diskimages in config validator 2022-09-20 12:37:00 -07:00
driver Add idle state to driver providers 2022-10-24 15:30:31 -07:00
releasenotes/notes Filter active images for OpenStack provider 2020-03-17 16:26:50 +01:00
tests Merge "Implement cleanup of leaked resources in k8s driver" 2022-10-24 11:21:42 +00:00
zk Add "slots" to static node driver 2022-10-11 07:02:53 -07:00
__init__.py Initial commit 2013-08-15 09:47:23 -07:00
builder.py Cleanup local builds without .d folder 2022-10-13 14:50:49 +02:00
config.py Allow specifying diskimage metadata/tags 2022-08-23 06:39:08 -07:00
exceptions.py Remove uneeded shebang and exec bit on some files 2019-12-13 19:30:03 +01:00
launcher.py Demote "Starting/Finished cleanup" log entries to debug 2022-09-21 07:32:05 -07:00
logconfig.py Format multi-line log entries 2021-03-05 13:34:19 -08:00
model_api.py Add the component registry from Zuul 2022-05-23 07:41:27 -07:00
nodeutils.py Add support for dynamic tags 2022-08-23 11:06:55 -07:00
provider_manager.py Add idle state to driver providers 2022-10-24 15:30:31 -07:00
stats.py Update some variable names 2022-05-23 13:30:50 -07:00
status.py Merge "Include user/driver data in node detail list" 2022-08-05 23:47:17 +00:00
version.py Add the component registry from Zuul 2022-05-23 07:41:27 -07:00
webapp.py Convert dib-request-list to image-status command 2022-06-21 14:12:22 -07:00