Files
awesome-kubernetes/docs/terraform.md
Inaki Fernandez cdfd26bccd spring + summer
2022-09-11 21:43:43 +02:00

82 KiB
Raw Blame History

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

Blogs and Newsletters

Terraform

Managing secrets in your Terraform code

Terraform Cloud

Alternatives to Terraform Cloud

HCL

CDK Cloud Development Kit Terraform

Python Boto3 and 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.

Awesome Terraform

Terraform Cheat Sheets

Best Practices

Terraform and CI/CD. Terraform Workspace

Terraform Boilerplates

Terraform and Kubernetes

{==

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 GKE Boilerplates

==}

Terraform and AWS

{==

Terraform EKS Boilerplates

==}

AWSCC. Terraform AWS Cloud Control Provider

AWS Control Tower Account Factory for Terraform (AFT)

Terraform with Azure

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.

Terraform in Azure DevOps

Terraform Azure Stack Provider

{==

Terraform AKS Boilerplates

Terraform and OCI

==}

Terraform and Minikube

Terraform and Apache Kafka

Terraform and JMeter

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

Terraform Modules

Terraform AWS Modules

Segment AWS Stack Terraform Modules

Terraform Providers

Terraform Provider for Elastic Cloud

Terraform Vault Provider

Terraform AzureRM

Terraform Code Quality. Terraform Quality Checks

Enforce Policy with Sentinel

Reverse terraform with Terraformer

Terraform Tools

Terraform Frameworks

Kubestack Terraform GitOps Framework

Gruntwork Terragrunt

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.

CDK for Terraform

Terraform Associate Certification

Images

??? note "Click to expand!"

<center>
[![developer responsibility vs opta iac responsibility](images/opta_iac_responsibility_vs_developer_.png)](https://www.cncf.io/blog/2022/02/18/introducing-opta-terraform-on-rails/)
</center>

Videos

??? note "Click to expand!"

<center>
<iframe width="560" height="315" src="https://www.youtube.com/embed/l5k1ai_GBDE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe width="560" height="315" src="https://www.youtube.com/embed/gxPykhPxRW0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe width="560" height="315" src="https://www.youtube.com/embed/2Zwrtn-QPk0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe width="560" height="315" src="https://www.youtube.com/embed/C3ptdKC9-EQ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe width="560" height="315" src="https://www.youtube.com/embed/kFt0OGd_LhI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe width="560" height="315" src="https://www.youtube.com/embed/DeNflzdjxVM" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</center>

Tweets

Click to expand!

I'm getting questions about Terraform vs Kubernetes for managing infrastructure resources.

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.

— Kelsey Hightower (@kelseyhightower) November 19, 2020
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

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!

So, what does this look like? Let's see ...

— Phil, in the 🏜️ of Arizona (@PhilipSautter) April 2, 2021
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

This is very common. Terraform doesnt give workload portability. It gives workflow portability

By keeping the same workflow it improves adoption because it doesnt matter if your managing EC2 or Pagerduty the same lang and tools work. It lowers switching costs through workflow https://t.co/wSOZYjZMm3

— Justin Garrison (@rothgar) July 29, 2021
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

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
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

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
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

Using Terraform with Co-pilot. pic.twitter.com/0hhbqmMGW1

— Alex Jones 🚀 (@AlexJonesax) November 8, 2021
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

Yes. If its anything reasonably complex, my process is:
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

— Ryan Hochstetler (@ryanhos) January 19, 2022
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

Let's continue to Terraform🚀

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)

— Vrukshali 🦥 (@vrukshali26) March 21, 2022
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

🏗 AWS/Terraform Tip 💛

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

— Tobias Schmidt (@tpschmidt_) June 16, 2022
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

🏗 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 🤖

Link below ↓ pic.twitter.com/N43vWyaNjj

— Tobias Schmidt (@tpschmidt_) June 22, 2022
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>