- Issue #663, PR #665: Centos 6.4 no longer supported, upgrade in templates for
kitchen init
(@lloydde) - PR #711: Update to Ubuntu 14.04 and Centos 7.1 for
kitchen init
(@fnichol) - PR #734: Fix failing
kitchen driver discover
test (@fnichol) - Issue #732, PR #737: Generate a
chefignore
file duringkitchen init
(@metadave) - Issue #688, PR #728 and #736: Default WinRM username updated to
administrator
and additional errors caught for retry logic when trying to login with WinRM (@zl4bv, @tyler-ball)
- PR #704: Don't prompt for passwords when using public key auth (@caboteria)
(A selected roll-up of 1.4.0 pre-release changelogs)
Note:: while a huge amount of effort has gone into preserving backwards compatibility, there could be issues when running this release using certain Drivers and Provisioners, especially ones that are deeply customized. Drivers that inherit directly from Kitchen::Driver::Base
may need to be updated, while Driver that inherit directly from Kitchen::Driver::SSHBase
should continue to operate as before. Other libraries/addons/plugins which patch internals of Test Kitchen's code may break or work differently and would be extremely hard to preserve while adding new functionality. Sadly, this is a tradeoff.
- Drivers are no longer responsible for
converge
,setup
,verify
, andlogin
actions. The updated Driver API contract (Driver::Base) only requires implementing the#create
and#destroy
methods, same as before. However, for Drivers that directly inherit fromKitchen::Driver::Base
, any custom#converge
,#setup
,#verify
, or#login_command
methods will no longer be called. (@fnichol) - Drivers which inherit directly from
Kitchen::Driver::SSHBase
are now considered "Legacy Drivers" as further improvements for these Drivers may not be available in future releases. The previous behavior is preserved, i.e. the Driver's#converge
,#setup
, and#verify
methods are called and all methods signatures (and relative behavior) is preserved. (Driver::SSHBase, Commit notes) (@fnichol) - Provisioners are now self-aware, completely owning the
converge
action. The original public methods of the Base Provisioner are maintained but are now invoked with a#call(state)
method on the Provisioner object. Provisioner authors may elect to implement the command and sandbox methods, or re-implement the#call
method which may not call any of the previously mentioned methods. (Provisioner::Base, Commit notes) (@fnichol) - Transport are not responsible for the
login
command. (Commit notes) (@fnichol) - Busser is now a plugin of type Verifier (see below for details on Verifiers). Any external code that directly creates a
Kitchen::Busser
object will fail as the class has moved toKitchen::Verifier::Busser
. Any external code that directly invokes Busser's#sync_cmd
will log a warning and will not transfer test files (authors of plugins may now callinstance.transport(state).upload(locals, remote)
in its place). (@fnichol) - Verifiers are responsible for the
verify
action. (Commit notes) (@fnichol) - Pull request #649: Preserve Busser's #setup_cmd, #run_cmd, & #sync_cmd for better backwards compatibility. (@fnichol)
- Pull request #672: Extract WinRM-dependant code from Transport::Winrm into the winrm-transport gem, meaning that WinRM support is now a soft dependency of Test Kitchen, similar to Berkshelf and Librarian-Chef. This means the first time a Winrm Transport is requested, a
kitchen
command will crash with a UserError message instructing the user to install the winrm-transport gem. Existing projects which do not use the Winrm Transport will be unaffected and have no extra gem dependencies to manage. (@fnichol)
- Issue #656, pull request 669: Move ObjectSpace finalizer logic into CommandExtractor to close the last opened remote shell on shutdown for Winrm Transport. (@fnichol)
- Issue #611, pull request #673: Ensure that secret key is deleted before converge for chef_zero and chef_solo Provisioners. (@fnichol)
- Issue #389, pull request #674: Expand path for
:ssh_key
if provided in kitchen.yml for Ssh Transport. (@fnichol) - Pull request #653: Consider
:require_chef_omnibus = 11
to be a modern version for Chef Provisioners. (@fnichol)
- ChefZero Provisioner supports Windows paths and PowerShell commands and works with the WinRM Transport (default behavior for Platform names starting with
/^win/
). (Provisioner::ChefZero) (@fnichol) - ChefSolo Provisioner supports Windows paths and PowerShell commands and works with the WinRM Transport (default behavior for Platform names starting with
/^win/
). (Provisioner::ChefSolo) (@fnichol) - Shell Provisioner supports PowerShell scripts in addition to Bourne shell scripts (Provisioner::Shell) (@fnichol)
- Platform operating system and shell hinting: By default, Windows platform names (case insensitive platform names starting with
/^win/
) will have:os_type
set to"windows"
and:shell_type
set to"powershell"
. By default, non-Windows platform names will have:os_type
set to"unix"
and:shell_type
set to"bourne"
. The methods#windows_os?
,#unix_os?
,#powershell_shell?
,#bourne_shell?
, and#remote_path_join
are available for all Driver, Provisioner, Verifier, and Transport authors. (@fnichol) - New plugin type: Transport, which executes commands and transfers files to remote instances. (Transport::Base) (@afiune, @mwrock, @fnichol)
- New Transport: WinRM: which re-uses a remote shell to execute commands and upload files over WinRM. Currently non-SSL/plaintext authentication only. (Transport::Winrm) (@afiune, @mwrock, @fnichol)
- New Transport: SSH, which re-uses one SSH connection where possible. Improvements such as keepalive, retries, and further configuration attributes are included. This replaces the more general
Kitchen:SSH
class, which remains in the codebase for plugins that call this class directly. (Transport::Ssh) (@fnichol) - New plugin type: Verifier, which executes post-convergence tests on the instance. Busser is now a Verifier. (Verifier::Base) (@fnichol)
- Add API versioning metadata to all plugin types. (@fnichol)
- Pull request #667, pull request #668: Add plugin diagnostics, exposed via
kitchen diagnose
. (@fnichol) - Pull request #675, issue #424: Add default
:compression
&:compression_level
configuration attributes to Ssh Transport. - Pull request #651, issue #592, issue #629, issue #307: Add :sudo_command to Provisioners, Verifiers, & ShellOut. (@fnichol)
- In addition to supporting setting
http_proxy
andhttps_proxy
environment variables when:http_proxy
and:https_proxy
are set in Provisioner and Verifier blocks,HTTP_PROXY
andHTTPS_PROXY
environment variables will also be set/exported in ChefZero/ChefSolo Provisioners and Busser Verifier. (@fnichol) - Pull request #600, pull request #633, issue #85: Add
--log-overwrite
flag to CLI anywhere--log-level
is accepted. By default it is true and will clear out the log every time Test Kitchen runs. To disable this behavior pass--log-overwrite=false
or--no-log-overwrite
. You can also configure this with the environment variableKITCHEN_LOG_OVERWRITE
. (@tyler-ball) - Refactor "non-trivial" (i.e. more than a line or two) Bourne and PowerShell code bodies into static files under support/ for better code review by domain experts. (@fnichol)
- Pull request #530, issue #429: Stop uploading empty directories. (@whiteley)
- Pull request #588: Change getchef.com to chef.io in ChefZero and ChefSolo Provisioners. (@jdmundrawala)
- Pull request #658, issue #654: Updated for sh compatibility based on install.sh code which supports more platforms including Solaris. (@scotthain, @curiositycasualty, @fnichol)
- Pull request #652, pull request #666, issue #556: Support symbol values in solo.rb & client.rb for chef_zero and chef_solo Provisioners. (@fnichol)
- Pull request #672: Extract WinRM-dependant code from Transport::Winrm into the winrm-transport gem, meaning that WinRM support is now a soft dependency of Test Kitchen, similar to Berkshelf and Librarian-Chef. This means the first time a Winrm Transport is requested, a
kitchen
command will crash with a UserError message instructing the user to install the winrm-transport gem. Existing projects which do not use the Winrm Transport will be unaffected and have no extra gem dependencies to manage. (@fnichol)
- Issue #656, pull request 669: Move ObjectSpace finalizer logic into CommandExtractor to close the last opened remote shell on shutdown for Winrm Transport. (@fnichol)
- Issue #611, pull request #673: Ensure that secret key is deleted before converge for chef_zero and chef_solo Provisioners. (@fnichol)
- Issue #389, pull request #674: Expand path for
:ssh_key
if provided in kitchen.yml for Ssh Transport. (@fnichol) - Pull request #653: Consider
:require_chef_omnibus = 11
to be a modern version for Chef Provisioners. (@fnichol)
- Add API versioning metadata to all plugin types. (@fnichol)
- Pull request #667, pull request #668: Add plugin diagnostics, exposed via
kitchen diagnose
. (@fnichol) - Pull request #675, issue #424: Add default
:compression
&:compression_level
configuration attributes to Ssh Transport. - Pull request #651, issue #592, issue #629, issue #307: Add :sudo_command to Provisioners, Verifiers, & ShellOut. (@fnichol)
- Pull request #658, issue #654: Updated for sh compatibility based on install.sh code which supports more platforms including Solaris. (@scotthain, @curiositycasualty, @fnichol)
- Pull request #652, pull request #666, issue #556: Support symbol values in solo.rb & client.rb for chef_zero and chef_solo Provisioners. (@fnichol)
- Pull request #649: Preserve Busser's #setup_cmd, #run_cmd, & #sync_cmd for better backwards compatibility. (@fnichol)
Note:: while a huge amount of effort has gone into preserving backwards compatibility, there could be issues when running this release using certain Drivers and Provisioners, especially ones that are deeply customized. Drivers that inherit directly from Kitchen::Driver::Base
may need to be updated, while Driver that inherit directly from Kitchen::Driver::SSHBase
should continue to operate as before. Other libraries/addons/plugins which patch internals of Test Kitchen's code may break or work differently and would be extremely hard to preserve while adding new functionality. Sadly, this is a tradeoff.
- Drivers are no longer responsible for
converge
,setup
,verify
, andlogin
actions. The updated Driver API contract (Driver::Base) only requires implementing the#create
and#destroy
methods, same as before. However, for Drivers that directly inherit fromKitchen::Driver::Base
, any custom#converge
,#setup
,#verify
, or#login_command
methods will no longer be called. (@fnichol) - Drivers which inherit directly from
Kitchen::Driver::SSHBase
are now considered "Legacy Drivers" as further improvements for these Drivers may not be available in future releases. The previous behavior is preserved, i.e. the Driver's#converge
,#setup
, and#verify
methods are called and all methods signatures (and relative behavior) is preserved. (Driver::SSHBase, Commit notes) (@fnichol) - Provisioners are now self-aware, completely owning the
converge
action. The original public methods of the Base Provisioner are maintained but are now invoked with a#call(state)
method on the Provisioner object. Provisioner authors may elect to implement the command and sandbox methods, or re-implement the#call
method which may not call any of the previously mentioned methods. (Provisioner::Base, Commit notes) (@fnichol) - Transport are not responsible for the
login
command. (Commit notes) (@fnichol) - Busser is now a plugin of type Verifier (see below for details on Verifiers). Any external code that directly creates a
Kitchen::Busser
object will fail as the class has moved toKitchen::Verifier::Busser
. Any external code that directly invokes Busser's#sync_cmd
will log a warning and will not transfer test files (authors of plugins may now callinstance.transport(state).upload(locals, remote)
in its place). (@fnichol) - Verifiers are responsible for the
verify
action. (Commit notes) (@fnichol)
- ChefZero Provisioner supports Windows paths and PowerShell commands and works with the WinRM Transport (default behavior for Platform names starting with
/^win/
). (Provisioner::ChefZero) (@fnichol) - ChefSolo Provisioner supports Windows paths and PowerShell commands and works with the WinRM Transport (default behavior for Platform names starting with
/^win/
). (Provisioner::ChefSolo) (@fnichol) - Shell Provisioner supports PowerShell scripts in addition to Bourne shell scripts (Provisioner::Shell) (@fnichol)
- Platform operating system and shell hinting: By default, Windows platform names (case insensitive platform names starting with
/^win/
) will have:os_type
set to"windows"
and:shell_type
set to"powershell"
. By default, non-Windows platform names will have:os_type
set to"unix"
and:shell_type
set to"bourne"
. The methods#windows_os?
,#unix_os?
,#powershell_shell?
,#bourne_shell?
, and#remote_path_join
are available for all Driver, Provisioner, Verifier, and Transport authors. (@fnichol) - New plugin type: Transport, which executes commands and transfers files to remote instances. (Transport::Base) (@afiune, @mwrock, @fnichol)
- New Transport: WinRM: which re-uses a remote shell to execute commands and upload files over WinRM. Currently non-SSL/plaintext authentication only. (Transport::Winrm) (@afiune, @mwrock, @fnichol)
- New Transport: SSH, which re-uses one SSH connection where possible. Improvements such as keepalive, retries, and further configuration attributes are included. This replaces the more general
Kitchen:SSH
class, which remains in the codebase for plugins that call this class directly. (Transport::Ssh) (@fnichol) - New plugin type: Verifier, which executes post-convergence tests on the instance. Busser is now a Verifier. (Verifier::Base) (@fnichol)
- In addition to supporting setting
http_proxy
andhttps_proxy
environment variables when:http_proxy
and:https_proxy
are set in Provisioner and Verifier blocks,HTTP_PROXY
andHTTPS_PROXY
environment variables will also be set/exported in ChefZero/ChefSolo Provisioners and Busser Verifier. (@fnichol) - Pull request #600, pull request #633, issue #85: Add
--log-overwrite
flag to CLI anywhere--log-level
is accepted. By default it is true and will clear out the log every time Test Kitchen runs. To disable this behavior pass--log-overwrite=false
or--no-log-overwrite
. You can also configure this with the environment variableKITCHEN_LOG_OVERWRITE
. (@tyler-ball) - Refactor "non-trivial" (i.e. more than a line or two) Bourne and PowerShell code bodies into static files under support/ for better code review by domain experts. (@fnichol)
- Pull request #530, issue #429: Stop uploading empty directories. (@whiteley)
- Pull request #588: Change getchef.com to chef.io in ChefZero and ChefSolo Provisioners. (@jdmundrawala)
- Pull request #581, issue #580: Fix omnibus install argument passing bug with missing space character. (@fnichol, @tknerr)
- Pull request #579: Update README.md badges to use SVG. (@miketheman)
- Pull request #558, pull request #557: Update omnibus download URL to chef.io. (@scarolan)
- Pull request #531, pull request #521: Update mixlib-shellout dependency to be greater or equal to 1.2 and less than 3.0. (@lamont-granquist)
- Pull request #555, issue #524, issue #343: (Breaking) Correct global YAML merge order to lowest (from highest).
- Pull request #416: Use
Gem::GemRunner
to install drivers withkitchen init
generator (addresses opscode/chef-dk#20). (@mcquin) - Pull request #399: Sleep before retrying SSH#establish_connection. (@fnichol)
- Pull request #527: Rescue SSH authentication failures to use retry/timeout connection logic. (@chrishenry)
- Pull request #363: Ensure that integer chef config attributes get placed in solo.rb/client.rb properly. (@benlangfeld, @sethvargo)
- Pull request #431: Check for zero byte state files. (@rhass)
- Pull request #554, pull request #543: Replace
/
with-
in Instance names, allowing instance names to be used as server hostnames in most cases. (@grubernaut, @fnichol)
- Pull request #373: Add new subcommand 'exec'. (@sawanoboly)
- Pull request #397: Introduce the
:chef_zero_port
config attribute to the chef_zero provisioner. (@jtgiri) - Pull request #381, pull request #456: Add configurable defaults for chef-solo, chef-client, and chef omnibus paths. (@sethvargo, @robcoward, @fnichol)
- Pull request #489: Introduce the
:chef_omnibus_install_options
config attribute to be able to pass additional arguments to the Chef installer script. (@ringods) - Pull request #549: Introduce the
:chef_zero_host
config attribute to the chef_zero provisioner. (@jochenseeber) - Pull request #454: Customize
:ssh_timeout
and:ssh_retries
. (@ekrupnik) - Pull request #510, issue #166: Add support for site-cookbooks when using Librarian. (@jstriebel)
- Pull request #427: Backfilling spec coverage and refactoring: technical debt edition. Epically huge, finally complete. (@fnichol)
- Pull request #478, issue #433, issue #352: Buffer Logger output & fix Chef run output formatting. (@fnichol)
- Pull request #481: Disable color output when no TTY is present. (@fnichol)
- Pull request #526, pull request #462, issue #375: Die on
kitchen login
if instance is not created. (@daniellockard, @fnichol) - Pull request #504: Fix 2 tests in
SSHBase
to reflect their intent. (@jgoldschrafe) - Pull request #450: Update help description for CLI subcommands. (@MarkGibbons)
- Pull request #477: Bump 'kitchen help' into new Usage section in README and add how to use "-l". (@curiositycasualty)
- Pull request #567: Pass the template filename down to Erb for
__FILE__
et al. (@coderanger) - Pull request #498: Fix doc comment in
Kitchen::Loader::YAML.new
. (@jaimegildesagredo) - Pull request #507: Clarify comments in configuration loader. (@martinb3)
- Pull request #366: Fix glaring "Transfering" -> "Transferring" typo. (@srenatus)
- Pull request #457: Fix "confiuration" -> "configuration" typo in README. (@michaelkirk)
- Pull request #370: Use Ruby 2.1 instead of 2.1.0 for CI. (@justincampbell)
- Drop Ruby 1.9.2 from TravisCI build matrix (support for Ruby 1.9.2 will be a "best effort"). (@fnichol)
- 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.