$ account test-kitchen
Test Kitchen is a Ruby-based integration testing framework for infrastructure code, primarily used in the Chef ecosystem but extensible to any configuration management tool. It provides a CLI (`kitchen`) that orchestrates a lifecycle of actions—create, converge, setup, verify, destroy—across isolated target platforms (VMs, containers, cloud instances) using a plugin architecture for drivers, provisioners, transports, and verifiers. Configuration is defined in YAML files (`.kitchen.yml`) with layered merging (global, project, local) and ERB support. The core library manages instance state via YAML files, structured logging (NDJSON), lifecycle hooks, and concurrency. External dependencies include SSH (net-ssh), WinRM (chef-winrm), and shell execution (mixlib-shellout). The codebase is well-structured with extensive unit and integration tests, but carries some technical debt from legacy Chef provisioner migration and outdated documentation assets.