https://github.com/galleybytes/infrakube
Infrakubed - A Kubernetes Custom Resource used to handle Terraform, OpenTofu, and other Infrastructure as Code (IaC) operations and workflows
https://github.com/galleybytes/infrakube
automation crd kubernetes opentofu terraform tofu
Last synced: about 2 months ago
JSON representation
Infrakubed - A Kubernetes Custom Resource used to handle Terraform, OpenTofu, and other Infrastructure as Code (IaC) operations and workflows
- Host: GitHub
- URL: https://github.com/galleybytes/infrakube
- Owner: GalleyBytes
- License: apache-2.0
- Created: 2023-10-05T14:14:02.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2026-04-29T04:02:40.000Z (about 2 months ago)
- Last Synced: 2026-04-29T05:12:08.010Z (about 2 months ago)
- Topics: automation, crd, kubernetes, opentofu, terraform, tofu
- Language: Go
- Homepage: https://tf.galleybytes.com
- Size: 7.56 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Infrakube
A Kubernetes controller for running Terraform and other Infrastructure as Code workflows.
Infrakube is the successor to [terraform-operator](https://github.com/galleybytes/terraform-operator). It uses the same `kind: Terraform` resource and keeps familiar spec fields like `terraformVersion`, `terraformModule`, and `images.terraform`, making migration straightforward. The main change is the API group, which moves from `tf.galleybytes.com` to `infrakube.galleybytes.com`.
## Features
- Runs Terraform `init`, `plan`, and `apply` as Kubernetes pods
- Supports all Terraform versions from 0.12 through 1.14 out of the box
- Module downloads via git, https, and other sources supported by go-getter
- Kubernetes, S3, GCS, and other Terraform backends
- AWS IRSA, GCP Workload Identity, and other cloud auth methods
- Task plugins for custom pre/post workflows
- Monitor plugins for notifications and observability
## Quick Start
```yaml
apiVersion: infrakube.galleybytes.com/v1
kind: Terraform
metadata:
name: my-infra
spec:
terraformVersion: "1.5.7"
terraformModule:
source: https://github.com/example/module.git?ref=main
backend: |-
terraform {
backend "kubernetes" {
secret_suffix = "my-infra"
in_cluster_config = true
}
}
```
## Support expectations
The automated suite is meant to prove controller behavior, task orchestration, and basic workflow execution. It does not try to cover every provider or cloud-specific module in the default CI path. If stronger proof is needed later, sandbox cloud smoke tests can live in separate nightly or manually triggered workflows.
For local test workflow details, see [`docs/testing.md`](docs/testing.md).
## Community
Join the channel: https://discord.gg/J5vRmT2PWg