Kitchen-Pulumi is a collection of Test-Kitchen plugins for developing test-driven Pulumi-based cloud infrastructure projects. 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.
Kitchen-Pulumi provides a Kitchen driver, provisioner, and verifier which collectively support the following features:
- 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.yml
file 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.6 and above. Add this line to your application's Gemfile:
# Gemfile
gem 'kitchen-pulumi', require: false
And then execute:
$ bundle
Or install it yourself as:
$ gem install kitchen-pulumi
Check out the serverless-rest-api-lambda example and follow the instructions in its README
.
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.
Everyone interacting in the Kitchen-Pulumi’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.