A Kubernetes-based microservices infrastructure for the Microservices platform, managing the deployment of admin , client , authentication , and user services across development and production environments.
📁 Project Structure
microservices-k8s-infra/
├── cloudbuild.yaml # Google Cloud Build configuration
├── skaffold.yaml # Skaffold for Kubernetes CI/CD automation
├── docs/ # Documentation for deployment and processes
│ └── deployment/ # Environment-specific deployment docs
├── infra/ # Infrastructure for development & production
│ ├── development/ # Dev Docker & K8s manifests
│ │ ├── docker/ # Dockerfiles for each service
│ │ └── k8s/ # Kubernetes manifests (Deployments, Ingress)
│ └── production/ # Production Docker & K8s manifests
├── microservices-admin-app/ # Next.js Admin Dashboard
├── microservices-client-app/ # Next.js Client Application
└── microservices-backend/ # Go-based microservices (Auth, User, Admin)🚀 Core Services
| Service | Description | Path | Language |
|---|---|---|---|
| Admin App | Admin dashboard for managing spaces | microservices-admin-app/ | Next.js |
| Client App | User-facing coworking space client | microservices-client-app/ | Next.js |
| Auth Service | Authentication (JWT, RBAC) | microservices-backend/auth-service/ | Go (Gin) |
| User Service | User management microservice | microservices-backend/user-service/ | Go (Gin) |
| Admin Service | Admin-specific management | microservices-backend/admin-service/ | Go (Gin) |
🌐 Deployment Overview Development
-
Uses local Docker images and K8s manifests in
infra/development -
Configured for fast iteration via Skaffold
Production
-
Optimized Docker images in
infra/production -
Uses Google Cloud Build and Skaffold for CI/CD
📦 Prerequisites
-
Docker (Containerization)
-
Kubernetes (Container Orchestration)
-
kubectl (Kubernetes CLI)
-
Skaffold (K8s workflow automation)
🛠️ Local Development Setup
- Clone Repository
git clone https://github.com/Bunty9/microservices-k8s-infra.git
cd microservices-k8s-infra- Start Kubernetes Cluster
- start docker desktop and enable kubernetes
- Deploy Services
skaffold dev- Access the Platform
-
Admin Dashboard:
http://localhost:32001 -
Client App:
http://localhost:32000
📊 Environment Variables
- create .env files in each susequent microservices folder
- create .env.dev and .env.prod in microservices-backend
Set environment variables using Kubernetes ConfigMaps :
kubectl create configmap microservices-auth-app-env --from-env-file=microservices-auth-app/.env
kubectl create configmap microservices-user-app-env --from-env-file=microservices-user-app/.env
kubectl create configmap microservices-admin-app-env --from-env-file=microservices-admin-app/.env📤 Production Deployment (Google Cloud)
- Authenticate with GCP
gcloud auth login
gcloud config set project YOUR_PROJECT_ID- Trigger Build and Deploy
gcloud builds submit --config cloudbuild.yaml📜 Useful Commands
| Task | Command |
|---|---|
| Start local dev environment | skaffold dev |
| Apply Kubernetes manifests | kubectl apply -f infra/development |
| Inspect pod logs | kubectl logs -f |
| List Kubernetes services | kubectl get svc |
| Get all Resources | kubectl get all |
📚 Documentation
-
Development Guide :
docs/deployment/dev/dev.md -
Production Guide :
docs/deployment/prod/
🤝 Contributing
-
Fork the repo
-
Create a feature branch
-
Submit a pull request
📧 Contact For issues or contributions, reach out via GitHub Issues .