{"id":13505782,"url":"https://github.com/newcontext-oss/kitchen-terraform","last_synced_at":"2025-11-02T00:30:37.435Z","repository":{"id":38428719,"uuid":"61765009","full_name":"newcontext-oss/kitchen-terraform","owner":"newcontext-oss","description":"Test Kitchen plugins for testing Terraform configurations","archived":true,"fork":false,"pushed_at":"2024-10-22T14:32:15.000Z","size":5078,"stargazers_count":1128,"open_issues_count":0,"forks_count":144,"subscribers_count":27,"default_branch":"main","last_synced_at":"2025-02-14T08:48:31.607Z","etag":null,"topics":["behaviour","driver","kitchen","kitchen-terraform","provisioner","ruby","rubygems","terraform","terraform-providers","test-kitchen","verifies"],"latest_commit_sha":null,"homepage":"https://github.com/newcontext/kitchen-terraform","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/newcontext-oss.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-06-23T01:59:10.000Z","updated_at":"2025-02-08T20:44:39.000Z","dependencies_parsed_at":"2023-10-11T23:04:43.729Z","dependency_job_id":null,"html_url":"https://github.com/newcontext-oss/kitchen-terraform","commit_stats":{"total_commits":493,"total_committers":36,"mean_commits":"13.694444444444445","dds":"0.30020283975659234","last_synced_commit":"9bf241b03cfd3150d8bb12f925084d4307a689cd"},"previous_names":[],"tags_count":57,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newcontext-oss%2Fkitchen-terraform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newcontext-oss%2Fkitchen-terraform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newcontext-oss%2Fkitchen-terraform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newcontext-oss%2Fkitchen-terraform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/newcontext-oss","download_url":"https://codeload.github.com/newcontext-oss/kitchen-terraform/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239352858,"owners_count":19624713,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["behaviour","driver","kitchen","kitchen-terraform","provisioner","ruby","rubygems","terraform","terraform-providers","test-kitchen","verifies"],"created_at":"2024-08-01T00:01:13.600Z","updated_at":"2025-02-17T19:31:02.504Z","avatar_url":"https://github.com/newcontext-oss.png","language":"Ruby","funding_links":[],"categories":["Testing","Ruby","Testing Tools"],"sub_categories":["Miscellaneous","Community providers"],"readme":"# ![Kitchen-Terraform Logo][kitchen-terraform-logo] Kitchen-Terraform\n\n\u003e Kitchen-Terraform enables verification of infrastructure systems provisioned with Terraform.\n\n[![Gem version][gem-version-shield]][kitchen-terraform-gem]\n[![Gem downloads version][gem-downloads-version-shield]][kitchen-terraform-gem]\n[![Gem downloads total][gem-downloads-total-shield]][kitchen-terraform-gem]\n\n[![Delivery][delivery-shield]][delivery-workflow]\n[![Pages Build and Deployment][pages-build-deployment-shield]][pages-build-deployment-workflow]\n[![Code coverage][code-coverage-shield]][code-coverage]\n[![Maintainability][maintainability-shield]][maintainability]\n[![Technical debt][technical-debt-shield]][technical-debt]\n\n[![Gitter chat][gitter-shield]][gitter]\n\n\u003e **Warning**\n\u003e Deprecation Notice :warning:\n\u003e\n\u003e With the\n\u003e [announcement](https://www.hashicorp.com/blog/terraform-1-6-adds-a-test-framework-for-enhanced-code-validation) of\n\u003e a native test framework with Terraform 1.6 on 2023-10-04, we are excited/saddened/relieved to announce the deprecation\n\u003e of Kitchen-Terraform :tada: The project will enter a maintenance-only period for about 1 year, after which time it\n\u003e will be archived.\n\u003e\n\u003e We strongly recommend that users begin to learn about\n\u003e [Terraform tests](https://developer.hashicorp.com/terraform/language/tests) and plan their migration to the new\n\u003e framework accordingly.\n\u003e\n\u003e So long, and thanks for all the tests :sparkling_heart:\n\nKitchen-Terraform provides a set of [Test Kitchen][test-kitchen] plugins\nwhich enable the use of Test Kitchen to converge a [Terraform][terraform]\nconfiguration and verify the resulting infrastructure systems with\n[InSpec][inspec] controls.\n\nAs Kitchen-Terraform integrates several distinctive technologies in a\nnontrivial manner, reviewing the documentation of each of the\naforementioned products is strongly encouraged.\n\n## Installation\n\n### Terraform\n\nKitchen-Terraform integrates with the\n[Terraform command-line interface][terraform-cli] to implement a Test\nKitchen workflow for Terraform modules.\n\nInstallation instructions can be found in the\n[Terraform: Install Terraform][terraform-install] article.\n\nKitchen-Terraform supports versions of Terraform in the interval of\n`\u003e= 0.11.4, \u003c 2.0.0`.\n\n[tfenv] can be used to manage versions of Terraform on the system.\n\n### Ruby\n\nKitchen-Terraform is written in [Ruby][ruby] which requires an\ninterpreter to be installed on the system.\n\nInstallation instructions can be found in the\n[Ruby: Installing Ruby][ruby-installation] article.\n\nKitchen-Terraform aims to support all versions of Ruby that are in\n[\"normal\" or \"security\" maintenance][ruby-branches], which is currently\nthe interval of `\u003e= 2.4, \u003c 2.8`.\n\n[rbenv] can be used to manage versions of Ruby on the system.\n\n### Kitchen-Terraform Ruby Gem\n\nEach version of Kitchen-Terraform is published as a\n[Ruby gem][ruby-gems-what-is] to [RubyGems.org][kitchen-terraform-gem]\nwhich makes them readily available for installation on a system.\n\n#### Bundler\n\n[Bundler][bundler] should be used to manage versions of\nKitchen-Terraform on the system. Using Bundler provides easily\nreproducible Ruby gem installations that can be shared with other\nsystems.\n\nFirst, create a `Gemfile` with contents like the following example. The\npessimistic pinning of the version is recommended to benefit from\nthe semantic versioning of the Ruby gem.\n\n\u003e Defining Kitchen-Terraform as a dependency for Bundler in a Gemfile\n\n---\n\n```ruby\nsource \"https://rubygems.org/\" do\n  gem \"kitchen-terraform\", \"~\u003e 7.0\"\nend\n```\n\n---\n\nSecond, run the following command.\n\n\u003e Installing Kitchen-Terraform with Bundler\n\n---\n\n```sh\nbundle install\n```\n\n---\n\nThe preceding command will create a `Gemfile.lock` comprising a list\nof the resolved Ruby gem dependencies.\n\nMore information can be found in the\n[Bundler: In Depth][bundler-in-depth] article.\n\n#### RubyGems\n\nRubyGems, the default Ruby package manager, can also be used to install\na version of Kitchen-Terraform by running a command like the following\nexample.\n\n\u003e Installing Kitchen-Terraform with RubyGems\n\n---\n\n```sh\ngem install kitchen-terraform --version 7.0.2\n```\n\n---\n\nThis approach is not recommended as it requires more effort to install\nthe gem in a manner that is reproducible and free of dependency\nconflicts.\n\nMore information can be found in the\n[RubyGems: Installing Gems][rubygems-installing-gems] article.\n\n#### Extra Dependencies\n\nThe RbNaCl gem may need to be [installed][rbnacl-installation] in order\nto use Ed25519-type SSH keys to connect to systems with the SSH backend.\nThis gem implicitly depends on the system package libsodium, and its\npresence when libsodium is not installed causes unexpected errors when\nloading InSpec transport plugins like GCP, so it is not included by\ndefault to reduce the burden on users whom do not require support for\nEd25519-type SSH keys.\n\n## Usage\n\nA familiarity with [Test Kitchen][test-kitchen] workflows and commands is required to use Kitchen-Terraform.\n\n### Configuration\n\nKitchen-Terraform provides four Test Kitchen plugins which must be\nconfigured in a\n[Test Kitchen configuration file][kitchen-configuration-file] in\norder to successfully test Terraform configuration.\n\nThe [Terraform driver][terraform-driver] is the bridge between Test\nKitchen and Terraform. It manages the [state][terraform-state] of the\nTerraform root module under test by shelling out and running Terraform commands.\n\nThe [Terraform provisioner][terraform-provisioner] applies changes to\nthe Terraform state based on the configuration of the root module.\n\nThe [Terraform transport][terraform-transport] is responsible for the\nintegration with the Terraform CLI.\n\nThe [Terraform verifier][terraform-verifier] utilizes InSpec to verify\nthe behaviour and state of resources in the Terraform state.\n\nMore information can be found in the\n[Ruby gem documentation][ruby-gem-documentation].\n\nThe `kitchen doctor` command can be used to validate the system and the\nconfiguration file.\n\n### Caveats\n\nVersions of Terraform in the 0.11 series may cause `kitchen test` to\nfail if the initial destroy targets an empty Terraform state. A\nworkaround for this problem is to use\n`kitchen verify \u0026\u0026 kitchen destroy` instead of `kitchen test`. More\ndetails about the problem are available in\n[issue #271](issue-271).\n\n### Tutorials and Examples\n\nSeveral tutorials are available on the\n[Kitchen-Terraform Tutorials][kitchen-terraform-tutorials] page.\n\nThe integration tests for Kitchen-Terraform can also be viewed as\nexamples of how it works. The\n[integration test Test Kitchen configuration file][int-kitchen-config]\nand the [integration test directory][test-directory] provide several\nfunctional examples which exercise various features of\nKitchen-Terraform.\n\n## Contributing\n\nKitchen-Terraform thrives on community contributions.\n\nInformation about contributing to Kitchen-Terraform can be found in the\n[Contributing document][contributing-document].\n\n## Changelog\n\nKitchen-Terraform adheres to semantic versioning and documents all\nsignificant changes accordingly.\n\nInformation about changes to Kitchen-Terraform can be found in the\n[Changelog][changelog].\n\n## Maintainers\n\nKitchen-Terraform is maintained by [community contributors][contributors]\nand Copado NCS LLC.\n\n\u003cimg\n  alt=\"Copado logo\"\n  height=\"25\"\n  src=\"https://raw.githubusercontent.com/newcontext-oss/kitchen-terraform/master/assets/copado_logo.png\"\n  width=\"25\"\u003e [copado.com][copado]\n\n\u003cimg\n  alt=\"Twitter logo\"\n  height=\"25\"\n  src=\"https://raw.githubusercontent.com/newcontext-oss/kitchen-terraform/master/assets/twitter_logo.png\"\n  width=\"25\"\u003e [@CopadoSolutions][copado-twitter]\n\n\u003cimg\n  alt=\"LinkedIn logo\"\n  height=\"23\"\n  src=\"https://raw.githubusercontent.com/newcontext-oss/kitchen-terraform/master/assets/linkedin_logo.png\"\n  width=\"25\"\u003e [Copado][copado-linkedin]\n\n\u003cimg\n  alt=\"GitHub logo\"\n  height=\"25\"\n  src=\"https://raw.githubusercontent.com/newcontext-oss/kitchen-terraform/master/assets/github_logo.png\"\n  width=\"25\"\u003e [@CopadoSolutions][copado-github]\n\n\u003cimg\n  alt=\"Email logo\"\n  height=\"16\"\n  src=\"https://raw.githubusercontent.com/newcontext-oss/kitchen-terraform/master/assets/email_logo.png\"\n  width=\"25\"\u003e \u003ckitchen-terraform@copado.com\u003e\n\n\u003cimg\n  alt=\"Email logo\"\n  height=\"16\"\n  src=\"https://raw.githubusercontent.com/newcontext-oss/kitchen-terraform/master/assets/email_logo.png\"\n  width=\"25\"\u003e \u003css-info@copado.com\u003e\n\n## License\n\nKitchen-Terraform is distributed under the [Apache License][license].\n\n\u003c!-- Markdown links and image definitions --\u003e\n\n[bundler-in-depth]: https://bundler.io/gemfile.html\n[bundler]: https://bundler.io/index.html#getting-started\n[changelog]: https://github.com/newcontext-oss/kitchen-terraform/blob/master/CHANGELOG.md\n[code-coverage-shield]: https://img.shields.io/codeclimate/coverage/newcontext-oss/kitchen-terraform.svg\n[code-coverage]: https://codeclimate.com/github/newcontext-oss/kitchen-terraform/\n[contributing-document]: https://github.com/newcontext-oss/kitchen-terraform/blob/master/CONTRIBUTING.md\n[contributors]: https://github.com/newcontext-oss/kitchen-terraform/graphs/contributors\n[copado-github]: https://github.com/CopadoSolutions\n[copado-linkedin]: https://www.linkedin.com/company/copado-solutions-s.l\n[copado-twitter]: https://twitter.com/CopadoSolutions\n[copado]: https://copado.com/\n[delivery-shield]: https://github.com/newcontext-oss/kitchen-terraform/actions/workflows/delivery.yml/badge.svg\n[delivery-workflow]: https://github.com/newcontext-oss/kitchen-terraform/actions/workflows/delivery.yml\n[gem-downloads-total-shield]: https://img.shields.io/gem/dt/kitchen-terraform.svg\n[gem-downloads-version-shield]: https://img.shields.io/gem/dtv/kitchen-terraform.svg\n[gem-version-shield]: https://img.shields.io/gem/v/kitchen-terraform.svg\n[gitter-shield]: https://img.shields.io/gitter/room/kitchen-terraform/Lobby.svg\n[gitter]: https://gitter.im/kitchen-terraform/Lobby\n[inspec]: https://community.chef.io/tools/chef-inspec\n[int-kitchen-config]: https://github.com/newcontext-oss/kitchen-terraform/blob/master/kitchen.yml\n[kitchen-configuration-file]: https://docs.chef.io/config_yml_kitchen.html\n[kitchen-terraform-gem]: https://rubygems.org/gems/kitchen-terraform\n[kitchen-terraform-logo]: https://raw.githubusercontent.com/newcontext-oss/kitchen-terraform/master/assets/logo.png\n[kitchen-terraform-tutorials]: https://newcontext-oss.github.io/kitchen-terraform/tutorials/\n[license]: https://github.com/newcontext-oss/kitchen-terraform/blob/master/LICENSE\n[maintainability-shield]: https://img.shields.io/codeclimate/maintainability-percentage/newcontext-oss/kitchen-terraform.svg\n[maintainability]: https://codeclimate.com/github/newcontext-oss/kitchen-terraform/\n[pages-build-deployment-shield]: https://github.com/newcontext-oss/kitchen-terraform/actions/workflows/pages/pages-build-deployment/badge.svg\n[pages-build-deployment-workflow]: https://github.com/newcontext-oss/kitchen-terraform/actions/workflows/pages/pages-build-deployment\n[rbenv]: https://github.com/rbenv/rbenv\n[rbnacl-installation]: https://github.com/crypto-rb/rbnacl/tree/v4.0.2#installation\n[ruby-branches]: https://www.ruby-lang.org/en/downloads/branches/\n[ruby-gem-documentation]: http://www.rubydoc.info/github/newcontext-oss/kitchen-terraform/\n[ruby-gems-what-is]: http://guides.rubygems.org/ruby-gems-what-is/index.html\n[ruby-installation]: https://www.ruby-lang.org/en/documentation/installation/\n[ruby]: https://www.ruby-lang.org/en/\n[rubygems-installing-gems]: http://guides.rubygems.org/rubygems-basics/#rubygems-installing-gems\n[technical-debt-shield]: https://img.shields.io/codeclimate/tech-debt/newcontext-oss/kitchen-terraform.svg\n[technical-debt]: https://codeclimate.com/github/newcontext-oss/kitchen-terraform/\n[terraform-cli]: https://developer.hashicorp.com/terraform/cli/commands\n[terraform-driver]: http://www.rubydoc.info/github/newcontext-oss/kitchen-terraform/Kitchen/Driver/Terraform\n[terraform-install]: https://www.terraform.io/intro/getting-started/install.html\n[terraform-provisioner]: http://www.rubydoc.info/github/newcontext-oss/kitchen-terraform/Kitchen/Provisioner/Terraform\n[terraform-state]: https://developer.hashicorp.com/terraform/language/state\n[terraform-transport]: http://www.rubydoc.info/github/newcontext-oss/kitchen-terraform/Kitchen/Transport/Terraform\n[terraform-verifier]: http://www.rubydoc.info/github/newcontext-oss/kitchen-terraform/Kitchen/Verifier/Terraform\n[terraform]: https://www.terraform.io/\n[test-directory]: https://github.com/newcontext-oss/kitchen-terraform/tree/master/test\n[test-kitchen]: http://kitchen.ci/\n[tfenv]: https://github.com/kamatama41/tfenv\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnewcontext-oss%2Fkitchen-terraform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnewcontext-oss%2Fkitchen-terraform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnewcontext-oss%2Fkitchen-terraform/lists"}