This project is going utilize semantic versioning for its tagging. semver.org
The general format:
MAJOR.MINOR.PATCH, eg. 1.0.1
- MAJOR version when you make incompatible API changes
- MINOR version when you add functionality in a backward compatible manner
- PATCH version when you make backward compatible bug fixes
- To improve DevX, an install script was created to install the CLI. The official documentation was used as a reference. The script is called during the before life-cycle-state in gitpod.yml in the GitPod development environment.
- Project root location stored in $PROJECT_ROOT
- Use
gp env
to set persisting env vars in GitPod Workspaces- Can also be done in gitpod.yml for non-sensitive variables
- Use
.bash_profile
files set persisting env vars across bash terminals - .env.example will act as a template for all env vars needed for this project
-
AWS CLI install script
./bin/install_aws_cli
-
Check AWS Creds with:
aws sts get-caller-identity
-
If done right, the following should be returned:
{ "UserId": "...", "Account": "123456789012", "Arn": "arn:aws:iam::123456789012:user/terraform-beginner-bootcamp" }
- Registry
- Providers: Interface to APIs
- Modules: Add modular logic to create more portable and sharable IaC
Important Commands
terraform init
terraform plan
terraform apply
terraform apply --auto-approve
terraform destroy
.terraform.lock.hcl
contains the locked versioning for the providers or modulues- Should be comitted
.terraform.tfstate
contains information about the current state of your infrastructure- Should not be commited
- May contain sensitive data
.terraform
directory contains binaries of terraform providers.