Hashicorp Terraform & Packer. Kubernetes Boilerplates
“It’s not controversial to provision resources with code. It shouldn’t be controversial to deploy and manage resources with code” (Jaana Dogan)
- HashiCorp Learning Resources Reference Guide
- Packer
- HashiCorp Cloud Terraform Cloud
- Blogs and Newsletters
- Terraform
- OpenTOFU vs Terraform
- Terraform fmt
- terraform taint
- terraform stacks
- Terraform and GitHub Actions
- Terraform and GitLab Pipelines
- Terraform Testing
- Terraform docs
- Private Terraform Registries
- Terraform and Grafana
- Terraform and Jenkins
- Alternatives to Terraform
- Managing secrets in your Terraform code
- Terraform Cloud (HCP Terraform)
- Hashicorp Infrastructure Cloud
- HCL
- CDK Cloud Development Kit Terraform
- Providing Terraform with Ansible
- Python Boto3 and Terraform
- Helm Charts in Terraform
- Terraform Infracost
- Awesome Terraform
- Terraform Cheat Sheets
- Best Practices
- Terraform and CI/CD. Terraform Workspaces
- Terraform Boilerplates
- Terraform and Kubernetes
- Terrafor Cloud Operator
- Terraform Kubernetes Boilerplates
- Hashicorp Terraform Kubernetes Collection
- Learnk8s Terraform and Managed Kubernetes
- OpenShift and Terraform
- Other Boilerplates
- Terraform Kubernetes Operator
- Terraform K3s Boilerplates
- Terraform and GCP
- Terraform and AWS
- Terraform with Azure
- Terraform for a Data Engineer
- Terraform AKS Boilerplates
- Terraform and OCI
- Terraform and Linode
- Istio with Terraform
- Terraform and Minikube
- Terraform and Apache Kafka
- Terraform and JMeter
- Terraform and OpenVPN on AWS
- Terraform Video Tutorials
- CDK for Terraform
- Graph Visualization Software
- Terraform Modules
- Terraform Providers
- Terraform Code Quality. Terraform Quality Checks. Terraform Linters
- Enforce Policy with Sentinel
- Reverse terraform with Terraformer
- Terraform Tools
- Writing Terraform for unsupported resources with TerraCurl
- Terraform Frameworks
- Terraform Associate Certification
- ChatGPT
- Images
- Videos
- Tweets
HashiCorp Learning Resources Reference Guide
- hashicorp.com: HashiCorp Learning Resources Reference Guide ๐ Read this curated list of HashiCorp learning resources to help practitioners and organizations better understand the cloud operating model.
- techbeatly.com: 10 Free Courses to Learn Terraform
- learn.hashicorp.com: What is Infrastructure as Code with Terraform? ๐
Packer
- packer.io
- packer.io docs
- computingforgeeks.com: Build AWS EC2 Machine Images (AMI) With Packer and Ansible
- learn.hashicorp.com: Write Packer template for AWS
HashiCorp Cloud Terraform Cloud
- cloud.hashicorp.com: HashiCorp Cloud The fastest way to get up and running with HashiCorp tools. HashiCorp Cloud Platform is a fully managed platform for Terraform, Vault, Consul, and more.
- hashicorp.com: Multi-Region Replication Now Available with HCP Vault New HCP Vault Plus Clusters adds high availability replication of secrets and policies across cloud regions.
- levelup.gitconnected.com: Continuous Integration and Continuous Deployment with Terraform Cloud
Blogs and Newsletters
Terraform
- Wikipedia.org: Terraform Software
- roadmap.sh/terraform ๐
- terraform.io
- Terraform Registry - registry.terraform.io: Terraform Providers and Modules ๐
- medium.com: Why should Terraform be one of your DevOps tools?
- Dzone: intro to terraform
- blog.teemo.co: Terraform in 10 commands
- dzone: Terraform - IAC Tool See why Terraform’s declarative approach to automation makes it a competitive tool for automating the creation of your infrastructure.
- udemy.com: Learn DevOps: Infrastructure Automation With Terraform
- Dzone: managing infrastructure at scale with terraform
- Dzone: What’s new in Terraform v0.12
- terraform-infraestructura.readthedocs.io
- Why we use Terraform and not Chef, Puppet, Ansible, SaltStack, or CloudFormation
- Terraform, can you keep a secret? Did you know that Terraform state can - and most likely does - contain sensitive data?
- Terraform 0.13 Beta released!
- medium: AWS API Gateway
- medium: Integration of AWS, Terraform, and GitHub for Automated Deployment Infrastructure
- medium: Automation of Cloud-Terraform
- hashicorp.com: Custom Variable Validation in Terraform 0.13
- medium: Terraform for Network Engineers: Should you be implementing Infrastructure as Code?
- hashicorp.com: Learn How to Import Infrastructure Into Terraform
- Bridgecrew: Misconfigured Terraform Modules Are a Security Issue
- medium - Infrastructure-As-Code: But You Donโt Have to Write That Code
- Manage Active Directory Objects with the New Windows AD Provider for HashiCorp Terraform Official HashiCorp-maintained Active Directory provider for Terraform. Terraform is a great way to bring some sanity to AD management so weโre excited to make this official.
- Terraform Feature Flags & Environment Toggle Design Patterns
- Announcing Databricks Labs Terraform integration on AWS and Azure
- hashicorp.com: Announcing 11 Verified Providers for Terraform
- learn.hashicorp.com: Call APIs with Terraform Providers. Learn how to use and create custom Terraform Providers in a new collection of tutorials on HashiCorp Learn ๐
- devblogs.microsoft.com: What is infrastructure as code? ๐
- k21academy.com: Why Terraform? Not Chef, Ansible, Puppet, CloudFormation? ๐
- hashicorp.com: New Terraform Tutorial: Sensitive Input Variables ๐ A new tutorial on HashiCorp Learn shows how to protect sensitive data with Terraform.
- AWS Lambda the Terraform Way The objective of this tutorial is to understand AWS Lambda in-depth, beyond executing functions, using Terraform. This tutorial walks through setting up Terraform, dependencies for AWS Lambda, getting your first Lambda function running, many of its important features & finally integrating with other AWS services.
- medium: Donโt Forget to Restrict Outbound Traffic with Terraform and Sentinel
- K3s Private Cluster ๐
- hashicorp.com: New Terraform Tutorial: Terraform Outputs ๐ Learn how to output data about your infrastructure.
- trek10.com: Beginner’s Guide to Using Terraform with AWS ๐ Beginner tips for Terraform on AWS, common problem areas and misunderstandings that we coach and train internally.
- env0.com: Weโre Opensourcing Terratag to Make Multicloud Resource Tagging Easier
- hashicorp.com: Terraform Mono Repo vs. Multi Repo: The Great Debate Learn about the pros and cons of using mono repositories and multi repositories along with the most logical use case for each.
- terraform.io: Cloud Adoption Framework for Azure - Terraform module
- arnaudlheureux.io: Migrating Azure CAF landing zones to Terraform 0.13
- tfenv Terraform version manager inspired by rbenv
- dev.to: Packer and Terraform with Immutable Infrastructure
- medium: Terraform: How to Use Conditionals to Dynamically Create Resources โฆdonโt struggle looking for if/else statements, you wonโt find themโฆ
- cloudify.co: Ansible, Terraform And Cloudify
- automateinfra.com: How to Launch multiple EC2 instances on AWS using Terraform count and for_each
- morethancertified.com: More Consistent Terraform Runs With Docker
- deloitte.com: Infrastructure as Code (IaC) con Terraform Automatizaciรณn, escalado, optimizaciรณn y ahorro en tu factura cloud
- flowfactor.be: What do you know about Terraform modules?
- medium: How to manage infrastructure as code (IaC) with Terraform on AWS? ๐
- accurics.com: Terraform Security: Improving IaC Scans with Terraform Plan Output
- hashicorp.com: Modern Infrastructure Automation with Packer, Terraform, and Consul (video)
- hashicorp.com: New Terraform Tutorials: Getting Started with the Helm and Datadog Providers ๐
- hashicorp.com: How can I prevent configuration drift? What causes our infrastructure’s configuration to drift over time away from our original intended state? And how does Terraform help?
- hashicorp.com: New Terraform Tutorials: Getting Started with the Helm and Datadog Providers
- hashicorp.com: Share Modules Across Organizations with Terraform Enterprise Terraform Enterprise now offers users the ability to consume private modules across organizations, providing greater management consistency.
- freecodecamp.org: What is Terraform? Learn Terraform and Infrastructure as Code
- hashicorp.com: Announcing HashiCorp Terraform 0.15 General Availability
- itnext.io: How to use Terraform to create a small-scale Cloud Infrastructure ๐
- acloudguru.com: Securing your multi-cloud Terraform pipelines with policy-as-code
- medium: Terraform โ Remote States Overview ๐ What is Terraform Remote State โ Introduction to Terraform Remote Storage!
- prcode.co.uk: Connect Azure MySQL to Private Endpoint with Terraform
- infoq.com: Cloudflare Improves Automated Terraform Generation Tool ๐ Cloudflare recently released an updated version of their cf-terraforming tool. This tool streamlines generating Terraform HCL from existing Cloudflare resources. The new release simplifies the generation process and introduces changes to better future proof the tool.
- hashicorp.com: Building Azure Resources with TypeScript Using the CDK for Terraform Learn a quick method for getting started with the Cloud Development Kit (CDK) for Terraform using TypeScript as infrastructure code and provisioning on Microsoft Azure.
- acloudguru.com: How to use Terraform outputs and inputs
- infoq.com: Managing Infrastructure from Kubernetes with the HashiCorp Terraform Operator
- medium: Protect your Terraform State The right way!
- hashicorp.com: Terraform AzureAD Provider Now Supports Microsoft Graph Version 1.5.0 of the Terraform AzureAD provider lets you manage your Azure Active Directory resources using the Microsoft Graph API.
- nitheeshp.dev: Practical CI/CD Guide to Deploying AWS Infrastructure ๐
- nitheeshp.dev: Practical CI/CD Guide to Deploying AWS Infrastructure through Terraform - Multi Environment Deployment - Part 1 ๐ Introduction
- nitheeshp.dev: Practical CI/CD Guide to Deploying AWS Infrastructure through Terraform - Multi Environment Deployment - Part 2 ๐ Terraform Directory Structure
- nitheeshp.dev: Practical CI/CD Guide to Deploying AWS Infrastructure through Terraform - Multi Environment Deployment - Part 3 ๐ Terraform Cloud Configurations
- nitheeshp.dev: Practical CI/CD Guide to Deploying AWS Infrastructure through Terraform - Multi Environment Deployment - Part 4 ๐ GitOps
- hashicorp.com: New Terraform Tutorials on HashiCorp Learn From working with providers, to managing resources, to working with Terraform on AWS, we have a lot of new hands-on Terraform exercises to try.
- hashicorp.com: Announcing Support for Amazon ECS Anywhere in the Terraform AWS Provider The Terraform AWS provider now supports ECS Anywhere, a new capability in Amazon ECS that supports running and managing container-based applications on customersโ on-premises servers.
- automateinfra.com: Terraform (Series-1) ๐
- hashicorp.com: Announcing HashiCorp Terraform 1.0 General Availability ๐
- acloudguru.com: What does the Terraform 1.0 release mean for you?
- thenewstack.io: Terraform 1.0 Reflects What HashiCorp Has Learned About Infrastructure-as-Code
- medium: terraform | git commit -m โall the secretsโ | sops tool for managing secrets ๐ - sops: Simple and flexible tool for managing secrets ๐
- fsgeorgee.medium.com: Growing out of Heroku to Terraform, Docker and AWS Heroku is great, but how about using Terraform, AWS, Docker and have full control over the entire stack?
- learn.hashicorp.com: y Serverless Applications with AWS Lambda and API Gateway ๐
- harness.io: Terraform 201: What It Is, Tutorial, and More ๐
- medium: Terraform Zero to Hero
- learn.hashicorp.com: Configure Default Tags for AWS Resources ๐
- terraform-hcloud-dualstack-k8s: Hetzner Dual-Stack Kubernetes Cluster (Unofficial) Terraform module for a dual-stack Kubernetes cluster on Hetzner Cloud
- hashicorp.com: Beta Support for CRDs in the Terraform Provider for Kubernetes
- opensource.com: My top 5 tips for setting up Terraform ๐ These are the lessons I’ve learned after five years with Terraform.
- rpadovani.com: How to make Terraform waiting for cloud-init to finish on EC2 without SSH Terraform is a powerful tool. However, it has some limitations: since it uses AWS APIs, it doesnโt have a native way to check if an EC2 instance has completed to run cloud-init before marking it as ready. A possible workaround is asking Terraform to SSH on the instance, and wait until it is able to perform a connection before marking the instance as ready.
- hashicorp.com: Cisco, Citrix, and Fortinet Among New Verified Terraform Providers
- terraform-best-practices.com ๐
- bridgecrew.io: Advanced Terraform security: Pro tips for secure infrastructure as code
- hub.qovery.com: Terraform is Not the Golden Hammer
- scalefactory.com: Failing faster with terraform Terraform validation rules. Terraform is an extremely powerful tool, but with great power comes great opportunity to break stuff, or whatever Uncle Ben said. With a single command a developer can deploy hundreds of resources in an instant, and when that developer inevitably configured the inputs wrong Terraform makes it easy to patch or rollback that mistake. But you know whatโs better than recovering from mistakes? Never making the mistake in the first place.
- medium.com/geekculture: Managing Infra with Terraform
- hashicorp.com: AWS and HashiCorp Collaborate on New Terraform Modules
- shipa.io: Terraform meets AppOps ๐ Terraform is the popular choice among teams
- bitslovers.com: Terraform Output โ What you should know
- devops.com: Building on Terraform: Evolution, not Revolution
- medium: 10 things I wish I knew before learning Terraform (Part 1) | Ian Hancock
- hashicorp.com: Multi-Cloud DevOps at PETRONAS with Terraform
- terraform.io: Refactoring
- medium: Terraform in Real Life: Lessons Learned ๐
- serhii.vasylenko.info: Some Techniques to Enhance Your Terraform Proficiency Learn what cool things Terraform can do with its built-in functionality
- thenewstack.io: Better Together: Hyper-Converged Kubernetes with Terraform
- AdminTurnedDevOps/Terraform-The-Hard-Way The most efficient way to learn Terraform for beginners and intermediate practitioners
- acloudguru.com: 5 things we love about Terraform
- devops.com: How to Migrate Existing Infrastructure to Terraform
- middlewareinventory.com: Terraform import All AWS Security Groups โ How to In this post, we are going to see how to manage existing and already created AWS Security groups with Terraform. The new era of Infrastructure revolution has begun already and we already started provisioning, managing, administrating our Infra as a code with help of Configuration management tools like Ansible, Terraform, SaltStack etc.
- middlewareinventory.com: Terraform For Each Examples โ How to use for_each | Devops Junction
- medium.com/nerd-for-tech: Terraforming the GitOps Way !!!
- terrateam.io: Terraform Pre-Commit Hooks Terraform Code Improvements. There are many tools that can make sure your Terraform repo remains well-formated and tested. Using Git pre-commit hooks, one can easily incorporate these tools into everyday Terraform workflow.
- faun.pub: Terraform-Prevent Conditionally Created Resources From Deletion ๐ In this post, weโll see how we can prevent a resource, conditionally created by Terraform from getting deleted.
- faun.pub: 5 Best Terraform Tools That You Need in 2022 ๐ Tools that can simplify your infrastructure code
- dev.to/kubestack: A Better Way to Provision Kubernetes Resources Using Terraform ๐ In this tutorial, you will learn how to create Kubernetes resources using Terraform via the Helm and Kustomize providers. The resource will be created/destroyed as part of the usual terraform apply command.
- betterprogramming.pub: Design by Contract in Terraform Understanding custom condition checks
- youtube: Terrraform + Ansible: Automating configuration in infrastructure
- medium.com/@oamdev2020: Glue Terraform Ecosystem into Kubernetes World ๐
- terraform.io: Provisioners Provisioners can be used to model specific actions on the local machine or on a remote machine in order to prepare servers or other infrastructure objects for service.
- faun.pub: The Lifecycle of a Terraform Resource โ Lifecycle Meta-Argument In this article, we will take a look at the various stages a Terraform resource goes through during its lifetime. We will look at the default resource behavior, before looking at the lifecycle meta-argument which can allow you to customize that behavior.
- medium.com/@dugouchet.a: Manage your terraform like a container
- medium.com/spacelift: Terraform vs. Kubernetes: Key Differences and Comparison
- infoq.com: Terraform 1.3 Release Introduces Simplified Refactoring Experience ๐ This release introduces optional object type attributes with defaults and expands the capabilities of moved blocks.
- medium.com/nerd-for-tech: Building a Two-Tier Architecture for High Availability using Terraform
- towardsaws.com: Import Existing AWS Infrastructure to Terraform
- medium.com/google-cloud: Automate Terraform documentation like a pro!
- buildkite.com: Manage your CI/CD resources as Code with Terraform
- blog.gruntwork.io: Terraform tips & tricks: loops, if-statements, and gotchas
- medium.com/@adolfo.diaz.zar: Secret Management with Terraform ๐
- awstip.com: Refactor Terraform code with Moved Blocks โ a new way without manually modifying the state
- dev.to: Using Terraform To Manage Infrastructure Resources | Pavan Belagatti
- faun.pub: Terraform null provider and null_resource explained ๐
- spectrocloud.com: Deploying complex infrastructure with a Terraform state machine
- swwapnilp.medium.com: How Does Slack Use Terraform?
- hashicorp.com: Terraform Abstraction Tips: Just Because You Can Doesn’t Mean You Should Learn how to think about balancing automation and abstraction against maintainability when building your Terraform setup.
- hashicorp.com: Best Practices for Terraform AWS Tags Learn general AWS tags best practices and using the default_tags method, along with some specific tagging configuration for ASG and EC2 volumes.
- medium.com/codex: How to Use the If / Else Statement in Terraform โ Examples ๐
- tekanaid.com: Terraform for Beginners โ A Beginnerโs Guide to Automating Cloud Infrastructure ๐
- terrahaxs.com: Choosing the Right Terraform Loop: count vs for_each ๐
- digitalocean.com: How To Structure a Terraform Project ๐ Learn about structuring Terraform projects according to their general purpose and complexity. Then, youโll create a project with a simple structure using the more common features of Terraform: variables, locals, data sources, and provisioners.
- getbetterdevops.io: How To Deploy Helm Charts With Terraform ๐ Do you know you can deploy HelmCharts as any other Terraform resources? It’s possible with the official Helm provider.
- medium.com/@dsdatsme: Terraform GitOps CI/CD with Approval & Notifications
- github.com/DhruvinSoni30/Terraform_multiple_modules How to work with multiple terraform modules?
- spacelift.io: Terraform Files โ How to Structure a Terraform Project
- youtube - freecodecamp.org: Learn Terraform with Azure by Building a Dev Environment โ Full Course for Beginners
- youtube - freecodecamp.org: Learn Terraform (and AWS) by Building a Dev Environment โ Full Course for Beginners
- devdosvid.blog: Hello Terraform Data; Goodbye Null Resource Native built-in replacement for null_resource with Terraform 1.4
- build5nines.com: Why HashiCorp Terraform is Essential for SREs and DevOps Engineers
- infoq.com: CDK for Terraform Improves HCL Conversion and Terraform Cloud Interactions
- devdosvid.blog: Hello Terraform Data; Goodbye Null Resource
- ivobeerens.nl: Create Windows VMs in Azure with Terraform
- hashicorp.com: Terraform Cloud no-code provisioning is now GA with new features
- dzone: Terraform Explained in Five Minutes This guide highlights everything you need to know about Terraform โ a tool that allows programmers to build, change, and version infrastructure safely and efficiently.
- dev.to/pwd9000: Terraform Pro Tips Series’ Articles ๐๐
- medium.com/@willguibr: Terraform 1.5 โ Import and Automatic Code Generation
- blog.ogenki.io: Applying GitOps Principles to Infrastructure: An overview of tf-controller
- Terraform can be considered a “semi-declarative” tool as there is no built-in automatic reconciliation feature. There are several solutions to address this issue, but generally speaking, a modification will be applied using terraform apply. The code is actually written using the HCL configuration files (declarative), but the execution is done imperatively. As a result, there can be a drift between the declared and actual state (for example, a colleague who would have changed something directly into the console ๐).
- โโ So, how can I ensure that what is committed using Git is really applied. How to be notified if there is a change compared to the desired state and how to automatically apply what is in my code (GitOps)?
- This is the promise of tf-controller, an Open Source Kubernetes operator from Weaveworks, tightly related to Flux (a GitOps engine from the same company). Flux is one of the solutions I really appreciate, that’s why I invite you to have a look on my previous article
- praveendandu24.medium.com: Mastering Terraform: From Essential Commands to Effortless EC2 Instance Provisioning
- faun.pub: Import your existing cloud infra into Terraform Import manually created cloud resources into Terraform and also generate configuration for the imported resources
- gravitydevops.com: Terraform: A Step-by-Step Guide from Basics to Advanced Techniques
- blog.brainboard.co: Exploring Modern IaC: Introduction to Terraform 2.0
- ikunalsingh.hashnode.dev: Dynamic Operations in Terraform with Functions - Use templatefile to dynamically generate a script Streamline Your Infrastructure Management: Learn How to Perform Dynamic Operations in Terraform with Functions
- blog.gruntwork.io: How to use Terraform as a team Collaboration, coding guidelines, and workflow for Terraform projects
- kkamalesh117.medium.com: Terraform Variables & Providers (Part-1)
- overmind.tech: Is Observability relevant for Terraform?
- medium.com/platform-engineer: 26 Terraform Hacks for Effective Infrastructure Automation (With Examples) A checklist for Cloud Engineers to live by
- thenewstack.io: Automating Retry for Failed Terraform Launches Quali Torque orchestrates YAML files โ which can be thought of as blueprints โ for application environments directly from the IaC modules defined in Git.
- theburningmonk.com: Making Terraform and Serverless framework work together
- build5nines.com: Terraform Workflow Process Explained
- build5nines.com: Terraform: How to Join and Split Strings
- build5nines.com: Terraform: Deploy Azure ExpressRoute Circuit with VNet Gateway
- nedinthecloud.com: Replacing The Template Cloudinit Config Data Source
- hashicorp.com: Testing HashiCorp Terraform
- youtube: Stop using shared secrets! CI/CD authentication the proper way
- blog.devgenius.io: Kubernetes on Proxmox with Terraform
- medium.com/@orellanaluke: Terraform and the Art of Small: My Guide to Navigating Smarter, Safer State Management
- youtube.com: Terraform Basics | Ned in the Cloud
- youtube: How to Deploy an E-Commerce Website to AWS With Terraform || Terraform Hands-on Project | Tech with Helen
- sharmasmriti.hashnode.dev: Day 61 - Terraform Commands
- blog.brainboard.co: Complete Terraform Tutorial Building a cloud infrastructure, design first!
- build5nines.com: Terraform: Code Project Organization Strategies (based on team, workload, or monolithic)
- medium.com/@ebonyymonae: Terraform Basics
- dev.to/grrywlsn: Self-service infrastructure as code
- aws.plainenglish.io: The Automation Fellowship: Packer, Terraform, and Ansible โ PART III Part 3: An explanation of three essential automation tools โ Packer, Terraform, and Ansible.
- youtube: Transforma tu EMPRESA con Terraform: Catรกlogo de Servicios | Nito Moreno
- shrihariharidas73.medium.com: Terraform & HashiCorp Vault Integration: Seamless Secrets Management
- ccseyhan.medium.com: What Is Terraform Reusability and How to Achieve It
- build5nines.com: Should .terraform.lock.hcl file be added to .gitignore or committed to Git repo?
- itnext.io: GitHub Actions: Terraform deployments with a review of planned changes
- medium.com/@prasadanilmore: The Magic of Visualizing Your Cloud Infrastructure: Real-time Terraform Visualization
- build5nines.com: Terraform: How to for_each through a list(objects)
- medium.com/netpremacy-global-services: The beginning of the end for Terraform?
- blog.realkinetic.com: Itโs Time to Retire Terraform
- build5nines.com: Terraform: Modules using Git Branch as Source
- build5nines.com: Terraform: Split main.tf into seperate files
- pod.chaoslever.com: HashiCorp Under IBMโs Wing
- build5nines.com: Analyzing IBMโs Acquisition of HashiCorp: A Game-Changer in Hybrid Cloud Management
- dev.to/bhanufyi: Effective Terraform Variable Management in GitHub Actions
- dev.to/env0: Terraform Destroy Command: A Guide to Controlled Infrastructure Removal
- build5nines.com: Terraform IP Functions for Managing IP Addresses, CIDR Blocks, and Subnets
- masterpoint.io: Three Terraform Use-cases You Need to Start Implementing Engineering orgs that use IaC tools like Terraform arenโt typically maximizing their leverage. This article highlights at least three uses of Terraform and IaC automation that donโt necessarily center around traditional application workload infrastructure.
- build5nines.com: Terraform: Remove Resource from State File (.tfstate)
- build5nines.com: Terraform: How are Data Sources used?
- build5nines.com: Terraform: Conditional If Variable Does Not Exist (try function)
- build5nines.com: Terraform: Output URL to Azure Portal for Azure Resources
- build5nines.com: Terraform State Management Explained
- build5nines.com: Working with YAML in Terraform using the
yamldecode
andyamlencode
Functions - mattias.engineer: Terraform Variable Cross Validation
- nilebits.com: Understanding Terraform Drift Detection and Remediation ๐
- spacelift.io/blog/terraform-backends Terraform Backends โ Local and Remote Explained
- dev.to/spacelift: Using Terraform YAML Functions
- howdykloudy.in: Implementing Shift Left for Terraform: An Introductory Guide ๐
- bejarano.io/terraform-plan-light: terraform plan -light ๐ Add a terraform plan -light flag such that only resources modified in code are targeted for planning.
Antipatterns
Terraform License
- opencoreventures.com: HashiCorp switching to BSL shows a need for open charter companies
- medium.com/@hello_9187: Why We Are Not Supporting OpenTF
OpenTOFU vs Terraform
Terraform fmt
terraform taint
- “Have you used the taint command in Terraform yet?” “It marks a resource in the Terraform state data as tainted, meaning the next time you run terraform apply, that resource will be destroyed and recreated. The configuration for the resource will not change, but the resource will be replaced. HashiCorp is trying to move away from imperative commands and towards a declarative model for all operations that affect state. Terraform taint makes direct alterations to state data in an imperative fashion with no way to preview the changes. If you run a terraform taint command, you are altering the state data without making a change to the configuration. In a collaborative environment, this can cause problems.”
terraform stacks
- hashicorp.com: Terraform stacks, explained Terraform stacks simplify provisioning and managing resources at scale, reducing the time and overhead of managing infrastructure.
Terraform and GitHub Actions
- learn.hashicorp.com: Automate Terraform with GitHub Actions Automate infrastructure deployments with CI/CD using Terraform and GitHub Actions
- acloudguru.com: How to use GitHub Actions to automate Terraform
- youtube: AWS Backup Set Up Using Terraform cloud and GitHub Actions | Cloud Quick Labs
- thomasthornton.cloud: Deploy Terraform using GitHub Actions to Azure
- medium.com/google-cloud: Terraform on Google Cloud V1.1 โ Deploying VM with Github actions Creating GCP compute engine VM in terraform with Github Actions
- build5nines.com: Terraform: GitHub Actions Automated Deployment
- medium.com/@bijit211987: DevSecOps Approach with Terraform and CI/CD Pipelines
- thomasthornton.cloud: Displaying Terraform Plans in GitHub PRs with GitHub Actions
- dev.to/spacelift: How to Manage Terraform with GitHub Actions
Terraform and GitLab Pipelines
- docs.gitlab.com: GitLab managed Terraform State ๐ Gitlab Terraform now share tfstate directly on gitlab.
- about.gitlab.com: How to use a push-based approach for GitOps with Terraform and AWS ECS and EC2
- squareops.com: Terraform CI/CD Pipelines with Gitlab
Terraform Testing
- Testing Infrastructure as Code on Localhost
- hashicorp.com: Testing HashiCorp Terraform ๐ Learn testing strategies for HashiCorp Terraform modules and configuration, and learn how to run tests against infrastructure.
- mattias.engineer: A Comprehensive Guide to Testing in Terraform: Keep your tests, validations, checks, and policies in order ๐
Terraform docs
- terraform-docs.io terraform-docs is a utility to generate documentation from Terraform modules in various output formats.
Private Terraform Registries
- github.com/PacoVK/tapir A Private Terraform Registry
Terraform and Grafana
Terraform and Jenkins
- dzone: Immutable Infrastructure CI/CD Using Hashicorp Terraform and Jenkins This extensive article should leave few questions unanswered about creating your infrastructure.
- dev.to: Provisioning AWS Infrastructure using Terraform and Jenkins CI/CD
- github.com/vijaykedar/jenkins-setup-using-terraform This Terraform configuration automates the setup of a Jenkins server on an AWS EC2 instance. It provisions the necessary infrastructure and installs Jenkins along with its dependencies.
- github.com/reneaudain/jenkins_tf_repo: Jenkins Server and S3 Artifact Storage on AWS using Terraform
Alternatives to Terraform
- medium.com/@mike_tyson_cloud: IT Automation: 10 Alternatives To Terraform
- kvs-vishnu23.medium.com: Is AWS CDK better than Terraform?
Managing secrets in your Terraform code
- blog.gruntwork.io: A comprehensive guide to managing secrets in your Terraform code ๐๐๐
- dev.to: How To Manage Secrets In Terraform Like A Pro | Kelvin Onuchukwu
Terraform Cloud (HCP Terraform)
- learn.hashicorp.com: Manage Private Environments with Terraform Cloud Agents
- youtube: GitOps for infrastructure using GitHub and Terraform Cloud ๐
- scalr.com: An alternative to Terraform Cloud and Terraform Enterprise Scalr is a remote state & operations backend for Terraform with full CLI support, integration with OPA, a hierarchical configuration model, and quality of life features.
- hashicorp.com: New Apply User Interface for Terraform Cloud The redesigned interface for HashiCorp Terraform Cloud brings clarity to how your resources, state, and infrastructure operations are represented during a Terraform run.
- hashicorp.com: Terraform Cloud Variable Sets Beta Now Available HashiCorp Terraform Cloud variable sets let you simplify the management of reusable variables across an entire organization. This feature is now available in public beta.
- devclass.com: Terraform 1.1 moves forward with refactoring helpers and native Terraform Cloud integration
- hashicorp.com: Terraform Cloud Adds Drift Detection for Infrastructure Management Drift Detection for Terraform Cloud continuously checks infrastructure state to detect and notify operators of any changes, minimizing risk, downtime, and costs.
- blog.gruntwork.io: How to manage multiple environments with Terraform ๐ A comparison of using workspaces, branches, and Terragrunt
- medium.com/@avyanab: Deploy A Two-Tier Architecture with AWS and Terraform Cloud
- spacelift.io: Terraform Cloud โ Overview, Key Features & Tutorial
- hashicorp.com: Terraform Cloud adds aggregated VCS reviews
- hashicorp.com: 7 ways to optimize cloud spend with Terraform Learn about Terraform features that can optimize cloud spending at every stage of growth.
Hashicorp Infrastructure Cloud
Alternatives to Terraform Cloud
- medium.com/@elliotgraebert: Four Great Alternatives to HashiCorpโs Terraform Cloud Picking the Best IaC CI Platform
- digger.dev Open-source Terraform Cloud alternative. Run Terraform plan / apply jobs in your CI
- spacelift.io Spacelift is a sophisticated CI/CD platform for OpenTofu, Terraform, Terragrunt, CloudFormation, Pulumi, Kubernetes, and Ansible
HCL
- github.com/hashicorp/hcl: HCL HCL is the HashiCorp configuration language.
- octopus.com: Introduction to HCL and HCL tooling
CDK Cloud Development Kit Terraform
- terraform-cdk ๐ CDK (Cloud Development Kit) for Terraform allows developers to use familiar programming languages to define cloud infrastructure and provision it through HashiCorp Terraform.
- infoq.com: cdk-terraform - Cloud Development Kit Can Now Generate Terraform Configurations Using TypeScript and Python
- hashicorp.com: CDK for Terraform: Enabling Python & TypeScript Support
- hashicorp.com: Announcing CDK for Terraform 0.1
Providing Terraform with Ansible
Python Boto3 and Terraform
-
medium.com/@dmglascoe: Deploying IAM Users and S3 Buckets using Boto3 and Terraform
-
hashicorp.com: Terraform Practices: The Good, the Bad, and the Ugly
Helm Charts in Terraform
- opensource.com: How I use Terraform and Helm to deploy the Kubernetes Dashboard ๐ Terraform can deploy Helm Charts. Is it right for you?
- dev.to: Working with helm charts in Terraform In this tutorial, you will learn how to set up the Helm Terraform provider and deploy Helm charts with Terraform
Terraform Infracost
- Infracost ๐ If you use Terraform to provision your Kubernetes clusters, you might find infracost interesting. Infracost estimates hourly and monthly costs for a Terraform project. It helps you to see the cost breakdown and compare different deployment options upfront.
- A Guide to Cloud Cost Optimization with HashiCorp Terraform ๐ The Terraform AWS provider now supports Code Signing for AWS Lambda, which involves digitally signing code artifacts and verifying at deployment.
- pratapreddypilaka.blogspot.com: Azure FinOps using Terraform and Infracost - Finding the hourly or monthly cost before Azure DevOps Deployments
- linkedin.com/pulse: How to Estimate Cloud Costs with Terraform (Azure, AWS, GCP, etc.) via Azure DevOps Pipelines
Awesome Terraform
Terraform Cheat Sheets
Best Practices
- github.com/ozbillwang/terraform-best-practices
- globaldatanet.com: Terraform CI/CD Best Practices
- bridgecrew.io: Terraform security 101: Best practices for secure infrastructure as code ๐
- medium.com/@ranjana-jha: Infrastructure as a code best practices : Terraform
- sairamkrish.medium.com: Terraform โ Best practices and project setup
- medium.com/spacelift: Terraform Best Practices for Better Infrastructure Management
- hashicorp.com: Terraform Practices: The Good, the Bad, and the Ugly
- medium.com/schibsted-engineering: Ultimate Terraform project structure ๐
- developer.hashicorp.com: Part 3: How to Evolve Your Provisioning Practices This section describes the steps necessary to move an organization from manual provisioning processes to a collaborative infrastructure as code workflow. For each stage of operational maturity, we give instructions for moving your organization to the next stage, eventually arriving at our recommended workflow.
- thenewstack.io: Terraformโs Best Practices and Pitfalls If you want to scale your infrastructure, you need to use Terraform in a way that will allow you to do that.
- build5nines.com: Terraform Best Practices for Writing Clean, Readable, and Maintainable Code
- hashicorp.com: Opinionated Terraform Best Practices and Anti-Patterns Get tips for making the most of Terraform when scaling your infrastructure as your organization grows.
- spacelift.io: 20 Terraform Best Practices to Improve your TF workflow ๐
- blog.coderco.io: Terraform Best Practices Series - Lessons from the Battlefield: Part 1
- reddit.com/r/Terraform: Terraform Experts! Anyone experienced in designing enterprise grade reusable terraform code?
- They should be as simple as possible.
- Root modules should manage very few resources and not depend heavily on many other modules or remote states.
- Don’t ever design with the intention of overriding tf variables with environment variables, using -target, etc. Hard code as many values as you can into tfvars files.
- Use the lock files and pin versions everywhere. Module versions, Git tag versions, provider versions, Terraform versions.
- Use asdf to install and run the pinned version of Terraform for each root module deployed.
- Try to keep modules cohesive and loosely coupled. If updating one module or tfvars file creates plan changes in 20 different root modules, that’s not great. Sometimes unavoidable, but creates a large operational burden.
- Reuse public modules. There’s a shit ton of weird subtle magic knowledge you need to use a resource that isn’t documented and you won’t find out until something breaks.
- Test creating, changing, and then destroying, every resource. You will probably find a few need hacks to work as you expect.
- Use semver and version/release all your modules and repos. Keep Changelogs of changes.
- Keep a file in the root dir of repos that documents the owner or SME of the module and how to contact them.
- For commonly referenced variables, store them in JSON, export them with
output
s, publish the module in its own repo somewhere, version it. Modules can reference that module to get the values, pin to versions of it so unexpected changes don’t blow things up. - Use the CloudPosse Terraform modules / architecture / framework. Take the time to figure out how they work, use them. I swear you will end up reinventing it over time if you don’t start now. In particular, you should apply a standard AWS tagging scheme with all your resources, which the CloudPosse modules support inherently. They also let you enable/disable functionality by variables, which is nice, cuz otherwise you have to comment out code.
- Run your Terraform from CI/CD. Really you will be doing it from both your desktop and CI/CD, but assume you’ll be running in CI/CD. Once you have 3 people working on the same TF code at once, you’ll need the CI/CD to not bump into each other all the time. The rule of thumb is, if it’s brand new code, you can run it locally, but if it’s already in production and other things depend on it, run it from ci/cd.
apply
s anyway. - Separate modules by separation of concern; networking in network modules, clusters in cluster modules, apps in app modules, iam in security modules, etc. Also try to separate modules by AWS architectural paradigms, like “global” resources in their own modules. You’ll want different teams to maintain and run their own modules independently, even though it all applies to the same AWS account/product stack.
- Don’t force authentication options into the provider configs. Allow whatever’s running terraform to authenticate first, and the module will just detect the auth method automatically through the provider’s sdk.
- Don’t make a module for a module’s sake. Whereas with regular app code you might make a bunch of abstractions to try to make the code more manageable, that just makes Terraform suck more. Use the least number of abstractions possible to achieve what you want.
- medium.com/@junjun231953_53717: Terraform Best Practices
- iopshub.medium.com: Terraform Best Practices Everyone Should Know
- thomasthornton.cloud: Using Terraform tfvars for environment-agnostic deployments ๐
Terraform and CI/CD. Terraform Workspaces
- dzone: Manage Multiple Environments With Terraform Workspaces Read this tutorial to learn about easily setting up Terraform to manage your CI/CD environments and create workspaces.
- hashicorp.com: Announcing Support for Code Signing for AWS Lambda in the Terraform AWS Provider
- medium.com/devops-mojo: Terraform โ Workspaces Overview ๐
- build5nines.com: Best Practices to Promote from DEV to PROD Environments with HashiCorp Terraform using Workspaces and Folders ๐
Terraform Boilerplates
- https://github.com/hashicorp/terraform-provider-azurerm/tree/main/examples
- https://github.com/hashicorp/terraform-provider-aws/tree/main/examples
- https://github.com/hashicorp/terraform-provider-awscc/tree/main/examples/resources
- awesomeopensource.com: Terraform Aws Multi Az Subnets
- github.com/cloudposse?q=terraform-
- devopshubproject/azure-terraform-ansible This repo contains script which will help you to provision full functioning ansible lab environment on azure using terraform
- etc
Terraform and Kubernetes
- hashicorp.com: New Terraform Tutorials on Provisioning and Managing Kubernetes Clusters ๐ Explore a new collection of Terraform tutorials that can help you through your Kubernetes adoption journey.
- hodovi.cc: Creating a Low Cost Managed Kubernetes Cluster for Personal Development using Terraform
- Deploying and Managing a Minimal App in a Kubernetes Cluster with Terraform and Ansible
- Deploy Any Resource With The New Kubernetes Provider for HashiCorp Terraform
- kubernetes.io blog: Working with Terraform and Kubernetes
- phillipsj.net: Dynamically Loaded Terraform Providers ๐ Have you ever been faced with some situations where you need information from your Terraform execution to configure a provider ? Like spinning up a kubernetes cluster and dynamically deploying to it with Terraform? Check this short article for more !
- hashicorp.com: Announcing Version 2.0 of the Kubernetes and Helm Providers for HashiCorp Terraform ๐
- hashicorp.com: Wait Conditions in the Kubernetes Provider for HashiCorp Terraform
- itnext.io: Terraform: donโt use kubernetes provider with your cluster resource! ๐
- learnk8s.io/kubernetes-terraform: Creating Kubernetes clusters with Terraform
- blog.kasten.io: Working with Kubernetes and Terraform Part 1: Concepts Behind Terraform and Kubernetes
- thenewstack.io: A Better Way to Provision Kubernetes Using Terraform
- learn.hashicorp.com: Deploy Federated Multi-Cloud Kubernetes Clusters In this tutorial, you will provision Kubernetes clusters in both Azure and AWS environments using their respective providers, configure Consul federation with mesh gateways across the two clusters using the Helm provider, and deploy microservices across the two clusters to verify federation, all using the same Terraform workflow.
- architect.io: Get started with the Terraform Kubernetes provider In this tutorial, you’ll learn how to define Kubernetes resources using HCL and apply the configuration to the cluster using Terraform
- releasehub.com: Terraform Kubernetes Deployment: A Detailed Walkthrough It is possible to combine both. Terraform can be used to deploy Kubernetes clusters. It’s quite common, and it lets you deploy K8s just like the rest of your infrastructure.
- medium.com/@vinoji2005: Using Terraform with Kubernetes: A Comprehensive Guide This guide explores the fundamentals of using Terraform with Kubernetes
- Setting Up a Kubernetes Cluster with Terraform
- Deploying Kubernetes Resources with Terraform
- Managing Kubernetes Configurations
- Terraform providers
- Best Practices
Terrafor Cloud Operator
- hashicorp.com: Announcing General Availability of the HashiCorp Terraform Cloud Operator for Kubernetes ๐
- hashicorp/terraform-k8s: Terraform Cloud Operator for Kubernetes The Terraform Cloud Operator for Kubernetes provides first-class integration between Kubernetes and Terraform Cloud by extending the Kubernetes control plane to enable lifecycle management of cloud and on-prem infrastructure.
- medium: Deploy Infrastructure with the Terraform Cloud Operator for Kubernetes ๐
- hashicorp.com: Terraform Cloud Operator 2.3 adds workspace run operations
Terraform Kubernetes Boilerplates
Hashicorp Terraform Kubernetes Collection
- https://github.com/hashicorp/learn-terraform-provision-aks-cluster
- https://github.com/hashicorp/learn-terraform-provision-eks-cluster
- https://github.com/hashicorp/learn-terraform-provision-gke-cluster
- https://github.com/hashicorp/learn-terraform-deploy-nginx-kubernetes-provider
- https://github.com/hashicorp/terraform-provider-azurerm/tree/main/examples/kubernetes ๐
- https://github.com/hashicorp/terraform-provider-azurerm/tree/main/examples/kubernetes/nodes-on-internal-network ๐
Learnk8s Terraform and Managed Kubernetes
- learnk8s.io/terraform-gke: Provisioning Kubernetes clusters on AWS with Terraform and GKE ๐ Fully automated dev, staging, prod clusters with GKE and the GKE Ingress in a single click.
- learnk8s.io/terraform-eks: Provisioning Kubernetes clusters on AWS with Terraform and EKS ๐ Fully automated dev, test, prod environments with EKS, Terraform and the ALB Ingress Controller.
- learnk8s.io/terraform-aks: Provisioning Kubernetes clusters on AWS with Terraform and AKS ๐ Fully automated dev and prod clusters complete with an Ingress controller in a single command.
- learnk8s.io/terraform-lke: Provisioning Kubernetes clusters on Linode with Terraform ๐
OpenShift and Terraform
- Dzone: Platform as Code With Openshift and Terraform Learn how to set up a pipeline workflow with Openshift and the Terraform infrastructure-as-code tool to configure builds and deployments.
- techcommunity.microsoft.com: Can I create an Azure Red Hat OpenShift cluster in Terraform? Yes, you can!
Other Boilerplates
- gist.github.com/chadmcrowell: AKS w/Virtual Nodes (ACI)
- ahgraber/homelab-terraform Bootstrap VMs with Terraform & vSphere provider. Use Terraform to provision VMs in vsphere and call ansible to configure hosts. The second half of this project (deploying a k3s cluster via gitops) is here.
- garutilorenzo/k3s-aws-terraform-cluster Deploy an high available K3s cluster on Amazon AWS
- poseidon/typhoon Typhoon is a minimal and free Kubernetes distribution with Terraform.
Terraform Kubernetes Operator
Terraform K3s Boilerplates
- Global K3s Deployment on Packet Baremetal ๐ This repository contains Terraform scripts to deploy K3s and LinkerD on Packet baremetal servers spanning the globe.
Terraform and GCP
- cloud.google.com: Terraform blueprints and modules for Google Cloud ๐
- medium.com/@nanditasahu031: Terraform with GCP Cloud
- medium.com/google-cloud: Setting up Config Connector with Terraform & Helm What if you could create the necessary service account, assign permissions and annotate it for seamless work with GCP Workload Identity, and deploy it as one Helm release? Well โ say hello to Config Connector for GKE
- medium.com/@tarikucar: Getting started with Google Cloud Storage with Terraform ๐
- linkedin.com/pulse: GCP-Advanced-Terraform-Interactive-Learning-Challenge
- hashicorp.com: Access Google Cloud from HCP Terraform with workload identity Securely access Google Cloud from HCP Terraform using workload identity federation, eliminating the need to store service account keys.
Terraform GKE Boilerplates
- learnk8s.io/terraform-gke ๐ Provisioning Kubernetes clusters on GCP with Terraform and GKE. Fully automated dev, test, prod environments with Google Kubernetes Engine (GKE) + container-native load balancing? The guide goes into the details of how you can provision your infrastructure with Terraform and how you can route live traffic with the GKE Ingress controller. By the end Kristijan M. will teach you how you can have:
- The creation of 3 environments (dev, test, prod) automated
- A cluster that can handle live traffic with the GKE Ingress controller.
- GKE Ingress enabled with container-native load balancing.
- All source code and knowledge to build your own infra.
- circleci.com: Infrastructure as Code, part 1: create a Kubernetes cluster with Terraform
- hashicorp.com: Terraform Adds Support for GKE Autopilot
- hackernoon.com: Exporting Your GKE Cluster to Terraform Cloud: A Guide with Challenges and Solutions
- github.com/roib20: Terraform - Provision a GKE Cluster with Cloudflare Ingress and ArgoCD This repo contains three Terraform modules to provision a GKE cluster, and then deploy Helm charts and Kubernetes manifests. The included deployments are designed for a fully-functioning Ingress controller that works with Cloudflare.
Terraform and AWS
- Dzone: terraform and AWS
- Dzone: terraform with AWS
- github.com/terraform-aws-modules/terraform-aws-solutions Set of standalone and reusable AWS/DevOps solutions implemented as Terraform modules
- hashicorp.com: Terraforming RDS: What Instacart Learned Managing Over 50 AWS RDS PostgreSQL Instances with Terraform
- Dzone: provisioning servers in cloud with terraform
- Dzone: how to deploy apps effortlessly with packer and terraform
- stories.schubergphilis.com: (Terraform) AWS management using your Google account
- thenewstack.io: Terraform on AWS: Multi-Account Setup and Other Advanced Tips
- medium: How to Provision AWS Infrastructure with Terraform? ๐
- middlewareinventory.com: Terraform import All AWS Security Groups โ How to ๐
- hashicorp.com: Terraform AWS Provider Continues to Expand Coverage During 2021, HashiCorp and Amazon Web Services have partnered to bring hundreds of new services and features to the Terraform providers for AWS and AWS Cloud Control.
- infoq.com: HashiCorp Terraform AWS Provider Introduces Significant Changes to Amazon S3 Bucket Resource
- dev.to/arpanadhikari: Reusable AWS iam role for service-accounts (IRSA for k8s ) terraform module AWS supports authenticating your pods using an identity provider that your account is configured to trust. This tutorial will guide you through the process of creating an IAM role that your kubernetes pods will be able to assume.
- betterprogramming.pub: Terraform Setup for Using AWS Lambda With S3 Build your buckets
- aws.amazon.com: Save time with automated security checks of your Terraform scripts Looking for a way to automate security checks of your Terraform scripts directly into your continuous integration and continuous delivery (CI/CD) pipeline? How about a way to view the results of those security checks and address issues before deployment, all with built-in notifications? Then check out our solution using Checkov, a static code analysis tool for flagging security and compliance problems.
- haque-zubair.medium.com: AWS API Gateway & Lambda with Terraform
- medium.com/@abhimanyubajaj98: Deploying Kubernetes from Scratch with Terraform: A Step-by-Step Guide
- aws.plainenglish.io: Building AWS Infrastructure with Terraform Modules Also learn how to create an S3 backend for easy state file versioning
- khainas.dev: Create SSH tunnel in AWS with Terraform Or the adventures of the JUMP Instance
- faun.pub: Configuring a Highly Available Infrastructure in AWS using Terraform
- towardsaws.com: Terraform Basics: Creating Custom AWS VPC, Subnets, and Route Tables
- medium.com/@anatoliydadashev: Terraform & AWS decoupled architecture
- dev.to: How to deploy a serverless website with Terraform
- towardsaws.com: Creating a Bastion Host for Secure Access to Your AWS Infrastructure with Terraform
- github.com/aws-samples: AWS Service Catalog Engine for Terraform The AWS Service Catalog Terraform Reference Engine (TRE) provides an example for you to configure and install a Terraform engine in your AWS Service Catalog administrator account. With the engine installed into your account, you can use Service Catalog as a single tool to organize, govern, and distribute your Terraform configurations within AWS.
- dev.to: Terraforming AWS RDS : Scaling Postgres
- medium.com/aws-infrastructure: Create AWS VPC Infrastructure with Terraform
- numericaideas.com: Auto Scaling Group on AWS with Terraform
- aws.plainenglish.io: Terraform Hands-on Project Day-66 Build Your Own AWS Infrastructure
- devopscube.com: AWS Terraform Autoscaling Group With ALB Deployment Tutorial
- medium.com/cloud-native-daily: How to Securely Manage Terraform State File in AWS Using Terraform A step-by-step guide on how to securely manage, as well as share state files in AWS by using Terraform.
- dev.to/monarene: Dynamic Volume Provisioning in Kubernetes with AWS and Terraform In this article, you’ll learn about Persistent Volumes and how they are provisioned, managed, and configured in AWS. You’ll compare Static and Dynamic volume provisioning, how they overlap, and which provisioning mechanism you should employ
- blog.awsfundamentals.com: Mastering AWS Lambda with Terraform: A Comprehensive Guide
- medium.com/@rizkiprass: Beginner Terraform Tutorial: Launching EC2 in AWS using Terraform
- github.com/squareops/terraform-aws-vpc Terraform Module to create an AWS VPC network with VPN and configure Peering b/w multiple VPCs
- devxblog.hashnode.dev: Terraform with AWS
- dev.to/aws-builders: Deploying a Containerized App to ECS Fargate Using a Private ECR Repo & Terragrunt
- blog.devops.dev: How to create an AWS sandbox account using terraform
- towardsaws.com: Automating Static Website Deployment: A Guide to CI/CD with AWS and Terraform
- youtube: Three tier architecture using Terraform in AWs
- github.com/tokarev-artem/auto-ec2-setup This project was created for automatic and 5 minutes setup ec2 instances for hosting php applications
- dev.to/chinmay13: AWS Networking with Terraform: VPC Transit Gateway between VPCs
- hashicorp.com: Terraform AWS Cloud Control API provider now generally available The Terraform AWS Cloud Control provider helps you use new AWS services faster with Terraform.
- dev.to/aws-builders: My Service Mesh journey with Terraform on AWS Cloud - Part 1
- dev.to/aws-builders: My Service Mesh journey with Terraform on AWS Cloud - Part 2
- github.com/infrahouse/terraform-aws-ecs Module that runs service in ECS
- dev.to/bennyfmo_237: Deploying Basic Infrastructure on AWS with Terraform
AWS Service Catalog
- New โ Self-Service Provisioning of Terraform Open-Source Configurations with AWS Service Catalog ๐๐๐ With AWS Service Catalog, you can create, govern, and manage a catalog of infrastructure as code (IaC) templates that are approved for use on AWS. These IaC templates can include everything from virtual machine images, servers, software, and databases to complete multi-tier application architectures. You can control which IaC templates and versions are available, what is configured by each version, and who can access each template based on individual, group, department, or cost center. End users such as engineers, database administrators, and data scientists can then quickly discover and self-service provision approved AWS resources that they need to use to perform their daily job functions.
AWS Observability Accelerator for Terraform
- github.com/aws-observability
- aws-observability.github.io: AWS Observability Accelerator for Terraform ๐ The AWS Observability Accelerator for Terraform is a set of opinionated modules to help you set up observability for your AWS environments with AWS-managed observability services such as Amazon Managed Service for Prometheus, Amazon Managed Grafana, AWS Distro for OpenTelemetry (ADOT) and Amazon CloudWatch. We provide curated metrics, logs, traces collection, alerting rules and Grafana dashboards for your EKS infrastructure, Java/JMX, NGINX based workloads and your custom applications. github.com/aws-observability/terraform-aws-observability-accelerator
- aws-observability.github.io: Tracing on Amazon EKS
Terraform EKS Boilerplates
- learnk8s.io/terraform-eks ๐ Fully automated dev, test, prod environments with EKS, Terraform and the ALB Ingress Controller.
- github.com/maddevsio/aws-eks-base: Boilerplate for a basic AWS infrastructure with EKS cluster ๐ This boilerplate contains the know-how of the Mad Devs team for the rapid deployment of a Kubernetes cluster, supporting services, and the underlying infrastructure in the Amazon cloud.
- github.com/aws-samples/aws-eks-accelerator-for-terraform: AWS EKS Accelerator for Terraform ๐ The AWS EKS Accelerator for Terraform is a framework designed to help deploy and operate secure multi-account, multi-region AWS environments. The power of the solution is the configuration file which enables the users to provide a unique terraform state for each cluster and manage multiple clusters from one repository.
- sebinxavi.medium.com: EKS cluster deployment using Terraform
- itnext.io: How to Design and Provision a Production-Ready EKS Cluster A comprehensive guide to create and configure a production-grade Kubernetes cluster on AWS with Terraform, Helm, and other open-source tools.
- faun.pub: Building an EKS Fargate cluster with Terraform
- medium.com/devgurus: Building production grade EKS clusters using Terraform
- medium.com/devops-mojo: Terraform โ Provision Amazon EKS Cluster using Terraform
- calvineotieno010.medium.com: Automate Provisioning of Kubernetes Clusters on AWS with Terraform
- dev.to: Creating an EKS Cluster and Node Group with Terraform
- dev.to: Install & Manage Amazon EKS Add-ons with Terraform
- Amazon VPC CNI
- CoreDNS
- Amazon EBS CSI
- dev.to: Install & Manage Amazon EKS Add-ons with Terraform
- calvineotieno010.medium.com: DevOps Automation with Terraform, AWS and Docker โ Build Production Grade EKS Cluster with Terraform
- garutilorenzo/k8s-aws-terraform-cluster Deploy an high available Kubernetes (k8s) cluster on Amazon AWS. The scope of this repo is to show all the AWS components needed to deploy a high available Kubernetes cluster. The final infrastructure includes:
- 2 ASGs
- 1 Internal LB
- 1 External LB
- 1 SG (VPC)
- 1 SG (external traffic)
- 1 IAM role
- 1 S3
- github.com/terraform-aws-modules/terraform-aws-eks: AWS EKS Terraform module Terraform module which creates AWS EKS (Kubernetes) resources
- itnext.io: Build EKS cluster with Terraform ๐ This post describes the creation of a multi-zone Kubernetes Cluster in AWS, using Terraform with some extra modules:
- ExternalDNS
- AWS Load Balancer controller
- faun.pub: Amazon EKS with Terraform and GitOps in minutes
- awstip.com: Streamlining AWS EKS Cluster Volume Management with Helm and Terraform: EBS CSI Driver + Self-Managed AddOn Option In this tutorial, you will learn how to configure OIDC Provider as Identity Provider in AWS IAM Service and install the EKS EBS CSI Driver as a self-managed add-On using Terraform and Helm
- hewi.blog: Deploying an EKS cluster using Terraform In this tutorial, you will learn how to provision an EKS cluster using Terraform and deploy a demo application to test it
- platformwale.blog: Create Amazon EKS Cluster within its VPC using Terraform
- medium.com/@ernestkwashie3: Provisioning Amazon Elastic Kubernetes Service (EKS) Cluster using Terraform
- dev.to/aws-builders: Navigating AWS EKS with Terraform: Understanding VPC Essentials for EKS Cluster Management
- medium.com/@seifeddinerajhi: Detecting Manual Actions in EKS Clusters with Terraform and SNS
- dev.to/verifacrew: How to assume an AWS IAM role from a Service Account in EKS with Terraform
- medium.com/@vajrapuvinod: Mastering Ingress Context Path Based Routing in AWS EKS using AWS Load Balancer Controller through Terraform
AWSCC. Terraform AWS Cloud Control Provider
- awscc Lifecycle management of AWS resources powered by the AWS Cloud Control API. This provider is fully generated from the available CloudFormation resource definitions and is maintained internally by the HashiCorp AWS Provider team.
- hashicorp.com: Announcing Terraform AWS Cloud Control Provider Tech Preview This new provider for HashiCorp Terraform โ built around the AWS Cloud Control API โ is designed to bring new services to Terraform faster.
- hashicorp.com: Using the Terraform AWS Cloud Control Provider This demo session shows how to use the new Terraform AWS Cloud Control provider & understand when to use the new provider vs the existing AWS provider.
AWS Control Tower Account Factory for Terraform (AFT)
- aws.amazon.com: New โ AWS Control Tower Account Factory for Terraform
- hashicorp.com: HashiCorp Teams with AWS on New Control Tower Account Factory for Terraform AWS Control Tower Account Factory for HashiCorp Terraform (AFT), the evolution of Terraform Landing Zones, offers an easy way to set up and govern a secure, multi-account AWS environment.
- aws.amazon.com: AWS Control Tower The easiest way to set up and govern a secure multi-account AWS environment
- trek10.com: Control Tower: Then vs Now Control Tower today is not the same Control Tower that you may have been introduced to in the past.
Porsche Official
- porscheofficial/terraform-aws-ecr-watch Terraform module that configures an Amazon ECR dashboard that shows container image ownership and usage metrics by account.
AWS Serverless with Terraform
- serverless.tf: Doing serverless with Terraform serverless.tf is an opinionated open-source framework for developing, building, deploying, and securing serverless applications and infrastructures on AWS using Terraform.
Terraform with Azure
- registry.terraform.io: Terraform Azure Resources ๐ This set of terraform modules will help you to create and manage a Azure Resources.
- build5nines.com: Get Started with Terraform on Azure
- medium: Using Terraform with Azure โ the right way
- github.com/kuhlman-labs/terraform-azurerm-landing-zone A curated collection of Terraform azurerm modules
- cloudbuild.co.uk: Part 1: Terraform with Azure - How to install Terraform
- cloudbuild.co.uk: Part 2: Terraform with Azure - How to install Azure CLI
- cloudbuild.co.uk: Part 3: Terraform with Azure - How to install Visual Studio Code
- cloudbuild.co.uk: Part 4: Terraform with Azure - How to install Azure Terraform Plugin in Visual Studio Code
- cloudbuild.co.uk: Part 5: Terraform with Azure - Install Git and initialise repository
- cloudbuild.co.uk: Part 6: Terraform with Azure - Deploy resources in Azure
- cloudbuild.co.uk: Part 7: Terraform with Azure - Deploy a variables file in Terraform
- cloudbuild.co.uk: Part 8: Terraform with Azure - Deploy terraform.tfvars file
- techcommunity.microsoft.com: Implement Azure landing zones with HashiCorp Terraform
- hashicorp.com: Configuring Azure Application Gateway with Consul-Terraform-Sync Synchronize HCP Consul services as backend address pools for Microsoft Azure Application Gateway using Consul-Terraform-Sync (CTS).
- azureviking.com: Terraform module: Azure DNS Private Resolver - haflidif/terraform-azurerm-dns-private-resolver
- github.com/thomast1906/terraform-on-azure A repo self-lead to give you an understanding on deploying Terraform on Azure
- blog.cloudtrooper.net: DRY Terraform code for Private Link and DNS
- azureway.cloud: Azure Container Apps โ Creating using Terraform [part 1]
- build5nines.com: Terraform: Deploy Azure Function App with Consumption Plan
- hashicorp.com: Building a secure Azure reference architecture with Terraform Learn how to use HashiCorp Terraform to deploy Azure resources using security best practices and policy as code.
- medium.com/@noelgass: Azure Common Monitoring With Terraform This article offers a comprehensive guide on creating a universal monitoring baseline for Azure resources within a subscription. The approach involves leveraging the Azure Provider azurerm in Terraform, coupled with metric alert rules tailored for Azure resources.
- techcommunity.microsoft.com: Simplifying Onboarding to Microsoft Defender for Cloud with Terraform
- techcommunity.microsoft.com: Create an Azure OpenAI, LangChain, ChromaDB, and Chainlit chat app in AKS using Terraform
- build5nines.com: Terraform: Deploy Azure App Service with Key Vault Secret Integration
- youtube: Using Azure Storage for Terraform State - Best Practices | Ned in the cloud
- hashicorp.com: Build secure AI applications on Azure with HashiCorp Terraform and Vault
- techcommunity.microsoft.com: Introducing Azure Verified Modules! ๐
- linkedin.com/pulse: Deploying Microsoft Sentinel via - ARM Template vs Terraform
- chatgpt.com: Azure Terraformer Expert in Azure Terraform with latest doc lookup.
- blog.xmi.fr: Terraform vs Bicep: the differences you should really know ๐
- techcommunity.microsoft.com: Terraform on Azure February 2024 Update
- azureviking.com: Terraform Module: azurerm-alz-subnet
- hlokensgard.no/knowledge-sharing: Miro Mind map over Azure Landing Zones element, Terraform modules, GitHub Code
- learn.microsoft.com: Introduction to using Azure Verified Modules for Terraform - github.com/azure-samples/avm-terraform-labs
- thomasthornton.cloud: Enabling PostgreSQL flexible server logs and configuring a retention period using Terraform
- awstip.com: Deploying Azure Infrastructure with Terraform
- build5nines.com: Terraform: Import Existing Azure Resources into State (.tfstate)
- build5nines.com: Terraform: Deploy Azure App Service with Key Vault Secret Integration
- build5nines.com: What is Azure Private Link and How to Deploy with Terraform
- thomasthornton.cloud: Writing reusable Terraform modules (azure)
Azure Terraform Export aztfexport
- github.com/Azure/aztfexport
- learn.microsoft.com: Overview of Azure Export for Terraform
- learn.microsoft.com: Using Azure Export for Terraform in advanced scenarios
- spacelift.io: Azure Terraform Export: Importing Resources with Aztfexport
- scalr.com: Getting Started with the Azure Terraform Export Tool
Azure Landing Zones with Terraform. Azure Network Architecture
- github.com/Azure/terraform-azurerm-caf-enterprise-scale
- registry.terraform.io/modules/Azure/lz-vending Terraform module to deploy landing zone subscriptions (and much more) in Azure
- techcommunity.microsoft.com: Azure Landing Zones Accelerators for Bicep and Terraform. Announcing General Availability!
- blog.cloud63.fr: Landing Zone networking using Terraform
- github.com/kaysalawu/azure-network-terraform: Azure Network Architecture - Terraform Examples ๐ Collection of terraform codes for various Azure network topologies.
- build5nines.com: Deploying Hub-and-Spoke Network Topology in Microsoft Azure using Terraform
- registry.terraform.io/modules/Azure/avm-ptn-alz: ALZ Terraform Module Terraform module to deploy Azure Landing Zones
Azure Terrafy and AzAPI Terraform Provider
- Announcing Azure Terrafy and AzAPI Terraform Provider Previews On Azure, businesses may choose many flavors of IaC tooling to manage their Azure resources including HashiCorp Terraform, Bicep, ARM templates, Ansible and many more. We encourage you to choose the IaC tool that best suits your needs. Our mission is to ensure that no matter which tool you choose, you have the best experience and integration with Azure.
- techcommunity.microsoft.com: Azure Terrafy โ Import your existing Azure infrastructure into Terraform HCL
- techcommunity.microsoft.com: Announcing AzAPI Dynamic Properties
- build5nines.com: Using AzAPI Terraform Provider Dynamic Properties Feature instead of jsonencode
Terraform in Azure DevOps. Azure DevOps with terraform
- adamtheautomator.com: How to Build Infrastructure with Terraform in Azure DevOps ๐
- faun.pub: Azure DevOps: Deploying Azure Resources using Terraform Infrastructure as Code | Terraform | Azure | Azure DevOps
- build5nines.com: Deploy Terraform using Azure DevOps YAML Pipelines
- thomasthornton.cloud: Deploy Terraform using Azure DevOps
- ibrahims.medium.com: Azure Terraform Pipeline โ DevOps
- registry.terraform.io/modules: azure-terraformer - azuredevops provider A collection of Terraform modules that provision to Azure DevOps
- devblogs.microsoft.com/devops: Introduction to Azure DevOps Workload identity federation (OIDC) with Terraform
- medium.com/@antoine.loizeau: Add a switch to simplify Terraform debugging
- github.com/microsoft/terraform-provider-azuredevops/releases/tag/v1.0.0
- thomasthornton.cloud: Error: spawn terraform ENOENT when running Terraform in Azure DevOps Pipeline
Terraform Azure Stack Provider
Terraform for a Data Engineer
Terraform AKS Boilerplates
- github.com/Azure/terraform-azurerm-aks Terraform Module for deploying an AKS cluster
- learnk8s.io/terraform-aks ๐
- itnext.io: How We Used Terraform to Create and Manage a HA AKS Kubernetes Cluster in Azure Learn how to use Terraform to manage a highly-available Azure AKS Kubernetes cluster with Azure AD integration and Calico network policies enabled.
- medium: Using Terraform with Azure โ the right way
- github.com/kuhlman-labs/terraform-azurerm-landing-zone A curated collection of Terraform azurerm modules
- hashicorp.com: Build a Quick AKS Cluster the Easy Way with Terraform Cloud ๐
-
github.com/stacksimplify/azure-aks-kubernetes-masterclass ๐
- stacksimplify.com/azure-aks: Kubernetes On Cloud Roadmap
- Boilerplate: 25-Azure-DevOps-Terraform-Azure-AKS ๐๐๐
- PDF presentation ๐
# 07-aks-cluster.tf # Network Profile # Kubenet is a kubernetes network configuration plugin for your AKS cluster. Nodes get an IP address from # the AKS subnet, and pods receive an IP address from a separate address space entirely. The source IP address # of the traffic is NAT'd to the node's IP address. # With kubenet there's NO Pod-to-Pod communication because they don't have their own public IPs. # User Defined Routing (UDR) and IP forwarding is used for communication between pods across nodes. # Kubenet is the preferred method since you get more pods per node and the AKS Cluster scales to a bigger number. # With kubenet Max Number of Pods per Node: 110 # With Kubenet and CIDR =/24 : 251 nodes * 110 pods per node = 27.610 pods # With Azure CNI (instead of kubenet) and CIDR =/24 : 8 nodes * 30 pods per node = 240 pods # If we have limited IP addresses to work with, we can fit more pods in the limited IP address space because we can # fit more pods per node. # The Service CIDR, Pod CIDR, and Docker Bridge Access can be any address range. # The DNS Service IP must be any IP address that's within the Service CIDR address range. # Network settings (service_cidr, pod_cidr, docker_bridge_cidr, dns_service_ip) are commented. The below values # correspond to the applied default values when these settings are note set up. # Default network settings with kubenet when they are not configured: # Azure AKS VNet = "10.0.0.0/8" # Azure AKS Subnet = "10.240.0.0/16" # service_cidr = "10.0.0.0/16" # pod_cidr = "10.244.0.0/16" # docker_bridge_cidr = "172.17.0.1/16" # Default. You can reuse this range across different AKS Clusters # dns_service_ip = "10.0.0.10" network_profile { # (1) load_balancer_sku = "Standard" network_plugin = "kubenet" # use Azure CNI network plugin when windows node pools are required (not supported by kubenet) #service_cidr = "10.0.0.0/16" #dns_service_ip = "10.0.0.10" #docker_bridge_cidr = "172.17.0.1/16" # Default. You can reuse this range across different AKS clusters. }
- Network Profile
-
Azure-Samples/private-aks-cluster-terraform-devops ๐ This sample shows how to create a private AKS cluster using Terraform and Azure DevOps.
- build5nines.com: Terraform: Create an AKS Cluster ๐
- thomasthornton.cloud: Building and deploying to an AKS cluster using Terraform and Azure DevOps with Kubernetes and Helm providers
- medium.com/@piyush.sachdeva055: Deploy AKS Cluster in Azure With Terraform
- In this 6-part tutorial series, you will explore how to set up a production-ready cluster on AKS:
- Setting up AKS: blog.codeswiftr.com: Kubernetes in Azure: A Step-by-Step Guide to Setting up a Production-Ready Cluster (with terraform | Bogdan Veliscu
- Deploying the cluster and HTTPS: blog.codeswiftr.com: Kubernetes in Azure: Part 2 โ Basic deployment to AKS and HTTPS setup | Bogdan Veliscu
- Setting up ACR
- Managing costs
- Databases and migrations
- Handling static files
- thomasthornton.cloud: Deploying Azure AKS GitOps Flux extension with Terraform
- github.com/amitmavgupta/azure-terraform Create AKS clusters with Cilium and Isovalent
- github.com/Azure-Samples/aks-platform-engineering Building a Platform Engineering Environment on Azure Kubernetes Service (AKS) ๐
- techcommunity.microsoft.com: How to deploy a production-ready AKS cluster with Terraform verified module
Terraform and OCI
- https://github.com/oracle-quickstart/oci-quickstart-template
- https://github.com/oracle-quickstart/oci-oke
- oracle-quickstart/oci-arch-db-migration This code will help you deploy a compute instance and Exadata Cloud Service (Quarter Rack) database system in Oracle Cloud Infrastructure.
Terraform and Linode
Istio with Terraform
- medium.com/@eoneoff: Installing Istio multicluster deployment with Terraform This article explains setting up an Istio multicluster installation using Terraform and Helm, including creating root self-signed certificates, deploying Istio with Helm charts, and configuring mutual service discovery between clusters
Terraform and Minikube
Terraform and Apache Kafka
Terraform and JMeter
Terraform and OpenVPN on AWS
- github.com/infrahouse/terraform-aws-openvpn Terraform module that deploys OpenVPN server.
Terraform Video Tutorials
CDK for Terraform
- CDK for Terraform ๐ CDK (Cloud Development Kit) for Terraform allows developers to use familiar programming languages to define cloud infrastructure and provision it through HashiCorp Terraform.
- hashicorp.com: GKE Cluster Setup with CDK for Terraform Learn how to provision a Google Kubernetes Engine (GKE) cluster and prepare it for application deployment using TypeScript via CDK for Terraform.
- hashicorp.com: CDK for Terraform Is Now Generally Available Cloud Development Kit for Terraform (CDKTF) has reached its first GA release, adding full support for Go and providing a GitHub action to use with Terraform Cloud.
- dev.to/aws-builders: Unleashing the Power of CDK and Terraform in Cloud Deployments
Graph Visualization Software
- The terraform graph command is used to generate a visual representation of either a configuration or execution plan. The output is in the DOT format, which can be used by GraphViz to generate charts.
- graphviz.org
- edotor.net
- dreampuf.github.io/GraphvizOnline
- graphviz.online
Terraform Modules
- offensive-terraform.github.io: Offensive Terraform Modules ๐ Automated multi step offensive attack modules with Infrastructure as Code(IAC)
- digitalocean.com: How To Build a Custom Terraform Module
- thomasthornton.cloud: Writing reusable Terraform modules (azure)
- blog.devops.dev: Terraform Modules
- dev.to: Terraform Modules for Advanced Users
- blog.devops.dev: How to manage multiple environments with terraform with the use of modules?
- betterprogramming.pub: Reusable EC2 Instances Using Terraform Modules A guide to mastering EC2 restructuring
Terraform AWS Modules
- github.com/terraform-aws-modules Collection of Terraform AWS modules supported by the community
Segment AWS Stack Terraform Modules
- The Segment AWS Stack
- segmentio/stack A set of Terraform modules for configuring production infrastructure with AWS
Terraform Providers
- Junos-terraform: JUNOS Terraform Automation Framework (JTAF)
- mitchellh/terraform-provider-multispace Terraform Provider for cascading runs across multiple workspaces.
- kyma-incubator/terraform-provider-kind: Terraform Provider for kind (Kubernetes IN Docker) The Terraform Provider for kind enables Terraform to provision local Kubernetes clusters on base of Kubernetes IN Docker (kind).
- github.com/circa10a/terraform-provider-mailform A terraform provider to send physical mail via https://mailform.io
- env0.com: How to Use Terraform Providers
- hashicorp.com: Terraform 1.8 provider functions for AWS, Google Cloud, and Kubernetes
- github.com/tlkamp/terraform-provider-validation: Validation Provider Extended validation for Terraform in the form of a custom provider.
Terraform AWS Cloud Control Provider
- hashicorp.com: Terraform AWS Cloud Control Provider โ Under the Hood Learn more about the Terraform AWS Cloud Control provider (awscc) and how it brings AWS resources to Terraform users even faster.
Terraform Provider for Elastic Cloud
- https://github.com/elastic/terraform-provider-ec
- infoq.com: Elastic Releases Terraform Providers for the Elastic Stack and Elastic Cloud
Terraform Vault Provider
Terraform AzureRM
- hashicorp.com: Terraform AzureRM 3.0 Brings Enhanced Azure Function Support
- registry.terraform.io: Data Source: azurerm_ip_groups (new)
- registry.terraform.io/modules/hlokensgard/rbac-administrator A Terraform module that will help you create role assignment for the role Role Based Access Control Administrator.
Terraform Code Quality. Terraform Quality Checks. Terraform Linters
- adinermie.com: Publishing GitHub Super-Linter Terraform Quality Checks to Azure DevOps Pipelines
- adinermie.com: Publishing TFSec Terraform Quality Controls to Azure DevOps Pipelines ๐
- prcode.co.uk: Terraform Code Quality
- github.com/terraform-linters/tflint
Enforce Policy with Sentinel
Reverse terraform with Terraformer
- github.com/GoogleCloudPlatform/terraformer ๐ A CLI tool that generates tf/json and tfstate files based on existing infrastructure (reverse Terraform).
- medium.com/@nanditasahu031: Terraformer โ Generate Terraform Files from Existing Infrastructure
- @ryanhos’ process: “If itโs anything reasonably complex, my process is:”
- Build w/ UI
- Gen w/ Terraformer (local state)
- Fix crazy codegen-ed names
- Import TF, verify Cloud == State == Terraform
- rm -rf the manual version
- Recreate from TF
- Test and iterate w/ IaC
Terraform Tools
- Brainboard ๐ Interesting solution for building infrastructure visually before generating terraform code automatically from the designed architecture
- terrascan ๐ Use terrascan to detect compliance and security violations
- tfsec ๐ a static analysis security scanner for your Terraform code
- Rover - Terraform Visualizer ๐ Interactive Terraform visualization. State and configuration explorer.
- cloudify.co: Cloudify and Terraform Integration. Supercharge Your Terraform Templates Significantly extend Terraform usability with Cloudify’s plugin and enjoy end-to-end automation and avoid costly blueprint transformation.
- cloudquery.io: Announcing CloudQuery Terraform Drift Detection
- run-x/opta: Opta - Supercharge DevOps on any cloud Infrastructure-as-code where you work with high-level constructs instead of getting lost in low level cloud configuration
- mineiros-io/terramate Terramate is a tool for managing multiple Terraform stacks that comes with support for change detection and code generation.
- cycloidio/inframap: Inframap ๐ Read your tfstate or HCL to generate a graph specific for each provider, showing only the resources that are most important/relevant.
- AWS/Terraform Tip ๐: Visualize your existing ecosystem by creating diagrams from a state file or HCL via ๐๐ป๐ณ๐ฟ๐ฎ๐ ๐ฎ๐ฝ. “Why not just ๐ต๐ฆ๐ณ๐ณ๐ข๐ง๐ฐ๐ณ๐ฎ ๐จ๐ณ๐ข๐ฑ๐ฉ”? InfraMap reduces the resources to the most important ones - making it human-readable ๐ค
- bridgecrewio/AirIAM AirIAM is an AWS IAM to least privilege Terraform execution framework. It compiles AWS IAM usage and leverages that data to create a least-privilege IAM Terraform that replaces the exiting IAM management method. AirIAM was created to promote immutable and version-controlled IAM management to replace today’s manual and error prone methods.
- badarsebard/terraforge Graphical Terraform configuration generator. Terraforge is an application for generating Terraform code visually. Users select providers and then add resources as nodes to a graph that can be edited and arranged. Links between nodes appear automatically as the configuration of a node makes references to other nodes. When finished the design can be exported as Terraform HCL. The configuration will include all settings and configurations entered for the nodes.
- infracloud.io: 5 Tools to Auto-Generate Terraform Configuration Files ๐
- spacelift.io: 18 Most Useful Terraform Tools to Use in 2023
- github.com/idoavrah/terraform-tui: TFTUI - The Terraform textual UI TFTUI is a powerful textual UI that empowers users to effortlessly view and interact with their Terraform state. With its latest version you can easily visualize the complete state tree, gaining deeper insights into your infrastructure’s current configuration. Additionally, the ability to search the tree and inspect individual resource states allows you to focus on specific details for better analysis and management. It’s also possible to select specific resources and perform actions such as tainting, untainting and deleting them. Finally, you are now able to create and apply plans directly from the UI.
- github.com/jamesw4/confirm-tfvars Cross platform PowerShell module to validate tfvars files.
- umeshtyagi829.medium.com: Secure Terrafrom IaC code using Checkov
- github.com/inkdrop-org/inkdrop-visualizer Terraform Visualizer. Inkdrop is a CLI tool that creates interactive diagrams to visualize your Terraform. It helps you onboard engineers generate documentation and understand dependencies faster.
- github.com/seal-io/tap: Terraform Advanced Patcher (TAP) Patch Terraform Resource As Your Mind.
- atmos.tools: Why Does Atmos Exist? Atmos fills the gap for Terraform users by offering a proven framework complete with conventions, methodologies, design patterns, and best practices, ensuring teams succeed with Terraform from the start.
- github.com/RoseSecurity/Terramaid A utility for generating Mermaid diagrams from Terraform configurations
- github.com/cloudposse/atmos Terraform Orchestration Tool for DevOps. Keep environment configuration DRY with hierarchical imports of configurations, inheritance, and WAY more. Native support for Terraform and Helmfile.
- github.com/leg100/pug: PUG Drive terraform at terminal velocity. A terminal user interface for terraform power users.
- Perform tasks in parallel (plan, apply, init, etc)
- Interactively manage state resources (targeted plans, move, delete, etc)
- Supports terraform, tofu and terragrunt
- Supports terragrunt dependencies
- Supports workspaces
- Automatically loads workspace variable files
- Backend agnostic (s3, cloud, etc)
Writing Terraform for unsupported resources with TerraCurl
- hashicorp.com: Writing Terraform for unsupported resources ๐ TerraCurl is a utility Terraform provider that allows engineers to make managed and unmanaged API calls in their Terraform code.
Terraform Frameworks
Kubestack Terraform GitOps Framework
Gruntwork Terragrunt
- gruntwork.io Build your infrastructure on top of a collection of over 300,000 lines of reusable, battle-tested infrastructure code written in Terraform, Go, Python, and Bash that has been proven in production at hundreds of companies and is maintained and supported by DevOps experts.
- terragrunt.gruntwork.io DRY and maintainable Terraform code. Terragrunt is a thin wrapper that provides extra tools for keeping your configurations DRY, working with multiple Terraform modules, and managing remote state.
- towardsdatascience.com: State of the Art Infrastructure as Code. Terragrunt The newest layer of abstraction by Gruntwork thatโll make your life easier. Gruntworkโs Terragrunt is a wrapper over Terraform which concentrates on solving your problems of Terraform state management and configuration. It also solves some of the problems around having similar infrastructure deployed in different environments.
- blog.gruntwork.io: Introducing: The Gruntwork Module, Service, and Architecture Catalogs
- medium: Terragrunt cheat sheet What is Terragrunt? Terragrunt is a framework on top of Terraform with some new tools out-of-the-box. Thanks to some new files *.hcl and new keywords, you can share variables across terraform modules very easily.
- pie-r/terragrunt-vs-terraspace
- gruntwork-io/terragrunt-infrastructure-live-example A repo used to show examples file/folder structures you can use with Terragrunt and Terraform
- medium.com/predictivehire: Why we should use Terraform and Terragrunt to manage Kubernetes (with example code)
- medium.com/@nanditasahu031: How to Start with Terragrunt ๐
- infoq.com: Patcher, a Tool to Keep Updating Infrastructure as a Code
Terraspace
- Terraspace.cloud Terraspace is a Terraform Framework that optimizes for infrastructure-as-code happiness. It provides an organized structure, conventions over configurations, keeps your code DRY, and adds convenient tooling. Terraspace makes working with Terraform easier and more fun.
Terraform Associate Certification
- itnext.io: My Journey to HashiCorp Certified: Terraform Associate
- medium.com/bb-tutorials-and-thoughts: 250 Practice Questions For Terraform Associate Certification
- tomwechsler/HashiCorp_Certified_Terraform_Associate All about HashiCorp Certified: Terraform Associate and exam preparation!
ChatGPT
Images
Videos
Click to expand!
Tweets
Click to expand!
I'm getting questions about Terraform vs Kubernetes for managing infrastructure resources.
— Kelsey Hightower (@kelseyhightower) November 19, 2020
I make the distinction by treating Terraform as a frontend tool that interacts with control planes that present **its** resources through a declarative interface. Ownership is key.
1/ Yesterday we released v2.1.0 of the @HashiCorp Terraform provider for @HelmPack with a cool new feature: diffs of the @kubernetesio manifests that Helm is sending to the cluster!
— Phil, in the ๐๏ธ of Arizona (@PhilipSautter) April 2, 2021
So, what does this look like? Let's see ...
This is very common. Terraform doesnt give workload portability. It gives workflow portability
— Justin Garrison (@rothgar) July 29, 2021
By keeping the same workflow it improves adoption because it doesnโt matter if your managing EC2 or Pagerduty the same lang and tools work. It lowers switching costs through workflow https://t.co/wSOZYjZMm3
Unfortunately I think this is the biggest misconception that orgs have when deciding to adopt Terraform. It's "cloud agnostic" in the same way that Python is cloud agnostic. You still need vendor specific libraries. The only thing you standardize on is syntax and workflow
— Noah Mercado (@noah_mercado) July 29, 2021
It's not controversial to provision resources with code. It shouldn't be controversial to deploy and manage resources with code.
— Jaana Dogan ใคใ ใใฌใณ (@rakyll) September 9, 2021
Using Terraform with Co-pilot. pic.twitter.com/0hhbqmMGW1
— Alex Jones ๐ (@AlexJonesax) November 8, 2021
Yes. If itโs anything reasonably complex, my process is:
— Ryan Hochstetler (@ryanhos) January 19, 2022
1.) Build w/ UI
2.) Gen w/ #Terraformer (local state)
3.) Fix crazy codegen-ed names
4.) Import TF, verify Cloud == State == #Terraform
5.) rm -rf the manual version
6.) Recreate from TF
7.) Test and iterate w/ IaC
Let's continue to Terraform๐
— Vrukshali ๐ฆฅ (@vrukshali26) March 21, 2022
The value of a Terraform variable can be set multiple ways, including setting a default value, interactively passing a value when executing a terraform plan and apply, using an environment variable, or setting the value in a .tfvars file.
(1/2)
๐ AWS/Terraform Tip ๐
— Tobias Schmidt (@tpschmidt_) June 16, 2022
Get an estimate of your costs & a detailed overview of the pricing of each of your AWS resources via ๐ถ๐ป๐ณ๐ฟ๐ฎ๐ฐ๐ผ๐๐
You can even preview increased costs estimates for changed or added infrastructure in pull requests ๐ ๐คฉ
Link below โ pic.twitter.com/lyPUiDhWy5
๐ AWS/Terraform Tip ๐
— Tobias Schmidt (@tpschmidt_) June 22, 2022
Visualize your existing ecosystem by creating diagrams from a state file or HCL via ๐๐ป๐ณ๐ฟ๐ฎ๐ ๐ฎ๐ฝ
"Why not just ๐ต๐ฆ๐ณ๐ณ๐ข๐ง๐ฐ๐ณ๐ฎ ๐จ๐ณ๐ข๐ฑ๐ฉ"?
=> InfraMap reduces the resources to the most important ones - making it human-readable ๐ค
Link below โ pic.twitter.com/N43vWyaNjj