Add 'labels' as a configuration primitive

Labels replace images as the basic identity for nodes.  Rather than
having nodes of a particular image, we now have nodes of a particular
label.  A label describes how a node is created from an image, which
providers can supply such nodes, and how many should be kept ready.

This makes configuration simpler (by not specifying which images
are associated with which targets and simply assuming an even
distribution, the target section is _much_ smaller and _much_ less
repetitive).  It also facilitates describing how a nodes of
potentially different configurations (e.g., number of subnodes) can
be created from the same image.

Change-Id: I35b80d6420676d405439cbeca49f4b0a6f8d3822
This commit is contained in:
James E. Blair
2014-03-21 10:06:23 -07:00
parent 9dd3ced2b1
commit 9d4e56ff57
6 changed files with 208 additions and 256 deletions

View File

@@ -12,6 +12,19 @@ zmq-publishers:
gearman-servers:
- host: localhost
labels:
- name: nodepool-fake
image: nodepool-fake
min-ready: 2
providers:
- name: fake-provider
- name: multi-fake
image: nodepool-fake
subnodes: 2
min-ready: 2
providers:
- name: fake-provider
providers:
- name: fake-provider
keypair: 'if-present-use-this-keypair'
@@ -42,12 +55,3 @@ targets:
url: https://jenkins.example.org/
user: fake
apikey: fake
images:
- name: nodepool-fake
min-ready: 2
providers:
- name: fake-provider
- name: multi-fake
min-ready: 2
providers:
- name: fake-provider