Welcome to my Terraform Library, a storage place for my assets related to my journey around Terraform and Iac for the Cloud.
Documentation | References |
---|
- It contains deployments and configuration for Kubernetes Cluster and companion infrastructure for different Cloud providers.
- Terraform operations use makefile inside every cloud provider (e.g.
aws
) to give you examples of the most common operation command set. There are targets for the most common scenarios: init (with backend), plan/apply and destroy but also a general action target to run any terraform command.- Copy
.env.example
to.env
to customize the environment variables. Although, some variables can be passed as arguments to target in the make command (ROOT
for example).
- Copy
- Values Customization:
- Variables: Copy
shared.tfvars.example
toshared.tfvars
inside the cloud/provider/env folder. Then, copy.auto.tfvars.example
to.auto.tfvars
inside the root folders. Customize files with your values. It relies on Variables inheritance. See Terraform - Variable Precedence - Learning-Ocean - Backend:
- Apply the Root
state-bucket
creates a remote backend - Copy
backend.tf.example
tobackend.tf
in every Root to use the backend created in the previous step.
- Apply the Root
- Variables: Copy
- It has been developed using tools provided in asdf.ubuntu image for testing.
- It uses submodules. For example, the Helm provider uses the values from the Kubernetes library. Helm provider is separated from the creation of the K8s cluster Stacking with managed Kubernetes cluster resources
โ ๏ธ IMPORTANT - It requiresgit submodule update --init --recursive
- It uses Pre-commits for Validations and Documentation.