Skip to content

Use Train as universal transport for Test Kitchen

Notifications You must be signed in to change notification settings

tecracer-chef/kitchen-transport-train

Repository files navigation

kitchen-transport-train

Summary

Kitchen transport to use any Train backend, which makes Test Kitchen much more modular with regards to target machines.

As Train OS Transports were inspired from Kitchen, they provide an almost identical API. This transport is basically an adapter to use Test Kitchen with all OS-style Train transports.

In contrast to normal Kitchen transports, this does not support the kitchen login command as Train is inherently non-interactive. An error will be displayed if you try to use this command.

Examples

Legacy configurations for easy SSH/WinRM connections are supported. This transport will automaticially detect Unix (ssh backend) and Windows (winrm backend) systems.

---
transport:
  name: train
  backend: ssh # optional
  ssh_key: ~/.ssh/testkitchen
---
transport:
  name: train
  backend: winrm # optional

Train-oriented configuration can optionally specify the backend transport and then add the transport-specific configuration values:

---
transport:
  name: train
  backend: ssh

  # Use the selected Train transport options here 1:1
  key_files: '...'
  compression: true
  ...

Link to Train transport options

Options user, host and password (for kitchen-ec2 and Windows instances) are set automatically.

If you want to use kitchen-ec2 with the root user however (as needed in Chef 19 Target Mode), you need to additionally specify train_user: root. This is due to a long-standing bug in Kitchen-EC2 where the standard platform's autodetected user will override manually specified root values.

Standard and community-supported options for transports: