This repository serves as a Terraform library to be consumed by other GitHub repositories and services. It provides Infrastructure as Code (IaC) templates and modules to facilitate the deployment and management of cloud-based architectures.
The Terraform library includes a collection of reusable Terraform modules and configurations that can be used to set up and manage various cloud resources. The primary goal is to provide a standardized and efficient way to manage infrastructure across different environments and projects.
- .github/: Contains GitHub-specific configurations and templates.
- .terraform/: Terraform-related files and configurations.
- envs/: Environment-specific Terraform configurations.
- examples/: Example configurations demonstrating how to use the modules.
- github-workflows/: GitHub Actions workflows for CI/CD.
- modules/: Reusable Terraform modules.
- terraform/: Main Terraform configurations.
- terraform.tfstate.d/: Terraform state files.
- Terraform installed
- AWS CLI configured with appropriate credentials
- GitHub token for accessing private repositories
- Log in to AWS SSO:
aws sso login --profile sandbox-admin
- Set the AWS profile:
export AWS_PROFILE=sandbox-admin
- Get the current branch name:
BRANCH_NAME=$(git symbolic-ref --short HEAD)
- Start the Terraform setup:
make start-${BRANCH_NAME}
- Log in to AWS SSO:
aws sso login --profile sandbox-admin
- Set the AWS profile:
export AWS_PROFILE=sandbox-admin
- Get the current branch name:
BRANCH_NAME=$(git symbolic-ref --short HEAD)
- Plan the Terraform changes:
make plan-${BRANCH_NAME}
- Apply the Terraform changes:
make apply-${BRANCH_NAME}
The repository includes various modules that can be used to set up different cloud resources. Each module has its own README file with usage instructions and examples.
The examples directory contains example configurations demonstrating how to use the modules. These examples can be used as a reference to create your own configurations.
Contributions are welcome! Please open an issue or submit a pull request with your changes.
This project is licensed under the MIT License.