This is a Test Kitchen driver for use in cases, where you have an existing machine, such as a physical server which you want to use for your tests.
The static driver is directly derived from TK's "proxy" driver, which is relying on legacy plugin infrastructure - making it directly incompatible with Windows platforms.
---
driver:
name: static
host: 192.168.14.2
# now the rest of your kitchen.yml follows
The host
configuration setting, which specifies the hostname/IP you want tests
to run against.
If you have more than one server, for example when testing specific hardware
drivers, just add a suite for each and override the host
value in its
section
As this is a pure driver which does not interact with the instances/VMs, it supports all platforms. Specifically Linux and Windows are known to work.
As physical machines are a limited resource and are rarely bought or thrown away in a TestKitchen context, some sort of queueing mechanism is needed in bigger environments.
To enable this feature, set queueing
to true
(default: false
)
driver:
name: static
queueing: true
request:
execute: /usr/local/bin/get-host.sh
release:
execute: /usr/local/bin/release-host.sh $STATIC_HOSTNAME
...
Queueing knows two Actions:
request
to obtain the hostname or IP of the machine to userelease
to return this host into the pool
If you are using non-ephemeral test systems, like physical machines, you will need to trigger some procedure to reset them back to the defined default. Otherwise, every test will modify the system further until results get unpredictable.
There currently is just one handler for queueing scenarios:
- the
script
handler, which executes a local script
Name | Default | Description |
---|---|---|
queueing |
false | If to invoke external actions to get hostname |
queueing_timeout |
3600 | Timeout for queueing operations in seconds. |
queueing_handlers |
- | Glob to load external queueing handlers |
This handler only executes local commands. These could query remote databases or even issue more complex programs to obtain/release machines.
Name | Default | Description |
---|---|---|
type |
script |
|
execute |
- | Command to execute |
match_hostname |
^(.*)$ |
Regex to specify what to grab from output. Default: All |
match_banner |
- | Regex to specify optional banner to grab. Default: Nothing |
If a banner is grabbed, it's contents are displaed after the message reporting the hostname. This field can be used for warnings or additional information like access to management interfaces (ILO, BMC, ...).
Name | Default | Description |
---|---|---|
type |
script |
|
execute |
- | Command to execute |
The executed script gets the following environment variables:
STATIC_HOSTNAME
: Hostname or IP of the host to be released
Apache 2.0 (see LICENSE)