A Kubernetes CRD and controller that runs Terraform operations as Kubernetes-managed workflows.
Terraform Operator is a Kubernetes operator that provides a Custom Resource Definition (CRD) and controller to run Terraform operations as managed workflows within Kubernetes. It allows users to define Terraform configurations as Kubernetes manifests, automating the execution of Terraform commands like plan and apply through dynamically generated pods. This bridges infrastructure-as-code practices with Kubernetes-native orchestration.
DevOps engineers and platform teams who manage infrastructure with Terraform and want to integrate those workflows directly into their Kubernetes clusters for better automation and resource management.
Developers choose Terraform Operator because it enables GitOps-style management of Terraform runs, leveraging Kubernetes' scheduling, secrets, and RBAC capabilities. Its unique approach treats Terraform executions as Kubernetes workloads, providing native integration without external CI/CD systems.
A Kubernetes CRD to handle terraform operations
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables defining Terraform configurations as Kubernetes manifests, leveraging native resources like ConfigMaps and Secrets for seamless cluster integration, as highlighted in the README's key features.
Controller automatically triggers Terraform workflows like init, plan, and apply in dedicated pods upon manifest changes, supporting GitOps-style automation without external CI/CD systems.
Allows execution of user-defined scripts for pre- and post-processing steps in Terraform workflows, adding extensibility to infrastructure deployments as mentioned in the features.
Integrates with the tfo CLI to spawn debug pods that replicate failed workflow environments, providing hands-on troubleshooting capabilities detailed in the related projects section.
Requires a running Kubernetes cluster and expertise in K8s manifests, making it inaccessible for teams without Kubernetes adoption or those using simpler infrastructure tools.
Installation involves Helm charts or manual kubectl apply of YAML files, which can be error-prone and daunting for users unfamiliar with Kubernetes operations, as noted in the installation section.
With versioning like v0.17.1 and an experimental community Discord, the project may have breaking changes and lack the stability of mature solutions, posing risks for production use.