Logo Lanfrica

mcherberty/cicd-terraform

Domaine:

healthcare

Type de record:

software
Créateur:
mch
Hôte:
A peer-to-peer learning platform for local communities in Uganda, built on Village Health Teams (VHT) networks and Women Groups with automated CI/CD infrastructure using GitHub Actions and Terraform.aform # VHT Community Learning Platform - CI/CD Pipeline A peer-to-peer learning platform for local communities in Uganda, built on Village Health Teams (VHT) networks and Women Groups with automated CI/CD infrastructure using GitHub Actions and Terraform. **Author:** Charles Herbert Matovu **Created:** 2025 ## 📋 Project Overview This repository contains the Infrastructure as Code (IaC) configuration for the VHT Community Learning Platform. The project aims to: - Provide accessible peer-to-peer learning resources - Support Village Health Teams (VHT) networks - Empower Women Groups in Uganda - Deploy and manage cloud infrastructure automatically - Ensure consistent, reproducible deployments ## 🏗️ Architecture ``` ├── main.tf # Core infrastructure resources ├── variables.tf # Input variables and validations ├── outputs.tf # Output values ├── backend.tf # Terraform backend configuration ├── terraform.tfvars.example # Example variable values ├── .github/ │ └── workflows/ │ ├── terraform-plan.yml # PR validation workflow │ ├── terraform-apply.yml # Production deployment workflow │ └── terraform-validate.yml # Code quality checks └── README.md ``` ## 🚀 Quick Start ### Prerequisites - **Terraform** >= 1.0 - **Google Cloud Platform** (GCP) account with a project - **GitHub** repository with this code - **gcloud CLI** installed and authenticated ### Local Setup 1. **Clone the repository:** ```bash git clone github.com cd cicd-terraform ``` 2. **Create GCP Service Account:** ```bash gcloud iam service-accounts create terraform-sa \ --display-name="Terraform Service Account" gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:terraform-sa@YOUR_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.admin" ``` 3. **Setup Workload Identity Federation (GitHub):** ```bash gcloud iam service-accounts add-iam-policy-binding \ terr …