Files
infra-provisioner/README.md
Anoop Narang fdca9cc060 [ch11782] | Anoop | Add validations for components (#20)
* [ch11782] | Anoop | Add validations for components

* [ch11782] | Anoop | Allow database & servicerole structure to be null

* [ch11782] | Anoop | Add required validation for s3 fields
2020-05-27 13:51:41 +05:30

36 lines
1.2 KiB
Markdown

# infra-provisioner
This tool provisions infra resources like rds, s3 on demand with details given in `infra_manifest`.
Simply explained, its a thin wrapper over terraform to hide the complexities like hcl, remote backend, targeted resources etc when provisioning resources.
## Usage Guide
##### Install
`go get -u -v github.cmd.navi-tech.in/navi-infra/infra-provisioner`
##### Check templates generated
`infra-provisioner --manifest sample_infra_manifest.json --template-only database`
##### Run plan for resources
`infra-provisioner --manifest sample_infra_manifest.json --plan database`
##### Provision resource
`infra-provisioner --manifest sample_infra_manifest.json database`
---
## Development Guide
##### Typical workflow
- Add templates to your resource in templates folder
- Make changes to cli to support new resource
- Package templates with `go-bindata`
- Dry run with `go run *.go --manifest sample_infra_manifest.json --template-only resourceName`
##### Package templates
```
go get github.com/shuLhan/go-bindata/cmd/go-bindata
go-bindata -o bindata/ templates/...
```
## Caveats
1. Interrupts, term signals are not handled when code execution moves to bash.