Infrastructure as Code for Fast.BI Data Platform
This repository contains production-ready Terraform modules for deploying the Fast.BI data development platform infrastructure across multiple cloud providers. These modules are designed to be used with Terragrunt or directly from Terraform configurations.
Repository: fast-bi/data-platform-terraform-module
Fast.BI is an end-to-end data development platform that consolidates the entire modern data stack into a unified experience. It provides a wrapper on top of popular data services, connecting everything seamlessly with intelligent automation and enterprise-ready features.
gke-cluster
- Google Kubernetes Engine cluster with secondary subnets for pods and servicesvpc-gke
- VPC with secondary subnets for GKE pod and service networksshared-vpc
- Shared VPC for multi-project architecturesvpc-gke-shared
- VPC configuration for shared GKE clusters
deploy_sa
- Service account creation with IAM roles and workload identityiam-add
- IAM role and policy managementiap-brand
- Identity-Aware Proxy brand configurationbastion_host
- Secure bastion host for private cluster access
cloud-dns
- Cloud DNS zone managementcloud-dns-recordset
- DNS record managementexternal-ip
- External IP address allocationfw-add
- Firewall rule management
artifact-registry
- Container registry for Docker imagescomposer
- Managed Apache Airflow environmentworkspace_user
- Google Workspace user managementkubeconfig
- Kubernetes configuration generation
create-project
- GCP project creation and configurationcreate-ou-folder
- Organization unit and folder structureenable_apis
- Google Cloud API enablement
eks
- Amazon Elastic Kubernetes Service cluster with managed and self-managed node groupsvpc
- VPC with public and private subnets for EKS deploymentgcp_aws_zone
- Cross-cloud zone configuration for GCP-AWS integration
Azure modules are planned for Q4 2025. Planned modules include:
- AKS - Azure Kubernetes Service cluster
- VNet - Virtual Network with subnets
- Resource Groups - Resource group management
- Storage Accounts - Azure Storage configuration
- Key Vault - Secrets management
- Service Principals - Identity management
Oracle Cloud modules are planned for Q2 2026. Planned modules include:
- OKE - Oracle Kubernetes Engine cluster
- VCN - Virtual Cloud Network
- Compartments - Compartment management
- Object Storage - OCI Object Storage
- Vault - Secrets management
- IAM - Identity and Access Management
The modules are designed to support the Fast.BI platform architecture:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Fast.BI Platform β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Data Services: Airbyte, dbt, Airflow, DataHub, etc. β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Kubernetes Cluster (GKE/EKS) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Cloud Infrastructure (VPC, IAM, DNS, Storage) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Terraform >= 1.0
- Terragrunt (recommended)
- Cloud provider CLI tools configured:
# terragrunt.hcl
terraform {
source = "git::https://github.com/fast-bi/data-platform-terraform-module.git//google_cloud/gke-cluster"
}
inputs = {
project = "my-fastbi-project"
location = "us-central1"
region = "us-central1"
name = "fastbi-cluster"
network = "projects/my-project/global/networks/fastbi-vpc"
subnetwork = "projects/my-project/regions/us-central1/subnetworks/fastbi-subnet"
min_node_count = "1"
max_node_count = "10"
cluster_secondary_range_name = "pods"
service_secondary_range_name = "services"
}
module "gke_cluster" {
source = "git::https://github.com/fast-bi/data-platform-terraform-module.git//google_cloud/gke-cluster"
project = "my-fastbi-project"
location = "us-central1"
region = "us-central1"
name = "fastbi-cluster"
network = "projects/my-project/global/networks/fastbi-vpc"
subnetwork = "projects/my-project/regions/us-central1/subnetworks/fastbi-subnet"
min_node_count = "1"
max_node_count = "10"
cluster_secondary_range_name = "pods"
service_secondary_range_name = "services"
}
Each module includes comprehensive documentation:
- Input variables - All configurable parameters with descriptions
- Output values - Resources and values exposed by the module
- Usage examples - Common configuration patterns
- Requirements - Provider and Terraform version requirements
- Production Ready: Battle-tested modules used in production environments
- Security First: Built-in security best practices and hardening
- Multi-Cloud: Support for GCP and AWS with consistent interfaces
- Modular Design: Mix and match modules for custom architectures
- Comprehensive: Covers networking, security, compute, and data services
# 1. Create project and enable APIs
module "project" {
source = "git::https://github.com/fast-bi/data-platform-terraform-module.git//google_cloud/create-project"
project_id = "fastbi-production"
name = "Fast.BI Production"
}
module "apis" {
source = "git::https://github.com/fast-bi/data-platform-terraform-module.git//google_cloud/enable_apis"
project = module.project.project_id
apis = ["container.googleapis.com", "compute.googleapis.com"]
}
# 2. Create VPC and networking
module "vpc" {
source = "git::https://github.com/fast-bi/data-platform-terraform-module.git//google_cloud/vpc-gke"
project = module.project.project_id
region = "us-central1"
name = "fastbi-vpc"
}
# 3. Create GKE cluster
module "gke" {
source = "git::https://github.com/fast-bi/data-platform-terraform-module.git//google_cloud/gke-cluster"
project = module.project.project_id
location = "us-central1"
region = "us-central1"
name = "fastbi-cluster"
network = module.vpc.network
subnetwork = module.vpc.subnet
min_node_count = "3"
max_node_count = "10"
cluster_secondary_range_name = "pods"
service_secondary_range_name = "services"
}
# 4. Create service accounts
module "service_accounts" {
source = "git::https://github.com/fast-bi/data-platform-terraform-module.git//google_cloud/deploy_sa"
project = module.project.project_id
sa_names = ["fastbi-deploy", "fastbi-monitor"]
project_roles = [
"fastbi-production=>roles/storage.admin",
"fastbi-production=>roles/logging.logWriter"
]
}
# 1. Create VPC
module "vpc" {
source = "git::https://github.com/fast-bi/data-platform-terraform-module.git//aws_cloud/vpc"
region = "us-west-2"
name = "fastbi-vpc"
}
# 2. Create EKS cluster
module "eks" {
source = "git::https://github.com/fast-bi/data-platform-terraform-module.git//aws_cloud/eks"
region = "us-west-2"
cluster_name = "fastbi-cluster"
cluster_version = "1.28"
vpc_id = module.vpc.vpc_id
subnet_ids = module.vpc.private_subnet_ids
eks_managed_node_groups = {
main = {
min_size = 1
max_size = 10
desired_size = 3
instance_types = ["t3.medium"]
}
}
}
All modules include security best practices:
- Network Security: Private clusters, VPC isolation, firewall rules
- Identity & Access: IAM roles, service accounts, workload identity
- Encryption: Secrets encryption, disk encryption, network encryption
- Compliance: CIS benchmarks, security scanning, audit logging
Modules follow semantic versioning:
- Major versions: Breaking changes requiring migration
- Minor versions: New features, backward compatible
- Patch versions: Bug fixes, backward compatible
module "gke_cluster" {
source = "git::https://github.com/fast-bi/data-platform-terraform-module.git//google_cloud/gke-cluster?ref=v1.2.0"
# ... configuration
}
We welcome contributions to improve these modules:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes: Follow our coding standards
- Add tests: Ensure your changes work correctly
- Submit a pull request: Describe your changes clearly
- Follow Terraform best practices
- Use consistent naming conventions
- Include comprehensive documentation
- Add examples for new features
- Test with multiple cloud provider versions
- Terraform: >= 1.0
- Google Provider: >= 5.0 (for GCP modules)
- AWS Provider: >= 5.0 (for AWS modules)
- Project Owner or Editor role
- Service Account Admin
- Kubernetes Engine Admin
- Compute Network Admin
- IAM permissions for EKS, EC2, VPC
- Route53 permissions (if using DNS modules)
- Documentation: Check module-specific README files
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Community: Fast.BI Community
This project is licensed under the MIT License - see the LICENSE file for details.
These modules are built on top of:
Ready to deploy Fast.BI infrastructure?
Get Started with Fast.BI β’
Documentation β’
Report Issues