Skip to content

Optum/runiac

Repository files navigation

runiac - Run IaC Anywhere With Ease

Documentation

Maintenance build Github all releases

made-with-Go


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 for latest docs

We'd love to hear from you! Submit github issues for questions, issues or feedback.

Table of Contents generated with DocToc

Demo

See runiac in action on runiac.io

Install

homebrew tap:

brew install optum/tap/runiac

manually:

Download the pre-compiled binaries from the 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!

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 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:

$ DOCKER_BUILDKIT=1 docker build -t runiacdeploydev .

We recommend adding an alias to install the cli locally:

alias runiacdev='(cd <LOCAL_PROJECT_LOCATION>/cmd/cli && go build -o $GOPATH/bin/runiacdev) && runiacdev'

This allows one to use the the examples for iterating on runiac changes.

$ cd examples/...
$ runiacdev -a <YOUR_GCP_PROJECT_ID> -e nonprod --local --container runiacdeploydev

NOTE: If only making changes to the CLI, you do not need to build the container locally --container runiacdeploydev