Files
awesome-kubernetes/docs/terraform.md
Inaki Fernandez f7bfd481ef kustomize reorg
2024-01-16 16:19:56 +01:00

110 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)==}

  1. HashiCorp Learning Resources Reference Guide
  2. Packer
  3. HashiCorp Cloud Terraform Cloud
  4. Blogs and Newsletters
  5. Terraform
    1. Terraform and Jenkins
    2. Alternatives to Terraform
    3. Managing secrets in your Terraform code
    4. Terraform Cloud
      1. Alternatives to Terraform Cloud
    5. HCL
    6. CDK Cloud Development Kit Terraform
    7. Providing Terraform with Ansible
    8. Python Boto3 and Terraform
    9. Terraform Infracost
    10. Awesome Terraform
    11. Terraform Cheat Sheets
    12. Best Practices
    13. Terraform and CI/CD. Terraform Workspace
    14. Terraform Boilerplates
    15. Terraform and Kubernetes
    16. Terraform Kubernetes Boilerplates
      1. Hashicorp Terraform Kubernetes Collection
      2. Learnk8s Terraform and Managed Kubernetes
      3. OpenShift and Terraform
      4. Other Boilerplates
    17. Terraform Kubernetes Operator
    18. Terraform K3s Boilerplates
    19. Terraform and GCP
      1. Terraform GKE Boilerplates
    20. Terraform and AWS
      1. AWS Service Catalog
      2. AWS Observability Accelerator for Terraform
      3. Terraform EKS Boilerplates
      4. AWSCC. Terraform AWS Cloud Control Provider
      5. AWS Control Tower Account Factory for Terraform (AFT)
      6. Porsche Official
    21. Terraform with Azure
      1. Azure Landing Zones with Terraform
      2. Azure Terrafy and AzAPI Terraform Provider
      3. Terraform in Azure DevOps
      4. Terraform Azure Stack Provider
      5. Terraform AKS Boilerplates
    22. Terraform and OCI
    23. Terraform and Linode
    24. Istio with Terraform
    25. Terraform and Minikube
    26. Terraform and Apache Kafka
    27. Terraform and JMeter
    28. Terraform Video Tutorials
  6. CDK for Terraform
  7. Graph Visualization Software
  8. Terraform Modules
    1. Terraform AWS Modules
    2. Segment AWS Stack Terraform Modules
  9. Terraform Providers
    1. Terraform AWS Cloud Control Provider
    2. Terraform Provider for Elastic Cloud
    3. Terraform Vault Provider
    4. Terraform AzureRM
  10. Terraform Code Quality. Terraform Quality Checks
  11. Enforce Policy with Sentinel
  12. Reverse terraform with Terraformer
  13. Terraform Tools
  14. Writing Terraform for unsupported resources with TerraCurl
  15. Terraform Frameworks
    1. Kubestack Terraform GitOps Framework
    2. Gruntwork Terragrunt
    3. Terraspace
  16. Terraform Associate Certification
  17. ChatGPT
  18. Images
  19. Videos
  20. Tweets

HashiCorp Learning Resources Reference Guide

Packer

HashiCorp Cloud Terraform Cloud

Blogs and Newsletters

Terraform

Terraform and Jenkins

Alternatives to Terraform

Managing secrets in your Terraform code

Terraform Cloud

Alternatives to Terraform Cloud

HCL

CDK Cloud Development Kit Terraform

Providing Terraform with Ansible

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

{==

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

Terraform EKS Boilerplates

==}

AWSCC. Terraform AWS Cloud Control Provider

AWS Control Tower Account Factory for Terraform (AFT)

Porsche Official

Terraform with Azure

Azure Landing Zones with Terraform

Azure Terrafy and AzAPI Terraform Provider

Terraform in Azure DevOps

Terraform Azure Stack Provider

{==

Terraform AKS Boilerplates

Terraform and OCI

==}

Terraform and Linode

Istio with Terraform

Terraform and Minikube

Terraform and Apache Kafka

Terraform and JMeter

Terraform Video Tutorials

CDK for Terraform

Graph Visualization Software

Terraform Modules

Terraform AWS Modules

Segment AWS Stack Terraform Modules

Terraform Providers

Terraform AWS Cloud Control Provider

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

Writing Terraform for unsupported resources with TerraCurl

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.

Terraform Associate Certification

ChatGPT

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/PxyyY7TsCqs?si=kzCRojDteESqork1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<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>
<iframe width="560" height="315" src="https://www.youtube.com/embed/1Fl25dR01pw?si=Nr_cPtotnts5jO2B" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" 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>