Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jbangurajr/terraform-beginner-bootcamp-2023
TerraTowns is a community website where terraformers launch their own Terra House (user-created website)
https://github.com/jbangurajr/terraform-beginner-bootcamp-2023
Last synced: about 2 months ago
JSON representation
TerraTowns is a community website where terraformers launch their own Terra House (user-created website)
- Host: GitHub
- URL: https://github.com/jbangurajr/terraform-beginner-bootcamp-2023
- Owner: jbangurajr
- License: mit
- Created: 2023-09-17T01:26:49.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-09-24T23:08:42.000Z (over 1 year ago)
- Last Synced: 2023-09-25T06:27:31.976Z (over 1 year ago)
- Language: HCL
- Size: 51.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![ ](https://raw.githubusercontent.com/jbangurajr/terraform-beginner-bootcamp-2023/main/assets/Terraform-Cloud-Project-Bootcamp-2023.jpg)
## Creating a Custom Terraform Provider and Integrating CloudFront with Amazon Simple Storage Service (S3) to host a Static Website with Terraform.
![ ](https://raw.githubusercontent.com/jbangurajr/terraform-beginner-bootcamp-2023/main/assets/Architectural%20Diagram1.jpg)
![ ](https://raw.githubusercontent.com/jbangurajr/terraform-beginner-bootcamp-2023/main/assets/Architectural%20Diagram2.jpg)
![ ](https://raw.githubusercontent.com/jbangurajr/terraform-beginner-bootcamp-2023/main/assets/Architectural%20Diagram3.jpg)
![ ](https://raw.githubusercontent.com/jbangurajr/terraform-beginner-bootcamp-2023/main/assets/Architectural%20Diagram4.jpg)
**TerraTowns** is a community website where terraformers launch their own Terra House (user-created website).
Our main objectives were to create, test, and deploy a custom Terraform provider using HashiCorp's structured language (HCL) and Go. Afterwards, AWS Cloudfront and S3 were utilized to host a Static Website.
Other languages utilized included HTML and Ruby along with Shell scripting.
Refactoring, testing, and documentation were vital throughout the project along with GitOps and good version control practices.
## Learning Outcomes
#### Learn the basics of Infrastructure as Code and Terraform:
- Registry and Providers
- Resources and Variables
- Root Module Structure
- Running Terraform commands in Terraform CLI
- State migration/management
- Changesets
- CI/CD#### How to use Terraform Cloud:
- Learn how to work in a Team Management platform
- Security considerations and Secret Management best practices
- Local and Remote State#### Learn code/scripting:
- HashiCorp Configuration Language (HCL) for creating a custom Terraform Provider
- Go for creating a custom Terraform Provider
- HTML for creating Static Website
- YAML for Gitpod CDE configuration
- Bash scripting to simulate HTTP requests for comprehensive infrastructure testing.
- Testing/Logging/Reviewing best practices#### Learn CRUD Functions Implementation:
- Actions for Creating, Reading, Updating, and Deleting resources#### Learn how to do basic git operations:
- Pull Request
- Commit
- Merge
- Push
- Branching#### How to use Github to write documentation:
- Creating and updating files
- Uploading images and assets
- Using Markdown language for writing technical documentation
- Semantic versioning and best practices#### How to use a CDE:
- Launching and Stop a Gitpod Workspace
- Configuration launch scripts e.g. Gitpod.yml files
- VSCodes basics. Themes, extensions, splitting windows
- Install and configure the AWS Command Line Interface (CLI)#### Learn Web Server Configuration:
- Set up mock server for testing (Sinatra) environment
- Set up server for production (Rails) environment#### How to interacting with AWS via Terraform:
- Hosting a static website using S3 (storage)
- CloudFront Distribution
- Origin Access Control (CDN)
- Content versioning
- Cache invalidation## Weekly Journals
- [Week 0 Journal](journal/week0.md)
- [Week 1 Journal](journal/week1.md)
- [Week 2 Journal](journal/week2.md)## Extras
- [Github Repository](https://github.com/jbangurajr/terraform-beginner-bootcamp-2023 )- [Terraform Registry Custom Module](https://registry.terraform.io/modules/jbangurajr/bootcamp-2023/beginner/latest)
- [Terraform Registry Custom Provider](https://registry.terraform.io/modules/jbangurajr/bootcamp-2023/beginner/latest)
- [Terrahome](https://terratowns.cloud/)
![ ](https://raw.githubusercontent.com/jbangurajr/terraform-beginner-bootcamp-2023/main/assets/terratown.jpg)
![ ](https://raw.githubusercontent.com/jbangurajr/terraform-beginner-bootcamp-2023/main/assets/terratown2.jpg)