# Kitchen::Linode
A Test Kitchen Driver for Linode.
## Requirements
**TODO:** document any software or library prerequisites that are required to
use this driver. Implement the `#verify_dependencies` method in your Driver
class to enforce these requirements in code, if possible.
## Installation and Setup
Install the gem file:
```
gem install kitchen-linode
```
Please read the [Driver usage][driver_usage] page for more details.
## Configuration
For many of these, you can specify an ID number, a full name, or a partial name that will try to match something in the list but may not match exactly what you want.
```
LINODE_API_KEY Linode API Key environment variable, default: nil
:username ssh user name, default: 'root'
:password password for user, default: randomly generated hash
:image Linux distribution, default: nil
:data_center data center, default: 1
:flavor linode type/amount of RAM, default: 1
:payment_terms if you happen to have legacy default: 1
:kernel Linux kernel, default: 215
:private_key_path Location of your private key file, default: "~/.ssh/id_rsa"
:public_key_path Location of your public key file, default: "~/.ssh/id_rsa.pub"
```
## Usage
First, set your Linode API key in an environment variable:
```
$ export LINODE_API_KEY='myrandomkey123123213h123bh12'
```
Then, create a .kitchen.yml file:
```
---
driver:
name: linode
provisioner:
name: salt_solo
salt_bootstrap_options: -P
formula: vim
state_top:
base:
"*":
- vim
platforms:
- name: debian_jessie
driver:
flavor: 1024
data_center: Dallas
kernel: 4.0.2-x86_64-linode56
image: Debian 8.1
suites:
- name: default
```
then you're ready to run `kitchen test` or `kitchen converge`
```
$ kitchen test
```
### require\_chef\_omnibus
Determines whether or not a Chef [Omnibus package][chef_omnibus_dl] will be
installed. There are several different behaviors available:
* `true` - the latest release will be installed. Subsequent converges
will skip re-installing if chef is present.
* `latest` - the latest release will be installed. Subsequent converges
will always re-install even if chef is present.
* `` (ex: `10.24.0`) - the desired version string will
be passed the the install.sh script. Subsequent converges will skip if
the installed version and the desired version match.
* `false` or `nil` - no chef is installed.
The default value is unset, or `nil`.
## Development
* Source hosted at [GitHub][repo]
* Report issues/questions/feature requests on [GitHub Issues][issues]
Pull requests are very welcome! Make sure your patches are well tested.
Ideally create a topic branch for every separate change you make. For
example:
1. Fork the repo
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Added some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request
## Authors
Created and maintained by [Brett Taylor][author] ()
## License
Apache 2.0 (see [LICENSE][license])
[author]: https://github.com/ssplatt
[issues]: https://github.com/ssplatt/kitchen-linode/issues
[license]: https://github.com/ssplatt/kitchen-linode/blob/master/LICENSE
[repo]: https://github.com/ssplatt/kitchen-linode
[driver_usage]: http://docs.kitchen-ci.org/drivers/usage
[chef_omnibus_dl]: http://www.getchef.com/chef/install/