Terraform modules and workspaces for provisioning an Ellf cluster on a managed Kubernetes service in GCP, AWS, or Azure.
Ellf (short for Explosion Large Language Framework) is an interactive, AI-powered assistant for Natural Language Processing (NLP) and machine learning projects. It integrates with your coding assistant (like Claude Code) and provides a fully data-private cluster — running locally or in the cloud under your control — that handles annotation, training, evaluation, and deployment.
This repository contains the Terraform that provisions that cluster. For product documentation — what Ellf is, how to install the CLI, and how the cluster fits into the platform — see https://ellf.ai/docs/cluster.
Each workspace creates a private-by-default Kubernetes cluster with the supporting infrastructure an Ellf deployment needs:
- A managed Kubernetes cluster with private nodes and a public API endpoint
- A managed PostgreSQL database, reachable only from inside the VPC
- A managed NFS share, exposed to the cluster as a
ReadWriteManyPV / PVC - A container registry and an object storage bucket
- A Kubernetes namespace, a
Secretcontaining the database password and a broker keypair, and the IAM glue that lets pods talk to cloud services
The Ellf helm chart, which deploys the application onto the cluster, lives elsewhere.
modules/
gcp/
database/ # Cloud SQL for PostgreSQL (private IP only)
gke/ # GKE cluster, node pools, Filestore NFS, IAM, namespace + secrets
aws/
database/ # RDS for PostgreSQL (private subnets only)
eks/ # EKS cluster, managed node groups, EFS NFS, IAM, namespace + secrets
azure/
database/ # PostgreSQL Flexible Server (private networking only)
aks/ # AKS cluster, node pools, Azure Files NFS, namespace + secrets
workspaces/
gcp-k8s/ # GCP workspace wiring VPC + Artifact Registry + GCS + database + cluster
aws-k8s/ # AWS workspace wiring VPC + ECR + S3 + database + cluster
azure-k8s/ # Azure workspace wiring VNet + ACR + Storage + database + cluster
The ellf CLI can download a packaged version of these modules and run terraform for you; see the cluster docs for the high-level flow. To run terraform directly:
cd workspaces/gcp-k8s # or aws-k8s, azure-k8s
terraform init
terraform plan -var-file=your.tfvars
terraform apply -var-file=your.tfvarsEach workspace's variables.tf documents the required inputs (project / region, domain, worker node pool definitions, etc.). Outputs include the cluster endpoint, the credentials command (gcloud container clusters get-credentials, aws eks update-kubeconfig, or az aks get-credentials), and the NFS PVC and infra secret names that the Ellf helm chart consumes.
All three workspaces produce the same logical shape — private cluster, private database, NFS-backed ReadWriteMany PVC, and a single ellf-infra Kubernetes secret containing the broker keypair and the database password. Workloads written against one cloud's cluster should run on the others without changes.
MIT.