Hedwig is a inter-service communication bus that works on AWS SQS/SNS, while
keeping things pretty simple and straight forward. It uses json schema draft v4 for
schema validation so all incoming and outgoing messages are validated against pre-defined schema.
Hedwig Terraform Generator is a CLI utility that makes the process of managing
Hedwig Terraform modules easier by abstracting
away details about Terraform.
Usage
Installation
Download the latest version of the release from
Github releases -
it's distributed as a zip containing a Go binary file.
Configuration
Configuration is specified as a JSON file. Run
./hedwig-terraform-generator config-file-structure
to get the sample configuration file.
Advanced usage: The config may contain references to other terraform resources, as long as they resolve to
an actual resource at runtime.
How to use
Run
./hedwig-terraform-generator apply-config <config file path>
to create Terraform modules. The module is named hedwig
by default in the current directory.
Re-run on any changes.
Development
Getting Started
Assuming that you have go installed, set up your environment:
$ go get github.com/kardianos/govendor
$ go get github.com/go-bindata/go-bindata/...
$ go get github.com/Automatic/hedwig-terraform-generator
$ cd ${GOPATH}/src/github.com/Automatic/hedwig-terraform-generator
$ govendor sync
Running Tests
You can run tests in using make test
. By default, it will run all of the unit and functional tests, but you can
also run specific tests directly using go test:
$ go test ./...
$ go test -run TestGenerate ./...
Release Notes
Github Releases
How to publish
make clean build
cd bin/linux-amd64 && zip hedwig-terraform-generator-linux-amd64.zip hedwig-terraform-generator; cd -
cd bin/darwin-amd64 && zip hedwig-terraform-generator-darwin-amd64.zip hedwig-terraform-generator; cd -
Upload to Github and attach the zip files created in above step.