
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.