- Issue #357, pull request #358: Load needed (dynamic) dependencies for provisioners at creation time to prevent any native or dynamic code being loaded in a non-main thread (an issue on Mac with MRI Ruby 1.9/2.0). (@fnichol)
- Pull request #358: Output the loaded version of Berkshelf or Librarian-Chef when converging to better help troubleshooting issues. (@fnichol)
- Pull request #288: Update omnibus URL to getchef.com. (@juliandunn)
- Pull request #353: Ensure that a chef-client failure returns non-zero exit code for chef-client-zero.rb shim script. (@kamalim)
- Pull request #318: Upload chef clients data. (@jtimberman)
- Issue #282, issue #316: [CLI] Match a specific instance before trying to find with a regexp. (@fnichol)
- Issue #305: Ensure that
kitchen help
exits non-zero on failure. (@fnichol) - Pull request #296: Fixing error when using more than one helper. (@jschneiderhan)
- Pull request #313: Allow files in subdirectories in "helpers" directory. (@mthssdrbrg)
- Pull request #309: Add
/opt/local/bin
to instance path when installing Chef Omnibus package. Smartmachines need this otherwise curl can't find certificates. (@someara) - Pull request #283, pull request #287, pull request #310: Fix failing minitest test on Windows. (@rarenerd)
- Fix testing regressions for Ruby 1.9.2 around YAML parsing. (@fnichol)
- Pull request #286: Experimental Basic shell provisioner, first non-Chef addition! Still considered experimental, that is subject to change between releases until APIs stabilize. (@ChrisLundquist)
- Pull request #293, pull request #277, issue #176: Add
--concurrency
option to specify number of multiple actions to perform at a time. (@ryotarai, @bkw) - Support
--concurrency
without value, defaulting to all instances and begin to deprecate--parallel
flag. (@fnichol) - Pull request #306, issue #304: Add local & global file locations with environment variables (
KITCHEN_LOCAL_YAML
andKITCHEN_GLOBAL_YAML
). (@fnichol) - Pull request #298: Base provisioner refactoring to start accommodating other provisioners. For more details, see #298. (@fnichol)
- Pull request #280: Add
json_attributes: true
config option to ChefZero provisioner. This option allows a user to invoke chef-client without passing the generated JSON file in the--json-attributes
option. (@fnichol) - Make
kitchen login
work without args if there is only one instance (thank goodness). (@fnichol) - Issue #285: Greatly improved error recovery & reporting in Kitchen::Loader::YAML. (@fnichol)
- Pull request #303: Use SafeYAML.load to avoid YAML monkeypatch in safe_yaml. This will leave YAML loading in Test Kitchen as implementation detail and avoid polluting other Ruby objects. (@fnichol)
- Pull request #302: CLI refactoring to remove logic from cli.rb. (@fnichol)
- Add Ruby 2.1.0 to TravisCI testing matrix. (@fnichol)
- Normalize driver, provisioner, & busser blocks when merging raw YAML. (@fnichol)
- Issue #276, issue #278: Ensure
Busser#local_suite_files
only rejects chef data dirs. (@fnichol) - Pull request #275: Fix SSH 'Too many authentication failures' error. (@zts)
- When copying
./cookbooks
, conditionally check for./site-cookbooks
. (@fnichol)
- Improve
kitchen diagnose
when loader data merging fails. (@fnichol)
- Set
Busser[:sudo]
totrue
by default (formerly set tofalse
by default). (@fnichol)
- Ensure Kitchen::Busser can stream multiple files (split with ;). (@fnichol)
- Generate a more explict form for driver & provisioner in
kitchen init
. (@fnichol) - Set
Busser[:sudo]
tofalse
by default. (@fnichol)
- Properly handle
encrypted_data_bag_secret_key_path
under a suite. (@fnichol) - Pull request #265: Busser Fixes for Greybeard UNIX. (@schisamo)
- Pull request #265: Busser config key name is
sudo
notuse_sudo
. (@schisamo)
- Add diagnostic facility to Test Kitchen, usable with
kitchen diagnose
. (@fnichol)
- Pull request #266: Generate more a helpful error when supplying an invalid Regexp with CLI. (@fnichol)
- Improve logging of file transfers to instances in converge action. (@fnichol)
- Add feature test coverage for
kitchen list
subcommand. (@fnichol)
- Busser now installs into /tmp/busser by default on instances. (@fnichol)
- Test Kitchen now works out of /tmp/kitchen for all providers by default. (@fnichol)
- Remove Chef Omnibus
GEM_PATH
inclusion in BusserGEM_PATH
. This fully isolates Busser and its runner plugins to aGEM_HOME
andGEM_PATH
in<busser_root_path>/gems
. (@fnichol) - Add --provisioner to
kitchen init
to override default, chef_solo. (@fnichol)
- Issue #240, issue #242, pull request #258: Fix Busser and Chef Zero sandboxing so that each tool is completely isolated from the Omnibus packages gems and each other. (@fnichol, @schisamo)
- Beef up Provisioners so that they resemble Drivers with user, default, inherited, and computed configuration..
- Use
chef-client -z
(local mode) with ChefZero Provisioner for Chef versions >= 11.8.0. Support older versions of Chef with a best-effort fallback shim to use chef-zero. (@fnichol) kitchen list --debug
mode greatly improved showing rendered configuration for each Instance's Driver, Provisioner, and Busser configuration. (@fnichol)- Pull request #249: Add a data_path which will be sync'd to the instance in the same manner as roles and data bags. (@oferrigni)
- Test Kitchen no longer requires a cookbook to run; kitchen init anywhere! (@fnichol)
- All settings in solo.rb (for ChefSolo) and client.rb (for ChefZero) can be modified or added with a
solo_rb:
orclient_rb:
block inside aprovisioner:
block. (@fnichol) - Add :ruby_bindr in a busser config block to set Busser's alternative remote path to Ruby. (@fnichol)
- Busser install root can be configured and is relocatable, defaults to /tmp/busser. (@fnichol)
- Test Kitchen root can be configured and is relocatable, defaults to /tmp/kitchen. (@fnichol)
- Support installing a specific version of Busser. (@fnichol)
- Greatly simplify default .kitchen.yml. (@fnichol, @sethvargo)
- Massive internal refactoring data manipulation logic. Data code now lives in Kitchen::DataMunger and was properly TDD'ed from the ground up with a full test suite. (@fnichol)
require_chef_ommnibus
will default totrue
for all Chef provisioners and so can be omitted from .kitchen.yml files in most cases. (@fnichol)- Pull request #262: Use a configurable glob pattern to select Chef cookbook files. (@fnichol)
- Pull request #141: Do not create a gitignore if there is no git repo. (@sethvargo)
- Improve
kitchen init
smarts for detecting gems already in Gemfile. (@fnichol) - Expand all Chef-related local paths in Provisioner::ChefBase. (@fnichol)
- Issue #227: Handle absolute paths. (@sethvargo)
- Cope with nil values for run_list and attributes entries in .kitchen.yml. (@fnichol)
- Allow for nil values for
provisioner:
,driver:
, &busser:
. (@fnichol) - Pull request #253: Fix TravisCI badges. (@arangamani)
- Pull request #254: Update references to test-kitchen org. (@josephholsten)
- Pull request #256: Changed 'passed' to 'passing' in the Destroy options documentation. (@scarolan)
- Pull request #259: Fix inconsistent date in CHANGELOG. (@ryansouza)
- Extract Berkshelf & Librarian-Chef resolver code to classes. (@fnichol)
- Full spec coverage for Suite. (@fnichol)
- Full spec coverage for Platform. (@fnichol)
- Full spec coverage for Instance. (@fnichol)
- Full spec coverage for Kitchen::Provisioner.for_plugin (@fnichol)
- Change permissions on the Chef sandbox to world readable and writable (0755) (@fnichol)
- Minor typographical and documentation errors (@gmiranda23)
- Improve error message when Berkshelf/Librarian is not present (@fnichol)
- Ensure busser respects the
sudo
driver configuration (@schisamo)
- Pull request #235: Add Chef Solo environment support (@ekrupnik)
- Pull request #231: Use chefignore to determine which files to copy (@rteabeault)
- Pull request #222: Remove dependency on Celluloid and use pure Ruby threads (@sethvargo)
- Pull request #218: Add support for
site-cookbooks
(@hollow) - Pull request #217: Add support for specific driver configs (@hollow)
- Pull request #206: Add pessismestic locks on all gem requirements (@sethvargo)
- Pull request #193: Allow users to configure ssh forwarding (@fnordfish)
- Pull request #192: Add chef config has and proxy information (@scotthain)
- Pull request #94: Support passing multiple instance names (@sethvargo)
- Drop hard dependency on
pry
gem forkitchen console
(@fnichol) - Remove bash-specific code in favor of pure sh for non-standard Unix devices (@schisamo)
- Make remote RUBY_BIN configurable (@schisamo)
- Ensure busser and Chef Zero are executed in their own the sandboxes (@schisamo)
- Pull request #157: Include definitions directory when uploading the cookbooks. (@jasonroelofs)
- Pull request #178: Fix SSH#wait's logger call to #info. (@ryansouza)
- Pull request #188: Truthy default_configs can now be overridden. (@thommay)
- Allow Test Kitchen to be used as a library; CWD is not enough. (@portertech)
- Add
kitchen list --debug
to display all merged & calculated config. (@fnichol) - Add retry logic to Kitchen:SSH when initiating a connection. (@fnichol)
- Pull request #147: Allow chef omnibus install.sh url to be configurable. (@jrwesolo)
- Pull request #187: Add support for log file in chef solo. (@arangamani)
- Pull request #179: Remove bundler references from README. (@juliandunn)
- Compute default test_base_path in Config based on kitchen_root. (@fnichol)
- Fix backwards compatability regression in
SSHBase#wait_for_sshd
. (@fnichol)
- Pull request #128: [Breaking] Introduce Provisioners to support chef-client (chef-zero), puppet-apply, and puppet-agent. (@fnichol)
- Pull request #128: Add
chef_zero
provisioner type as an alternative to the iplicit defaultchef_solo
provisioner. (@fnichol) - Pull request #171: Support computed default values for Driver authors (see pull request for light documentation). (@fnichol)
- Pull request #161, issue #129: Allow custom paths for roles, data_bags, and nodes by setting
roles_path
,data_bags_path
, andnodes_path
. (@gondoi) - Pull request #134: Add cross suite helpers. (@rteabeault)
- Pull request #122: Adding missing sudo calls to busser. (@adamhjk)
- Pull request #154, issue #163: Set a more sane default PATH for installing Chef. (@jtimberman)
- Issue #153: Assign Celluloid.logger to Kitchen.logger which won't open a file. (@fnichol)
- Pull request #155, issue #154: Setting :on_black when your default terminal text color is black results in unreadable (black on black) text. Or: The NSA censors your VM names when using a terminal with a light background. (@mconigliaro)
- Pull request #140: Make
kitchen init
generator safe to run when given an explicit:destination_root
. (@reset) - Pull request #170: Add asterisk to wait_for_sshd argument. (@saketoba)
- Pull request #136: Fixes bundler ref for 1.0. (@patcon)
- Pull request #142, issue #137: Require a safe_yaml release with correct permissions. (@josephholsten)
- Pull request #128: Add Driver and Provisioner columns to
kitchen list
output. (@fnichol) - Pull request #124, issue #132: Aggressively filter "non-cookbook" files before uploading to instances. (@fnichol)
- Pull request #128: Suite run_list is no longer required. (@fnichol)
- Pull request #123: Swap cookbook resolution strategy from shell outs to using Ruby APIs. (@fnichol)
- Pull request #128: SSH and SCP commands share a single connection when transfering Chef artifacts to an instance (via the new
Kitchen::SSH
class). (@fnichol) - Pull request #128: Add more helpful output logging (info and debug) when creating and uploading the sandbox directory of Chef artifacts. (@fnichol)
- Issue #97: Remove red as a candidate instance color. (@fnichol)
- Fix ANSI color codes for bright colors. (@fnichol)
- Pull request #172: [Breaking] Update signature of Driver.required_config block. (@fnichol)
- Pull request #152, issue #151: Update the bucket name for Opscode's Bento Boxes. (@jtimberman)
- Pull request #131: Use ssh_args for test_ssh. (@jonsmorrow)
- Pull request #90, issue #31: Add a global user-level config file, located at
~/.kitchen/config.yml
. (@thommay) - Pull request #102: Allow a way to override remote sudo. (@calavera)
- Propagate default_config from base driver classes into subclasses. (@fnichol)
- Pull request #120: Add http and https_proxy support. (@adamhjk)
- Pull request #111: Sink. Yeah, that one. (@sethvargo)
- Pull request #99, issue #98: Ensure that destroy option is respected when --parallel is used. (@stevendanna)
- Pull request #116: Require the 'name' attribute is present in
metadata.rb
. (@sethvargo) - Pull request #113: Handle case where YAML parses as nil. (@smith)
- Pass original exception's backtrace to InstanceFailure and ActionFailed. (@fnichol)
- Pull request #112: Fix bug where action failures are swallowed with a nil inside an ensure. (@manul)
- Pull request #104: Set the default ssh port in Driver::SSHBase. (@calavera)
- Pull request #114: Update kitchen.yml template with provisionerless baseboxes. (@jtimberman)
- Pull request #119: Test Kitchen works on Windows with Vagrant. (@adamhjk)
- Pull request #108: Add version string to "Starting Kitchen" logging output. (@fnichol)
- Pull request #105: Expand documentation around run-time switches in README. (@grahamc)
- Pull request #77: Support encrypted data bag secrets (@arunthampi)
- Issue #92: Support single cookbook with no dependencies and no Berksfile. (@fnichol)
- Fix Omnibus installation on nodes using plain sh (vs. bash). (@fnichol)
- Pull request #81: Clean up error reporting in CLI output. (@fnichol)
- Pull request #76: Swap out shell-based kb for Ruby-based Busser gem. (@fnichol)
- Pull request #82, issue #61: Install Omnibus package via either wget or curl. (@fnichol)
- Catch YAML data merging errors as user errors. (@fnichol)
- Issue #80: Add a more helpful error message when a driver could not be loaded. (@fnichol)
- Refactor
kitchen plugin create
to drop Bundler dependency completely. (@fnichol)
- Fix :require_chef_omnibus driver_config option to eliminate re-installation (@fnichol)
- Remove implicit Bundler dependency in
kitchen init
. (@fnichol)
- Add --auto-init flag to
kitchen test
(default: false) (@fnichol)
- Update base box URLs. (@fnichol)
- Extract .kitchen.yml to an ERB template & update box URLs. (@fnichol)
- Add more spec coverage. (@fnichol)
- Remove catch-all rescue in Driver.for_plugin (reason provided in commit message). (@fnichol)
- Add --log-level flag to CLI for test, create, converge, setup, verify, destroy, and login actions. The environment variable
KITCHEN_LOG
may still be used to also set the logging level. (@fnichol) - Driver::SSHBase and subclass drivers now support setting a :port number in .kitchen.yml or in instance state. (@fnichol)
- Support thor 0.16.0 and 0.17.0+. (@fnichol)
- Support SSH config from #state & #config in Driver::SSHBase, helping drivers such as kitchen-vagrant. (@fnichol)
- Support (and test) for Rubygems 2.0.x and 1.8.x. (@fnichol)
- Pull request #71: Updates to
kitchen init
to be non-interactive (add--driver
flag), add subcommand support, and introducekitchen driver discover
. (@fnichol) - Add
Driver#verify_dependencies
to be invoked once when Driver is loaded. (@fnichol)
- Pull request #73: [Breaking] Modify
ShellOut#run_command
to take an options Hash. (@fnichol) - Add :quiet option on
ShellOut#run_command
. (@fnichol) - [Breaking]
Driver#login_command
returns a Driver::LoginCommand object. (@fnichol) - Pull request #74: Switch driver alias (-d) to (-D) in Init generator (@reset)
- Pull request #64: Make
require_chef_omnibus: true
safe. (@mattray) - Pull request #65: Fix for line length and style (tailor). (@ChrisLundquist)
The initial release.