Project

terrenv

0.0
No commit activity in last 3 years
No release in over 3 years
Terrenv allows you to host separate environments of your terraform infrastructure by switching softlinks
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.12
~> 0.10.3
~> 10.0
~> 3.0

Runtime

~> 0.19.1
 Project Readme

Terrenv

Terraform has an assumption that your infrastructure would only be deployed once. But what if you wanted a staging or testing environment? You would have to manage state files and variable files yourself in different directories.

Terrenv is a simple tool that lets you switch environments seemlessly.

Installation

Install it with:

$ gem install terrenv

Usage

Run

$ terrenv init

and follow the instructions to generate a TerraformFile

Commands

$ terrenv init

will ask you some questions to setup your TerraformFile. You will need to run terrenv apply inorder to apply the settings.

$ terrenv apply

will take the configuration in the TerraformFile does a few steps for setup

  1. Create directories for each environment labeled terraform-<environment>.
  2. Setup your remote state-file configurations and pull down the state files from the S3 bucket and placed inside terraform-<environment>
  3. Sets up your environment to the last environment specified on the TerraformFile
$ terrenv use <environment>

will switch the symlinks to point to the environment specified.

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. 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. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/kkwoker/terrenv. 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.

License

The gem is available as open source under the terms of the MIT License.

TODO:

Fix tests by using mocks