Hashicorp Packer & Terraform¶
- CDK Cloud Development Kit Terraform
- Terraform Infracost
- Awesome Terraform
- Terraform Cheat Sheets
- Best Practices
- Terraform and CI/CD
- Terraform and Kubernetes
- Terraform and K3s
- Terraform and GCP
- Terraform and AWS
- Terraform and Azure
- Terraform and Apache Kafka
- Terraform Video Tutorials
- CDK for Terraform
- Graph Visualization Software
- Terraform Modules
- Terraform Providers
- Terraform Quality Checks
- Enforce Policy with Sentinel
- Reverse terraform with Terraformer
- Terraform Tools
- packer.io docs
- computingforgeeks.com: Build AWS EC2 Machine Images (AMI) With Packer and Ansible
- Wikipedia.org: Terraform Software
- 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
- Testing Infrastructure as Code on Localhost
- 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
- dzone: Immutable Infrastructure CI/CD Using Hashicorp Terraform and Jenkins This extensive article should leave few questions unanswered about creating your infrastructure.
- 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 🌟
- globaldatanet.com: Terraform CI/CD Best Practices
- 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.
- adinermie.com: Publishing TFSec Terraform Quality Controls to Azure DevOps Pipelines 🌟
- 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…
- hashicorp.com: Testing HashiCorp Terraform 🌟 Learn testing strategies for HashiCorp Terraform modules and configuration, and learn how to run tests against infrastructure.
- 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
- docs.gitlab.com: GitLab managed Terraform State 🌟 Gitlab Terraform now share tfstate directly on gitlab.
- 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
- learn.hashicorp.com: Manage Private Environments with Terraform Cloud Agents
- 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
- youtube: GitOps for infrastructure using GitHub and Terraform Cloud 🌟
- 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
- 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.
- itnext.io: My Journey to HashiCorp Certified: Terraform Associate
- 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 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: 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: How I use Terraform and Helm to deploy the Kubernetes Dashboard 🌟 Terraform can deploy Helm Charts. Is it right for you?
- about.gitlab.com: How to use a push-based approach for GitOps with Terraform and AWS ECS and EC2
- opensource.com: My top 5 tips for setting up Terraform 🌟 These are the lessons I’ve learned after five years with Terraform.
- bridgecrew.io: Terraform security 101: Best practices for secure infrastructure as code 🌟
- 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
- 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
- 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.
Terraform Cheat Sheets¶
Terraform and CI/CD¶
- 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
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! 🌟
- hashicorp.com: Announcing General Availability of the HashiCorp Terraform Cloud Operator for Kubernetes 🌟
- 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
- medium: Deploy Infrastructure with the Terraform Cloud Operator for Kubernetes 🌟
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 utomated 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.
Terraform Kubernetes Operator¶
Terraform and K3s¶
- 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¶
- 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.
- AWS EKS Accelerator for Terraform: github.com/aws-samples/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.
Terraform and AWS¶
- Dzone: terraform and AWS
- Dzone: terraform with AWS
- 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? 🌟
Terraform and managed AWS EKS¶
- 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.
Terraform and Azure¶
- 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
- thomasthornton.cloud: Deploy Terraform using GitHub Actions to Azure
- github.com/kuhlman-labs/terraform-azurerm-landing-zone A curated collection of Terraform azurerm modules
- github.com/stacksimplify/azure-aks-kubernetes-masterclass 🌟
Terraform and Apache Kafka¶
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.
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.
- towardsdatascience.com: State of the Art Infrastructure as Code 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
- offensive-terraform.github.io: Offensive Terraform Modules 🌟 Automated multi step offensive attack modules with Infrastructure as Code(IAC)
Terraform Quality Checks¶
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).
- 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
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