https://github.com/optum/runiac
Run IaC Anywhere With Ease
https://github.com/optum/runiac
arm-templates armtemplates aws azure container docker gcp iac pipeline regional-deployments terraform
Last synced: about 1 year ago
JSON representation
Run IaC Anywhere With Ease
- Host: GitHub
- URL: https://github.com/optum/runiac
- Owner: Optum
- License: apache-2.0
- Created: 2021-01-27T21:08:40.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2025-03-13T01:48:37.000Z (about 1 year ago)
- Last Synced: 2025-04-14T15:22:02.572Z (about 1 year ago)
- Topics: arm-templates, armtemplates, aws, azure, container, docker, gcp, iac, pipeline, regional-deployments, terraform
- Language: Go
- Homepage: https://runiac.io
- Size: 8.12 MB
- Stars: 23
- Watchers: 8
- Forks: 19
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# runiac - Run IaC Anywhere With Ease
[Documentation](https://runiac.io/docs)
[](https://GitHub.com/optum/runiac/graphs/commit-activity)

[](https://GitHub.com/optum/runiac/releases/)
[](http://golang.org)

---
A tool for running infrastructure as code (e.g. Terraform) anywhere with ease.
- Ability to change and test infrastructure changes locally with a production like environment
- Ability to make infrastructure changes without making pipeline changes
- Quality developer experience
- Container-based, execute anywhere and on any CI/CD system
- Multi-Region deployments built-in
- Handling groups of regions for data privacy regulations
- Enabling "terraservices"
- Keeping Your Pipelines Simple
- Plugin-based
**Please see [runiac.io](https://runiac.io/docs/) for latest docs**
[comment]: <> (runiac is meant to be run as an image. We do **not** recommend running the `runiac` executor binary in another image, as it might not work.)
We'd love to hear from you! Submit github issues for questions, issues or feedback.
**Table of Contents** _generated with [DocToc](https://github.com/thlorenz/doctoc)_
- [Demo](#demo)
- [Install](#install)
- [Tutorial](#tutorial)
- [Using runiac](#using-runiac)
- [Inputs](#inputs)
- [Contributing](#contributing)
- [Running Locally](#running-locally)
## Demo
See runiac in action on [runiac.io](https://runiac.io)
## Install
**homebrew tap**:
```bash
brew install optum/tap/runiac
```
**manually**:
Download the pre-compiled binaries from the [releases](https://github.com/Optum/runiac/releases) page and copy to the desired location.
## Getting Started
For more detailed examples of runiac, be sure to check out the [starters on github!](https://github.com/topics/runiac-starter)
## Using runiac
To use runiac to deploy your infrastructure as code, you will need:
1. `Docker` installed locally
2. `runiac` installed locally
### Inputs
Execute `runiac deploy -h`
## Contributing
Please read [CONTRIBUTING.md](./CONTRIBUTING.md) first.
### Running Locally
runiac is only executed locally with unit tests. To verify changes with the example projects locally, one would need to build the runiac deploy container locally first.
Docker Build:
```bash
$ DOCKER_BUILDKIT=1 docker build -t runiacdeploydev .
```
We recommend adding an alias to install the cli locally:
`alias runiacdev='(cd /cmd/cli && go build -o $GOPATH/bin/runiacdev) && runiacdev'`
This allows one to use the the `examples` for iterating on runiac changes.
```bash
$ cd examples/...
$ runiacdev -a -e nonprod --local --container runiacdeploydev
```
> NOTE: If only making changes to the CLI, you do not need to build the container locally `--container runiacdeploydev`