mini-blog-helm

📝 MINI BLOG – Fullstack Kubernetes Project (Helm-based)

A lightweight blog platform where users can create, view, and delete posts. This project is built with a full Helm chart structure for Kubernetes deployment, using Docker containers and best practices for configuration, secret management, and persistence.


✨ Key Features


🚀 Technologies Used

Layer Technology
Frontend HTML, CSS, JavaScript (Vanilla JS)
Backend Node.js, Express
Database PostgreSQL (inside Kubernetes)
Containerization Docker
Orchestration Kubernetes
Config Management ConfigMap, Secret, PVC, Namespace
Deployment Management 🆕 Helm (Templating, release lifecycle, rollback, upgrade, etc.)

⚙️ Setup Instructions

Installation

helm install mini-blog-helm . -n blog-project-helm --create-namespace

Upgrade (redeploy after changes)

helm upgrade mini-blog-helm . -n blog-project-helm

View Installed Releases

helm list -n blog-project-helm

View Release Status

helm status mini-blog-helm -n blog-project-helm

Uninstall Release

helm uninstall mini-blog-helm -n blog-project-helm

💡 Port Forwarding (Local Testing)

# Backend
kubectl port-forward svc/backend 3000:3000 -n blog-project-helm

# Frontend
kubectl port-forward svc/frontend 8080:80 -n blog-project-helm

Access backend at: http://localhost:3000 Access frontend at: http://localhost:8080


🔧 Backend API

Supports both /api/posts and /posts endpoints. Visit in browser or via curl:

curl http://localhost:3000/

Expected JSON response:

{
  "message": "Mini Blog Backend API",
  "endpoints": [
    "GET /health",
    "GET /posts or /api/posts",
    "POST /posts or /api/posts",
    "DELETE /posts/:id or /api/posts/:id"
  ]
}

Frontend sends requests to http://localhost:3000 and is reachable at http://localhost:8080


🛋️ Namespace

All Kubernetes resources are deployed under the namespace: blog-project-helm


📉 Cleanup

helm uninstall mini-blog-helm -n blog-project-helm
# If you want full removal including namespace:
kubectl delete namespace blog-project-helm

🔧 Test Checklist


Happy Helming! 🚀