To enable complete portability and repeatability of iac projects Runiac runs all deploys in a docker container. These containers contain the
core runiac binary that executes all runners along with common cloud tooling such as CLIs and SDKs. Runiac provides multiple officially supported containers curated for multiple cloud use cases. The default container is a kitchen sink supporting GCP, AWS, Azure deployments.
Override the default container for your project needs by using the
--container argument or configuration.
The container benefit comes with additional configuration nuances, espcially for local development. No problem, we have solutions to these items.
Persisting CLI & SDK State
To ensure consecutive runiac deploys persists credentials to avoid relogging in, runiac will volume map common CLI/SDK directories in the container to the local
.runiac directory. One example, includes
.runiac/.azure mapping to
/root/.azure to ensure azure credentials are persisted between deploys to avoid re-logging in.
- Azure CLI: host
.runiac/.azuremapping to container
Persisting Local Terraform State
To ensure consecutive runiac deploys persist terraform state stored locally, runiac will volume map the
/runiac directory of the container.
To allow for configuration of the container on start up and shutdown runiac requires an entrypoint.sh to be present. The runiac container will execute this script as the docker
Example use cases for this can include retreiving centralized configurtion or secrets to be used in the runiac deploy.