A Terraform-based open-source framework to provision, manage, and operate Kubernetes clusters, cloud services, and observability systems across AWS, GCP, Azure, and OCI — with production-ready modules.
To simplify and standardize Kubernetes cluster creation, datastore management, and infrastructure provisioning across major cloud providers, while keeping the system modular and extensible.
- ✅ Multi-cloud support (AWS, Azure, GCP, OCI)
- ☸️ Managed Kubernetes provisioning with namespaces
- 📦 Artifact registries for container images
- 📊 Observability stack: Grafana, Loki, Tempo, Prometheus, Mimir, Fluentibit
- 🔁 Redis and SQL databases
- 📁 Terraform remote state handling
- 🚀 Helm-based service and cronjob deployment via zopdev/helm-charts
- Terraform v1.3+
- Cloud CLI (aws / gcloud / az / oci)
- Helm (for local deployments)
Each module in this repository has a corresponding vars.tf file that defines the required and optional variables for that module. Users can create a custom terraform.tfvars file to provide their environment-specific values before running the Terraform commands.
-
Initialize the module
terraform init
- Downloads the required providers and modules.
- Sets up the Terraform backend configuration if specified.
-
Plan the deployment
terraform plan -var-file="path/to/your/terraform.tfvars"- Creates an execution plan without making any changes to your infrastructure.
- Shows you what changes Terraform will make if you run
apply.
-
Apply the changes
terraform apply -var-file="path/to/your/terraform.tfvars"- Deploys the resources as defined in your Terraform configuration files.
- Prompts for confirmation before making any actual changes unless you use the
-auto-approveflag.
| # | Module | Purpose |
|---|---|---|
| 1 | Account Setup | Networking infra (VPCs, subnets, gateways) |
| 2 | Artifact Registry | Container image registries |
| 3 | Kubernetes Cluster | EKS, GKE, AKS, OKE setup with namespace |
| 4 | Observability | Monitoring, logging, tracing |
| 5 | Redis | Cloud-native Redis or local Redis via Helm |
| 6 | SQL | MySQL / PostgreSQL provisioning |
| 7 | Remote State | Terraform backend state management |
| 8 | Zop Helm | Helm-based cronjob and service deployments |
| 9 | Zop System | Helm chart management using zop.dev service |
| 10 | Kops Kube | Zop.dev-based log system deployment |
Sets up networking infrastructure like VPCs, subnets, NAT gateways, and security controls for each cloud provider.
| Cloud | Components Provisioned | Path |
|---|---|---|
| AWS | VPC, Public/Private Subnets, Internet/NAT Gateway, Security Groups | account-setup/aws/ |
| Azure | Virtual Network, Subnets, NSGs, Public IPs | account-setup/azure/ |
| GCP | VPC, Subnetworks, Firewall Rules, Cloud NAT | account-setup/gcp/ |
| OCI | VCN, Subnets, Internet Gateway, Security Lists | account-setup/oci/ |
Creates and configures cloud-native artifact registries for container image storage.
| Cloud | Service | Notes | Path |
|---|---|---|---|
| AWS | ECR (Elastic Container Registry) | Supports private/public repos | artifact-registry/aws/ |
| Azure | Azure Container Registry | Container Storage | artifact-registry/azure/ |
| GCP | Artifact Registry | Region-specific container storage | artifact-registry/gcp/ |
| OCI | OCI Container Registry | Supports private/public repos | artifact-registry/oci/ |
Provision managed Kubernetes clusters and namespaces with NGINX ingress setup.
| Cloud | Submodules | Description | Path |
|---|---|---|---|
| AWS | auth, eks, iam, namespace, nginx |
Full EKS cluster provisioning | k8s-cluster/aws/ |
| Azure | aad, aks, namespace, nginx |
Azure AKS with AAD and ingress | k8s-cluster/azure/ |
| GCP | gke, namespace, nat, nginx |
GKE setup with NAT and ingress | k8s-cluster/gcp/ |
| OCI | oke, namespace, nginx |
OKE cluster with NGINX setup | k8s-cluster/oci/ |
Deploy a full observability stack for metrics, logs, and traces.
| Tool | Purpose |
|---|---|
| Grafana | Dashboard visualization |
| Prometheus | Metrics collection |
| Loki | Log aggregation |
| Tempo | Distributed tracing |
| Mimir | Long-term metrics backend |
| Fluent Bit | Log shipping and parsing |
Cloud-specific paths:
Deploy Redis instances across multiple clouds or locally using Helm.
| Cloud | Module Path | Type |
|---|---|---|
| AWS | redis/aws-elasticache |
AWS ElastiCache |
| GCP | redis/gcp-redis |
GCP Redis |
| Azure | redis/azure-redis |
Azure Redis |
| OCI | redis/oci-redis |
OCI Cache Cluster |
| Local | redis/local |
Redis Helm chart |
Provision managed SQL databases (MySQL/PostgreSQL) in the cloud.
| Cloud | Module Path | Supported Engines |
|---|---|---|
| AWS | sql/aws-rds |
MySQL, PostgreSQL |
| Azure | sql/azure-mysql / sql/azure-postgres |
Separate modules |
| GCP | sql/gcp-sql |
MySQL, PostgreSQL |
| OCI | sql/oci-mysql / sql/oci-postgres |
Separate modules |
Used to store and manage Terraform state securely in each cloud provider.
| Cloud | Backend Type | Module Path |
|---|---|---|
| AWS | S3 | remote-state/aws/ |
| Azure | Azure Storage Account | remote-state/azure/ |
| GCP | GCS | remote-state/gcp/ |
| OCI | GCS | remote-state/oci/ |
Deploys cronjobs and services using Helm charts managed by zopdev/helm-charts.
| Component | Description | Path |
|---|---|---|
cronjob |
Scheduled tasks | zop-helm/ |
service |
Microservices/API apps | zop-helm/ |
Deploys the Zop System controller for managing Helm charts via Zop.dev.
| Cloud | Path |
|---|---|
| AWS | zop-system/aws/ |
| Azure | zop-system/azure/ |
| GCP | zop-system/gcp/ |
| OCI | zop-system/oci/ |
Deploy Zop.dev-based log management agents.
| Cloud | Path |
|---|---|
| AWS | kops-kube/aws/ |
| Azure | kops-kube/azure/ |
| GCP | kops-kube/gcp/ |
| OCI | kops-kube/oci/ |
