A Kubernetes CRD and Controller to handle Terraform operations by generating k8s jobs catered to perform Terraform workflows
This project is:
- A way to run Terraform in Kubernetes by defining Terraform deployments as Kubernetes manifests
- A controller that configures and starts Terraform Workflows when it sees changes to the Kubernetes manifest
- Workflow runner pods that execute Terraform plan/apply and other user-defined scripts
This project is not:
- An HCL to YAML converter or vice versa
- A Terraform Module or Registry
Visit http://tf.isaaguilar.com for docs for version >= v0.5.x
.
Terraform is great, but every now and then, a module takes a turn for the worse and the workflow fails. When this happens, a terraform workflow will need to be "debugged."
Fortunately, the tfo
cli (https://github.com/isaaguilar/terraform-operator-cli) can be used to start a debug pod which is connected directly to the same terraform session the workflow runs. It does so by reading the TFO resource and generates a pod with the same environment vars, ConfigMaps, Secrets, and ServiceAccount as a regular workflow pod. Then it drops the user in a shell directly in the main module.
tfo debug my-tfo-resource --namespace default
The user should be ready to rock-n-roll and show off their mad debugging skills.
Connecting to my-tfo-resource-ca6ajn94-v2-debug-qmjd5.....
Try running 'terraform init'
/home/tfo-runner/generations/2/main$
Happy debugging!
Currently, I'm experimenting with a Discord channel. It may be tough when taking into account juggling a full time job and full time parenting, but I'll see what comes of it. Join the channel https://discord.gg/J5vRmT2PWg