Skip to content

Bounty Submission: Universal One-Click Deployment (Docker + K8s + Tilt) for FinMind#1054

Open
singhvishalkr wants to merge 1 commit into
rohitdash08:mainfrom
singhvishalkr:feat/k8s-helm-tilt-deployment
Open

Bounty Submission: Universal One-Click Deployment (Docker + K8s + Tilt) for FinMind#1054
singhvishalkr wants to merge 1 commit into
rohitdash08:mainfrom
singhvishalkr:feat/k8s-helm-tilt-deployment

Conversation

@singhvishalkr
Copy link
Copy Markdown

Summary

This PR adds production-grade Kubernetes deployment infrastructure for FinMind with three deployment options:

  1. Helm Chart - Full-featured production deployment with autoscaling, TLS, and observability
  2. Raw K8s Manifests - Simpler deployment for learning or custom setups
  3. Tilt - Local K8s development with live reload

What's included

Helm Chart (deploy/helm/finmind/)

  • Complete application stack: backend, frontend, nginx proxy
  • Database tier: PostgreSQL with PVC, Redis
  • Observability: Prometheus, Grafana, Loki, Promtail
  • HPA for backend (2-10 replicas) and frontend (2-5 replicas)
  • TLS/HTTPS with cert-manager integration
  • Resource limits and health probes on all workloads
  • Environment-specific values (local, production)

Raw Manifests (deploy/k8s/)

  • Added frontend deployment and ingress
  • Added HPA manifests
  • Added resource limits and startup probes to backend
  • Updated ingress with proxy annotations
  • Updated documentation

Tilt Development

  • Tiltfile at project root for local K8s dev
  • Live reload for backend (Python) and frontend (Vite HMR)
  • Automatic port forwarding (frontend:5173, backend:8000)
  • Documentation in deploy/tilt/README.md

Quick Start

Helm (production):

helm install finmind ./deploy/helm/finmind -f ./deploy/helm/finmind/values-production.yaml

Tilt (local dev):

tilt up

Raw manifests:

kubectl apply -f deploy/k8s/

Verification

Tested template rendering with helm template. All manifests include:

  • Health probes (readiness, liveness, startup)
  • Resource requests and limits
  • Proper labels and selectors
  • Service discovery via K8s DNS

Checklist

  • Helm charts with values for multiple environments
  • Ingress with TLS-ready annotations
  • HPA for autoscaling
  • Secret management via K8s Secrets
  • Health probes on all deployments
  • Observability stack (Prometheus, Grafana, Loki)
  • Tiltfile for local K8s development
  • Documentation for all deployment methods

Add comprehensive Kubernetes deployment infrastructure:

Helm Chart (deploy/helm/finmind/):
- Full application stack templates (backend, frontend, nginx)
- PostgreSQL and Redis deployments with health probes
- Complete observability stack (Prometheus, Grafana, Loki, Promtail)
- Horizontal Pod Autoscaler (HPA) for backend and frontend
- TLS/HTTPS ready with cert-manager annotations
- Resource limits and requests for all workloads
- Multiple environment configs (local, production)
- RBAC for Prometheus and Promtail

Raw K8s Manifests (deploy/k8s/):
- Add frontend deployment and service
- Add HPA manifests for autoscaling
- Add resource limits and startup probes to backend
- Update ingress with proxy annotations
- Update README with Helm and TLS instructions

Tilt Development (Tiltfile + deploy/tilt/):
- Live reload for backend and frontend
- Automatic port forwarding
- Local K8s dev workflow documentation
- Test runner integration

Update root README with deployment options.

Co-authored-by: Cursor <cursoragent@cursor.com>
@singhvishalkr
Copy link
Copy Markdown
Author

Quick update: I am still aligned with the bounty submission scope here and can address maintainer feedback or checklist items as soon as you have notes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant