Terraform Overview

In this guide, you will be adding a Terraform Module in Bunnyshell, then attach it to an Environment, thus adding the capability to create an AWS S3 bucket for each Environment.

๐Ÿ“˜

Continuation of the Quickstart Guide

This section is the continuation of the Bunnyshell Quickstart Guide. This guide relies the existing Environment created in the Quickstart Guide.

๐Ÿ‘

No matter the Learning Path you took in the Quickstart Guide (Helm or Docker-compose), the Terraform Module guide is the same, as once an Environment is created in Bunnyshell, it is used the same, no matter the method through which it was created.

ย 

Terraform Modules in Bunnyshell & in Environments

In Bunnyshell, Terraform modules are represented as Terraform Components, which are essentially some runners which will run scripts to apply the Terraform module and handle the state.

๐Ÿ“˜

See more

For in-depth information about Terraform, please see the dedicated Terraform documentation page.

ย 

The Deployment Flow & Terraform modules

The sequence in which the Terraform Modules are applied is controlled by the dependsOn attribute.

All component deployments which do not depend on others will be started as soon as possible, and will be ran in parallel. This is a principle in the way workflows are handled in Bunnyshell.

๐Ÿ“˜

More details

For more details regarding the Deployment Flow, please visit the Deploy Workflow page.

ย 

๐Ÿ“˜

Note

You can fork the repository demo-books we used for this tutorial.

The branch terraform contains the needed code for both the Terraform Module and the application.