terralabs Plan
The platform IaC layer. Reusable Terraform modules + Crossplane Compositions for common infrastructure shapes (VPC, EKS, RDS, MinIO, K3s on Proxmox, etc.). Provisions the infra that basecamp deploys onto. First public OSS launch in Year 2 Phase 9.
terralabs is the Group A platform project that handles the layer below basecamp — the cloud and homelab infrastructure (VPCs, clusters, databases, buckets) that basecamp’s GitOps then populates with workloads. It first activates in Year 2 Phase 9 and is the first artifact ROOT lets the world see — the loud launch of Year 2.
The repo’s signature move is implementing the same shapes in both Terraform and Crossplane Compositions, deliberately, side-by-side. That’s rare in the wild because most teams pick one and stop; ROOT picks both because the declarative-vs-imperative-infrastructure pattern only sticks when you’ve operated two implementations of it. The artifact that proves the pattern transferred is also the artifact that’s most useful to other engineers learning the same trade-off.
terralabs grows incrementally through Years 3-5 as the platform’s needs evolve — data infra modules in Year 3, ML infra modules in Year 4, optional multi-region in Year 5 — but its identity is locked in at the Y2 P9 launch: the multi-cloud module library that makes the same patterns reproducible across AWS, GCP, and Proxmox.
What it is
A GitOps repo with two parallel implementations of the same patterns:
terralabs/├── terraform/│ ├── modules/│ │ ├── aws-vpc/│ │ ├── aws-eks/│ │ ├── aws-rds-postgres/│ │ ├── aws-s3-secure-bucket/│ │ ├── gcp-vpc/│ │ ├── gcp-gke/│ │ ├── gcp-cloud-sql/│ │ ├── gcp-storage-secure-bucket/│ │ └── proxmox-k3s-cluster/│ └── environments/│ ├── homelab/│ ├── staging/│ └── production/├── crossplane/│ ├── compositions/│ │ ├── eks-with-rds.yaml│ │ ├── gke-with-cloudsql.yaml│ │ └── proxmox-k3s.yaml│ └── definitions/├── examples/│ ├── end-to-end-aws/│ ├── end-to-end-gcp/│ └── homelab-bootstrap/└── README.mdWhy it exists
basecamp deploys workloads; terralabs provisions the infrastructure those workloads run on. Together they’re the platform.
The differentiator (and why this is terralabs’s loud-launch artifact in Y2): Terraform and Crossplane Compositions for the same shape, side-by-side, as a teaching artifact. That’s rare in OSS and genuinely useful for engineers learning both tools.
Public OSS: other homelabbers / small teams use it; you get GitHub stars + brand evidence; multi-cloud module library is genuinely useful.
Pattern it teaches
declarative-vs-imperative-infrastructure: Terraform and Crossplane are two implementations of the same pattern. terralabs implements both intentionally so users can see the pattern, not just the tool.
Plus reinforced patterns:
- immutable-infrastructure
- control-loops: TF reconcile + Crossplane reconcile both implement
- gitops: Atlantis or PR-based TF apply; Crossplane via ArgoCD
Scope (by year)
Y2 P9: initial public ship
[ ] terraform/modules/{aws-vpc, aws-eks, aws-rds-postgres, aws-s3-secure-bucket}[ ] terraform/modules/proxmox-k3s-cluster[ ] crossplane/compositions/eks-with-rds (1 example to start)[ ] examples/ with end-to-end demos[ ] CI: terraform fmt + tflint + tfsec on PR[ ] README + architecture doc + per-module docs[ ] PUBLIC LAUNCH: blog post on abukix.dev/blog, LinkedIn announcementY2 P11: GCP added
[ ] terraform/modules/{gcp-vpc, gcp-gke, gcp-cloud-sql, gcp-storage-secure-bucket}[ ] crossplane/compositions/gke-with-cloudsqlY3-Y5: grows with platform
- Y3: Data infra modules (Redpanda K8s operator, MinIO operator, Iceberg catalog)
- Y4: ML infra modules (GPU node groups, Kubeflow bootstrap)
- Y5: Multi-region (if elective track requires)
When built
Year 2 Phase 9, Month 14. Grows continuously through Y5.
Dependencies
terralabs lives upstream of basecamp — it provisions the clusters and managed services basecamp’s ArgoCD then populates. There’s a clean handoff: terralabs outputs (kubeconfigs, DB connection strings, bucket ARNs) feed basecamp inputs. platform-ctl wraps both tools behind a single cluster bootstrap subcommand from Y3 onward.
Deliverables (Y2 end)
[ ] github.com/abukix/terralabs PUBLIC[ ] AWS + GCP + Proxmox modules covering VPC + cluster + DB + storage[ ] At least 1 Crossplane Composition per provider[ ] CI clean (tflint + tfsec + terraform fmt)[ ] README + examples[ ] Used by basecamp clusters (homelab + EKS + GKE)[ ] Public launch: blog post + LinkedInStack
- Terraform 1.9+ OR OpenTofu 1.8+
- Crossplane 1.18+
tflint,tfsec,checkovterragrunt(optional)atlantis(optional, for PR-based apply)- AWS CLI + GCP CLI
Public vs private
Public from day 1 (Y2 P9 launch). This is the year’s loud launch — terralabs is the first artifact you let the world see.
Success criteria
Y2 launch: - 50+ stars in launch month - 2-3 community PRs in launch quarter - At least 1 inbound message from a homelabber/team using it
By Y5: - Used as reference in the pattern paper - 200+ stars - 5+ active contributors - basecamp + at least 1 external project depends on itCross-references
- Phase: Year 2 Phase 9 (start), grows in P10 (AWS), P11 (GCP)
- Pattern: declarative-vs-imperative-infrastructure
- Master plan context: Master Plan — Group A: the platform itself
- Brand context: Abukix Studio
- Related: basecamp (deployed onto infra provisioned by terralabs), platform-ctl (wraps both)