Repository navigation
Releases
Releases · thimiraw3/task-tracker-api
v0.3.0 — Production K8s (Helm/HPA/NetworkPolicies/RBAC)
Converted manifests to a Helm chart. Added HPA (verified scaling 2→6 replicas under load), NetworkPolicies (verified pod isolation), and RBAC (verified scoped permissions via kubectl auth can-i).
v0.2.0 — Kubernetes Deployment
What's new
- Kubernetes manifests for the full stack (Postgres + API)
- Deployments with readiness/liveness probes on /health
- ConfigMap + Secret for configuration
- PersistentVolumeClaim for database storage
- Ingress (nginx) for external routing
- Tested end-to-end on Minikube
Try it
kubectl apply -f k8s/
v1.0.0 — Step 1: Base Application & Containerized CI/CD Pipeline
🚀 Overview
This milestone marks the completion of Step 1 for the Task Tracker API DevOps project. The project demonstrates end-to-end hands-on experience across modern DevOps practices, including Git workflow conventions, Linux runtime environments (WSL), containerization with Docker and Docker Compose, and automated CI/CD pipelines targeting GitHub Container Registry (GHCR).
✨ Key Features & Deliverables
1. Application & Core API
- RESTful Endpoints: Complete CRUD implementation for task management (
GET,POST,PUT,DELETE /tasks). - Health Check Probe: Dedicated
/healthendpoint for container readiness and liveness checks. - Database Persistence: PostgreSQL database layer powering API operations.
2. Containerization & Security Best Practices
- Multi-Stage Dockerfile: Multi-stage builds separate compilation/build dependencies from the final runtime image to keep container size minimal.
- Least Privilege Security: Runs under a non-root runtime user inside the container to minimize security vulnerabilities and reduce the blast radius of container breakouts.
- Docker Compose: Streamlined local development environment enabling single-command bootstrapping (
docker compose up --build).
3. CI/CD Pipeline & Registry Automation
- Automated Pull Request Testing: Unit test suite runs automatically on every PR to prevent regressions from reaching
main. - Automated GHCR Deployment: On merge to
main, passing builds are automatically packaged into Docker images and published to GitHub Container Registry (GHCR). - Traceable Image Tagging: Docker images are tagged dynamically with both
latestand the specific commit SHA for complete deployment auditing.
🛠️ Tech Stack & Tools
| Component | Technology |
|---|---|
| Backend Runtime | Node.js, Express.js |
| Database | PostgreSQL |
| Containerization | Docker, Multi-Stage Builds, Docker Compose |
| CI/CD Automation | GitHub Actions |
| Container Registry | GitHub Container Registry (GHCR) |
| Environment & OS | Linux (WSL2), Git (Branching/PR Workflows) |
📋 API Reference Summary
| Method | Endpoint | Description |
|---|---|---|
GET |
/health |
Application health and readiness check |
GET |
/tasks |
Retrieve all tasks |
GET |
/tasks/:id |
Retrieve a specific task by ID |
POST |
/tasks |
Create a new task |
PUT |
/tasks/:id |
Update an existing task |
DELETE |
/tasks/:id |
Delete a task |
🏗️ Architecture Decisions
- Multi-stage Docker builds: Keeps the production runtime image lean, secure, and free of unnecessary build tooling.
- Non-root container user: Restricts execution privileges inside the container, adhering to security best practices.
- Mocked DB in Unit Tests: Keeps CI test execution fast and decoupled from external infrastructure.
📦 How to Run & Verify This Release
# Clone repository
git clone https://github.com/thimiraw3/task-tracker-api.git
cd task-tracker-api
# Checkout Step 1 release tag
git checkout tags/v1.0-step1
# Launch local stack
docker compose up --buildThe API will be live and accessible at http://localhost:3000.