terraform - bobbae/gcp GitHub Wiki
Terraform is a tool for building, changing, and versioning infrastructure. Terraform can manage existing a service providers as well as custom in-house solutions.
Google Cloud Foundation Toolkit supports Terraform as well as Google Cloud Deployment manager.
Infrastructure as Code is the process of managing and provisioning computer data centers through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools.
Terraform's infrastructure-as-code (IAC) approach supports DevOps best practices for change management, letting you manage Terraform configuration files in source control to maintain an ideal provisioning state for testing and production environments.
https://geekflare.com/terraform-best-practices/
https://cloud.google.com/docs/terraform/blueprints/terraform-blueprints
https://hub.docker.com/r/hashicorp/terraform/
https://github.com/GoogleCloudPlatform/terraform-validator
https://github.com/GoogleCloudPlatform/rad-lab
The benefits of an immutable infrastructure include more consistency and reliability in your infrastructure and a simpler, more predictable deployment process.
https://www.terraform.io/docs/language/index.html
Defining and managing your development, test, staging, and production environments using infra-as-code tools such as Deployment Manager or Terraform is a common practice.
https://www.youtube.com/watch?v=3vfXQxWJazM
https://www.terraform.io/intro/index.html
https://cloud.google.com/docs/terraform/policy-validation
https://www.terraform.io/docs/language/syntax/json.html
A Terraform module is a set of Terraform configuration files in a single directory. Even a simple configuration consisting of a single directory with one or more .tf files is a module. When you run Terraform commands directly from such a directory, it is considered the root module. So in this sense, every Terraform configuration is part of a module.
https://registry.terraform.io/browse/modules
https://cloud.google.com/docs/terraform
How to import manually created resources using gcloud into terraform?
https://www.terraform.io/docs/extend/how-terraform-works.html
https://www.terraform.io/docs/extend/hashicorp-provider-design-principles.html
https://www.digitalocean.com/community/tutorial_series/how-to-manage-infrastructure-with-terraform
https://blog.gruntwork.io/terraform-tips-tricks-loops-if-statements-and-gotchas-f739bbae55f9
https://learn.hashicorp.com/tutorials/terraform/troubleshooting-workflow
https://blog.pipetail.io/posts/2020-10-29-most-common-mistakes-terraform/
https://tryingthings.wordpress.com/2021/03/31/lessons-learned-after-losing-the-terraform-state-file/
https://adambrodziak.pl/terraform-is-terrible
https://www.schibsted.pl/blog/9-reasons-why-terraform-is-a-pain-and-1-why-you-should-still-care/
https://www.terraform.io/docs/internals/debugging.html
https://learn.hashicorp.com/tutorials/terraform/provider-debug
https://cloud.google.com/community/tutorials/getting-started-on-gcp-with-terraform
https://cloud.google.com/solutions/managing-infrastructure-as-code
https://learn.hashicorp.com/collections/terraform/gcp-get-started#gcp
https://cloud.google.com/architecture/provisioning-anthos-clusters-with-terraform
https://cloud.google.com/community/tutorials/managing-gcp-projects-with-terraform
Discuss whether the project is the right unit of delivery. There are resources that are bound to the projects. Is it wise to have a long-running project that must be kept alive for months or years? When can one delete such a project? Are there any resources that can only be removed when the project is removed? (Hint: dataflow jobs, Firestore database, scattered IAM service accounts, ... ). What does it mean to deliver terraform for resources inside a project? Should the unit of delivery be at a minimum the whole project?
Problems that occur when there are too many layers of abstraction happening without considering affects that permeate through the layers and assumptions made in each layer.
https://blog.ml6.eu/how-proper-default-settings-can-save-money-and-trees-99783752d81c
https://github.com/GoogleCloudPlatform/cloud-foundation-toolkit/blob/master/docs/terraform.md
https://medium.com/sardineai/integrating-gcp-with-datadog-with-terraform-d88c5c65dc0a
CFT Terraform modules can be composed to build a secure GCP foundation, following the Google Cloud security foundations guide .
https://github.com/terraform-google-modules/terraform-example-foundation
Reverse of terraform.
https://github.com/GoogleCloudPlatform/terraformer
https://cloud.google.com/config-connector/docs/how-to/import-export/bulk-export
https://github.com/cycloidio/terracognita
https://terragrunt.gruntwork.io/
https://github.com/gruntwork-io/terragrunt
https://medium.com/bestmile/migrating-from-terraform-to-terragrunt-cf91f5d7a301
https://github.com/gruntwork-io/terratest
Terraform pull request automation
https://github.com/GoogleCloudPlatform/terraform-validator
https://github.com/GoogleCloudPlatform/terraform-validator/blob/main/docs/tutorial.md
Scaffolding / Boilerplate generator for new Terraform module projects
https://github.com/sudokar/generator-tf-module
Terraform static analysis tool.
https://github.com/bridgecrewio/checkov/
https://github.com/antonbabenko/pre-commit-terraform
https://github.com/cloudposse/geodesic
https://deepsource.io/static-analysis/terraform/
https://github.com/cloudposse/atmos
https://github.com/cloud-custodian/cloud-custodian
https://www.pulumi.com/docs/intro/vs/terraform/
CDK (Cloud Development Kit) for Terraform allows developers to use familiar programming languages to define cloud infrastructure and provision it through Terraform.
https://github.com/hashicorp/terraform-cdk
https://learn.hashicorp.com/tutorials/terraform/cdktf
https://dev.to/michael_lin/deploy-infrastructure-using-cdk-for-terraform-with-go-28ne
https://github.com/cloudtools/troposphere
https://github.com/89luca89/terrible
https://github.com/antonbabenko/terrible
https://registry.terraform.io/modules/cloudboss/terrible/cloudinit/latest
https://github.com/shuaibiyy/awesome-terraform
https://cloud.google.com/compute/docs/instances/create-start-instance
https://cloud.google.com/compute/docs/instances/create-start-instance#gcloud
https://cloud.google.com/compute/docs/instances/create-start-instance#startinstanceapi
https://cloud.google.com/compute/docs/instances/create-start-instance#python
https://cloud.google.com/community/tutorials/getting-started-on-gcp-with-terraform
https://github.com/terraform-google-modules/terraform-google-project-factory
https://github.com/terraform-google-modules
https://vaishnavi-amirapu-83592.medium.com/terraform-cft-for-gcp-664fa3c68ae3
https://github.com/terraform-google-modules/cloud-foundation-fabric
https://github.com/terraform-google-modules/docs-examples
https://sanket-wadekar3.medium.com/create-gcp-vm-instance-using-terraform-d14d3887445b
Terraform examples: VPC, Subnets, Firewalls, Routes, IAP Tunnel, Internet Gateway, Cloud NAT and Cloud Router
https://medium.com/@nanditasahu031/terraform-with-gcp-cloud-d25d60a6e740
https://github.com/GoogleCloudPlatform/gke-private-cluster-demo
https://devopsarena.medium.com/provision-gke-cluster-with-terraform-28bf2973c3d4
https://blog.searce.com/automating-terraform-with-github-actions-5b3aac5abea7
https://github.com/poseidon/typhoon
CICD Pipeline set up in Terraform.
https://genekuo.medium.com/setting-up-a-ci-cd-pipeline-on-gcp-with-terraform-539e66797072
https://cloud.google.com/blog/topics/developers-practitioners/creating-eventarc-triggers-terraform
https://github.com/terraform-google-modules/terraform-google-lb-http/tree/master/examples
https://medium.com/storyteltech/gcp-integration-with-pagerduty-using-terraform-257db26363f9
https://faun.pub/deploy-active-active-multi-region-kubernetes-cluster-with-terraform-f2652e43f47e
Automating Infrastructure on Google Cloud with Terraform
Managing Cloud Infrastructure with Terraform