/Cross-AC-Infra-Provisioning-Pipeline

Cross-Account Infra Provisioning: Terraform, Terragrunt, AWS CI/CD. Deploy seamlessly across AWS accounts. DEV Account hosts CI/CD, Terraform, and Terragrunt for an efficient workflow. Comprehensive guide for secure, agile deployment. #DevOps #AWS 🚀

Primary LanguageHCL

Cross-Account-Infra-Provisioning pipeline

AWS

Contributors

Thanks to the contributors without them this project seemed next to impossible!

  • @mfarhansayed
  • @Ashish-sarawad
  • @Phaninder-Sangers

This repository uses terraform-terragrunt to automate infrastructure provisioning in AWS account.

Description

If you are interested in deploying this setup, follow the detailed step-by-step guide in this Medium Article

How To Use

Setup the Environment:

Use Installation guides given below to install dependencies based upon your operating system.

Clone the repository

  • Clone the code from the repository
git clone https://github.com/kiranbakale/Cross-AC-Infra-Provisioning-Pipeline 
  • Configuring the aws credentials for dev account by using the following command
aws configure
  • provide access & secret key of respective user of dev-account and any region of your choice is to be selected

DEVOPS WORKFLOW

PIPELINE-INFRA-PROVISIONING USING TERRAFORM - DEV ACCOUNT

  • The main infra provisioning pipeline will be created in the Primary-Account i.e Dev Account and pipeline will operate from this account

  • Firstly, Navigate to the CI/CD folder & make changes in TF_scripts accordingly to Provision the necessary infrastructure resources that will be used to create the CI/CD Pipeline.

  • Setup the environments configs - aws credentials.

  • backend.tf - includes the configuration for storing the backend in remote-state & state locking using i.e S3 Bucket - make the necessary changes mentioned in the file.

  • terraform.tfvars - The terraform.tfvars file is a Terraform-specific configuration file used to assign values to variables defined in the project. it allows users to set values for variables, such as AWS region, instance types, or any other configurable parameters. By maintaining a separate terraform.tfvars file, users can easily update or modify variable values without altering the main Terraform configuration files by typing the following commands.

  • After configuring the settings, apply Terraform to provision all the necessary resources.

To make changes in Infra-resources - Prod or UAT Account.

  • Navigate to TF-files folder to add any new resources to be provisioned in the account and also dont forget to add variables accordingly.
  1. Open terragrunt.hcl file in the environments folder and click on required folder.

  2. In terragrunt.hcl under terragrunt.hcl navigate to specific resource in inputs section that has resource name labelled above it.

  3. Under terragrunt.hcl - All the resources are variablized & creation of resource can be controlled using inputs block

  4. For a fully fledged explanation and If you are interested in deploying this setup, follow the detailed step-by-step guide in this Medium Article This repository serves as a blueprint for implementing a Cross-A/C-Infra-Provisioning-Pipeline, promoting automation and efficiency in the software delivery process. Feel free to customize and extend it based on your specific project needs.