This project provisions and manages Kubernetes clusters across AWS (EKS) and GCP (GKE) using Terraform, and deploys a complete DevOps toolchain inside the clusters for infrastructure automation, monitoring, CI/CD, and security.
The goal is to demonstrate a multi-cloud strategy where Kubernetes serves as the common orchestration layer across cloud providers.
β Multi-Cloud Infrastructure β Provision AWS EKS and GCP GKE clusters with Terraform. β Infrastructure Automation β Python scripts (containerized) for AWS (boto3) and GCP (google-cloud SDK) operations, plus Kubernetes API automation. β Monitoring β Prometheus + Grafana dashboards across clusters. β CI/CD β Jenkins deployed inside Kubernetes for automated pipelines. β Code Quality & Security β SonarQube integration for static code analysis, Trivy for container vulnerability scanning. β Secrets Management β Kubernetes secrets (can be extended with Vault). β Scalable Architecture β Easily extendable to other clouds.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Terraform (IaC) β
β Provisions EKS, GKE, AKS, OKE & IKS Kubernetes Clusters β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β β β
ββββββββββ β β β β βββββββββββ
βΌ βΌ βΌ βΌ βΌ
βββββββββββββββββββββ βββββββββββββββββββββ βββββββββββββββββββββ βββββββββββββββββββββ βββββββββββββββββββββ
β AWS EKS (K8s) β β GCP GKE (K8s) β β Azure AKS (K8s) β β OCI OKE (K8s) β β IBM IKS (K8s) β
βββββββββββββββββββββ βββββββββββββββββββββ βββββββββββββββββββββ βββββββββββββββββββββ βββββββββββββββββββββ
β β β β β
ββββββββββββΌββββββββββββ β βββββββββββββΌββββββββββββ β βββββββββββββΌββββββββββββ
βΌ βΌ βΌ βΌ βΌ βΌ βΌ βΌ βΌ βΌ βΌ
Jenkins SonarQube Trivy Jenkins SonarQube Trivy Jenkins SonarQube Trivy Jenkins SonarQube Trivy
(CI/CD) (Code QA) (Sec) (CI/CD) (Code QA) (Sec) (CI/CD) (Code QA) (Sec) (CI/CD) (Code QA) (Sec)
βββββββββββββββββββββββββββββ¬ββββββββββββββββ¬ββββββββββββββββ¬ββββββββββββββββ¬βββββββββββββββββββββββββββ
βΌ βΌ βΌ βΌ
Prometheus + Grafana Monitoring (Unified Multi-Cluster Dashboards)
- Terraform
- Ansible
- AWS EKS
- GCP GKE
- Azure AKS
- Oracle OKE
- IBM Cloud
- Kubernetes
- Python (
boto3
,google-cloud-sdk
,kubernetes
,pyyaml
,requests
) - Docker (for containerizing Python automation)
- Jenkins (CI/CD)
- SonarQube (Code Quality)
- Trivy (Container Security Scanning)
- Prometheus
- Grafana
multi-cloud-kubernetes-infra-automation/
βββ README.md
βββ .gitignore
βββ .terraform-version
βββ Makefile
terraform/
β
βββ global/
β βββ variables/
β β βββ dev/
β β β βββ main.tfvars
β β β βββ state.tfvars
β β βββ staging/
β β β βββ main.tfvars
β β β βββ state.tfvars
β β βββ prod/
β β βββ main.tfvars
β β βββ state.tfvars
β βββ common/
β βββ common.tfvars
β βββ shared-variables.tf
β
βββ environments/
β βββ dev/
β β βββ main.tf
β β βββ variables.tf
β β βββ outputs.tf
β β βββ backend.tf
β β βββ providers.tf
β βββ staging/
β β βββ main.tf
β β βββ variables.tf
β β βββ outputs.tf
β β βββ backend.tf
β β βββ providers.tf
β βββ prod/
β βββ main.tf
β βββ variables.tf
β βββ outputs.tf
β βββ backend.tf
β βββ providers.tf
β
βββ modules/
β βββ aws/
β β βββ compute/
β β β βββ ec2/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ ecs/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ eks/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ lambda/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ networking/
β β β βββ vpc/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ security-groups/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ load-balancer/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ cloudfront/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ storage/
β β β βββ s3/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ efs/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ database/
β β β βββ rds/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ dynamodb/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ elasticache/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ monitoring/
β β β βββ cloudwatch/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ sns/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ security/
β β β βββ iam/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ secrets-manager/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ kms/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ management/
β β βββ cloudtrail/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ config/
β β βββ main.tf
β β βββ variables.tf
β β βββ outputs.tf
β β βββ versions.tf
β β
β βββ azure/
β β βββ compute/
β β β βββ vm/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ vmss/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ aks/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ container-instances/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ functions/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ networking/
β β β βββ vnet/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ nsg/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ load-balancer/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ application-gateway/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ cdn/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ storage/
β β β βββ storage-account/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ disk/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ database/
β β β βββ sql/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ cosmos-db/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ redis/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ monitoring/
β β β βββ monitor/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ log-analytics/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ security/
β β β βββ key-vault/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ identity/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ security-center/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ management/
β β βββ resource-group/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ policy/
β β βββ main.tf
β β βββ variables.tf
β β βββ outputs.tf
β β βββ versions.tf
β β
β βββ gcp/
β β βββ compute/
β β β βββ vm/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ gke/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ cloud-run/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ cloud-functions/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ networking/
β β β βββ vpc/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ firewall/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ load-balancer/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ cdn/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ storage/
β β β βββ gcs/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ disk/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ database/
β β β βββ cloud-sql/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ firestore/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ memorystore/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ monitoring/
β β β βββ monitoring/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ logging/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ security/
β β β βββ iam/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ secret-manager/
β β β β βββ main.tf
β β β β βββ variables.tf
β β β β βββ outputs.tf
β β β β βββ versions.tf
β β β βββ kms/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ management/
β β βββ project/
β β β βββ main.tf
β β β βββ variables.tf
β β β βββ outputs.tf
β β β βββ versions.tf
β β βββ org-policy/
β β βββ main.tf
β β βββ variables.tf
β β βββ outputs.tf
β β βββ versions.tf
β β
β βββ shared/
β βββ naming/
β β βββ main.tf
β β βββ variables.tf
β β βββ outputs.tf
β β βββ versions.tf
β βββ tagging/
β β βββ main.tf
β β βββ variables.tf
β β βββ outputs.tf
β β βββ versions.tf
β βββ data-sources/
β βββ main.tf
β βββ variables.tf
β βββ outputs.tf
β βββ versions.tf
β
βββ scripts/
β βββ deploy.sh
β βββ init.sh
β βββ plan.sh
β βββ apply.sh
β βββ destroy.sh
β βββ validate.sh
β
βββ policies/
β βββ aws/
β β βββ security-policies/
β β β βββ s3-bucket-policies.json
β β β βββ ec2-security-policies.json
β β β βββ iam-baseline-policies.json
β β βββ compliance-policies/
β β βββ soc2-compliance.json
β β βββ pci-compliance.json
β β βββ hipaa-compliance.json
β βββ azure/
β β βββ security-policies/
β β β βββ storage-account-policies.json
β β β βββ vm-security-policies.json
β β β βββ rbac-baseline-policies.json
β β βββ compliance-policies/
β β βββ soc2-compliance.json
β β βββ pci-compliance.json
β β βββ gdpr-compliance.json
β βββ gcp/
β βββ security-policies/
β β βββ gcs-bucket-policies.yaml
β β βββ compute-security-policies.yaml
β β βββ iam-baseline-policies.yaml
β βββ compliance-policies/
β βββ soc2-compliance.yaml
β βββ pci-compliance.yaml
β βββ gdpr-compliance.yaml
β
βββ docs/
β βββ architecture/
β β βββ high-level-design.md
β β βββ network-topology.md
β β βββ security-architecture.md
β β βββ data-flow-diagrams.md
β βββ runbooks/
β β βββ deployment-procedure.md
β β βββ incident-response.md
β β βββ backup-restore.md
β β βββ scaling-procedures.md
β βββ troubleshooting/
β β βββ terraform-issues.md
β β βββ provider-errors.md
β β βββ networking-problems.md
β β βββ state-management.md
β βββ best-practices/
β βββ coding-standards.md
β βββ security-guidelines.md
β βββ naming-conventions.md
β βββ deployment-guidelines.md
β
βββ tests/
βββ unit/
β βββ aws/
β β βββ vpc_test.go
β β βββ ec2_test.go
β β βββ s3_test.go
β βββ azure/
β β βββ vnet_test.go
β β βββ vm_test.go
β β βββ storage_test.go
β βββ gcp/
β βββ vpc_test.go
β βββ compute_test.go
β βββ gcs_test.go
βββ integration/
β βββ aws-integration_test.go
β βββ azure-integration_test.go
β βββ gcp-integration_test.go
βββ e2e/
βββ full-stack_test.go
βββ multi-cloud_test.go
βββ disaster-recovery_test.go
git clone https://github.com/<your-username>/multi-cloud-kubernetes-infra-automation.git
cd multi-cloud-kubernetes-infra-automation
- Configure AWS credentials (
~/.aws/credentials
) - Configure GCP credentials (
gcp-service-account.json
) - Run:
cd terraform
terraform init
terraform plan
terraform apply
kubectl apply -f k8s-manifests/jenkins/
kubectl apply -f k8s-manifests/sonarqube/
kubectl apply -f k8s-manifests/trivy/
kubectl apply -f k8s-manifests/prometheus/
kubectl apply -f k8s-manifests/grafana/
- Build & push Docker image:
cd python-automation
docker build -t <registry>/py-automation:latest .
docker push <registry>/py-automation:latest
- Deploy to Kubernetes:
kubectl apply -f k8s-manifests/automation-deployment.yaml
- Access Grafana dashboards via
kubectl port-forward
. - Prometheus scrapes metrics from both clusters.
- SonarQube for static code analysis.
- Trivy scans container images inside Kubernetes.
- Future enhancement: Integrate HashiCorp Vault for secrets.
- Add multi-cluster federation (KubeFed)
- Integrate ELK Stack for centralized logging
- Add ArgoCD for GitOps workflows
- Implement multi-region DR setup
This project is licensed under the GNU General Public License v3.0.
You are free to use, modify, and distribute this project under the same license.