Kitchen-Pulumi is a collection of Test-Kitchen plugins for testing Pulumi-based cloud infrastructure projects under the test-driven infrastructure paradigm. With Kitchen-Pulumi you can provision ephemeral test stacks, verify they are in a desired state using InSpec, and tear them down to gain confidence in your infrastructure code before it hits production.
- Language-agnostic: Create and test Pulumi stacks in any of their supported languages.
- Backend-agnostic: Use the Pulumi SaaS backend, a local backend, or your organization's internal backend.
- Configurable: Easily define/override stack config values in your
.kitchen.ymlfile for flexible testing across environments or scenarios.
- Test changes over time: Simulate changes in stack config values over time to test how your infrastructure reacts to ever-shifting user-provided values.
- Custom state verification: Code any validation logic you desire, provided it can be ran within an InSpec profile.
If there's a feature you would like to see in Kitchen-Pulumi, please create an issue with the suggested feature and its intended use case.
Kitchen-Pulumi is compatible with Ruby 2.4 and above. Add this line to your application's Gemfile:
# Gemfile gem 'kitchen-pulumi'
And then execute:
Or install it yourself as:
$ gem install kitchen-pulumi
Quick Start / Tutorial
Check out the serverless-rest-api-lambda example and follow the instructions in its
TODO: Write usage instructions here
After checking out the repo, run
bin/setup to install dependencies. You can also run
bin/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run
bundle exec rake install.
Bug reports and pull requests are always welcome on GitHub at https://github.com/jacoblearned/kitchen-pulumi. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
The gem is available as open source under the terms of the MIT License.
Code of Conduct
Everyone interacting in the Kitchen-Pulumi’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.