nxtgauge-gitops/docs/PROJECT_STATUS_SUMMARY.md
Ashwin Kumar Sivakumar 7902b265a9 feat(ai): add AI plans docs, LiteLLM manifests, and infrastructure updates
- Add comprehensive AI plans implementation documentation
- Add LiteLLM gateway Kubernetes manifests
- Update PostgreSQL and Forgejo deployment configs
- Add build-from-binaries script
2026-06-15 06:15:41 +05:30

7.3 KiB

Project Status Summary - Nxtgauge Infrastructure

Last Updated

2026-06-15


What Has Been Completed

1. LiteLLM AI Gateway Deployment

  • Status: Fully deployed and working
  • Namespace: nxtgauge-ai
  • Service: litellm.nxtgauge-ai.svc.cluster.local:4000
  • Ingress: https://llm.nxtgauge.com (TLS via cert-manager)
  • Models configured:
    • askash-fastqwen3:4b (fast, 2.5GB)
    • askash-mainqwen3:8b (powerful, 5.2GB)
    • Plus 10 specialized model aliases for different use cases
  • Security: API key required via LITELLM_MASTER_KEY
  • Ollama: Remains internal-only, NOT exposed publicly
  • Files created:
    • apps/litellm/base/configmap.yaml
    • apps/litellm/base/deployment.yaml
    • apps/litellm/base/service.yaml
    • apps/litellm/base/ingress.yaml
    • apps/litellm/base/secret.yaml
    • apps/litellm/base/ratelimit.yaml
    • apps/litellm/base/kustomization.yaml
    • apps/litellm/README.md
    • apps/litellm/OPENCODE_CONNECT.md

2. Kubernetes Cluster Expansion

  • Added 4th worker node: nxtgauge-4 / Ramaris (89.167.0.148)
  • All nodes labeled with character names:
    • nxtgauge-1Rimuru (control plane)
    • nxtgauge-2Veldora (worker)
    • nxtgauge-3Diablo (worker)
    • nxtgauge-4Ramaris (worker)
  • All nodes Ready and schedulable

3. GHCR Registry Authentication

  • Created ghcr-regcred secret in nxtgauge and nxtgauge-ai namespaces
  • Updated registries.yaml on all K3s nodes to authenticate with GHCR
  • Restarted K3s services on all nodes
  • All deployments now pulling images successfully from GitHub Container Registry

4. Latest Code Deployed via GitHub Actions + Flux

All four repositories are live with their latest commits:

Repository Branch Commit Status
nxtgauge-frontend-solid high-performance 3b8f75d feat: add AI usage widget to user dashboard Deployed
nxtgauge-admin-solid high-performance f511a3c feat: add AI management page to admin panel Deployed
nxtgauge-ai-assistant main 4505d89 feat: add Ask Ash AI assistant implementation Deployed
nxtgauge-backend-rust high-performance ba63736 feat: add AI management endpoints and LiteLLM support Deployed
  • Flux synced to latest gitops commit c5b32538
  • 22/22 deployments ready

5. Ollama Models Downloaded

  • gemma3:270m (291 MB) - original model
  • qwen3:4b (2.5 GB) - fast/general use
  • qwen3:8b (5.2 GB) - powerful/long-form generation

6. OpenCode Configuration

  • Updated OpenCode binary from 1.14.201.17.7
  • Reverted config back to use Ollama Cloud with Kimi K2.7
  • Config file: ~/.config/opencode/opencode.jsonc

7. AI Plans Implementation Plan

  • Created detailed implementation plan:
    • docs/AI_PLANS_IMPLEMENTATION_PLAN.md
    • docs/AI_PLANS_FINAL_PLAN.md
  • Plan covers:
    • Database schema
    • Plan tiers (Free/Pro/Business/Enterprise)
    • API key generation
    • Usage tracking
    • Rate limiting
    • Model access control
    • Backend services architecture
    • API endpoints
    • Frontend integration
    • Deployment steps

What We Are Stuck At / Blocked On

1. PostgreSQL for LiteLLM (Optional Advanced Tracking)

  • Status: Attempted but not critical
  • Issue: Tried to deploy PostgreSQL in nxtgauge-ai namespace for LiteLLM's built-in virtual key tracking, but it failed to schedule on the new node due to Longhorn CSI driver not being available on nxtgauge-4
  • Impact: LOW - This is not required. We are building our own API key/usage tracking system instead.
  • Decision: Skip LiteLLM-native virtual keys. Use custom backend implementation.

2. AI Plans Implementation

  • Status: Core backend implementation complete
  • Completed: Database migration, models, repositories, core services, LiteLLM integration, endpoint wiring, admin endpoints, cron jobs, AI credit packages, auto-apply/auto-request log endpoints
  • Remaining: Kubernetes env-var wiring (AI_CREDIT_ADMIN_TOKEN), real payment gateway integration, automated integration tests
  • Next step: Apply migrations in target environment and configure Kubernetes secrets

Current System Health

Component Status
Kubernetes cluster 4 nodes Ready
Flux GitOps Synced
All 22 deployments Running
LiteLLM gateway Running
Ollama Running
AI Assistant Running
Frontend Running
Admin panel Running
19 backend rust services Running

Decisions Made

  1. Using GitHub Container Registry (GHCR) instead of registry.nxtgauge.com
  2. Using GitHub Actions + Flux instead of Forgejo/Gitea
  3. Using custom API key/usage tracking instead of LiteLLM Enterprise
  4. Using qwen3:4b as main fast model and qwen3:8b for long-form/power tasks
  5. Keeping Ollama internal-only, exposing only LiteLLM
  6. OpenCode using Ollama Cloud Kimi K2.7

  1. Run database migrations for AI plans and credit packages (cargo run -p db-migrate or sqlx migrate run)
  2. Configure AI_CREDIT_ADMIN_TOKEN secret for payments service to credit AI credits via users admin endpoint
  3. Add LITELLM_BASE_URL env var for users service (default already points to cluster local service)
  4. Credit purchase flow — integrate real payment gateway with /api/admin/ai/users/{id}/credits
  5. Add monitoring/alerting for AI usage and credit thresholds

Key Files and Commands

Useful Commands

# Check cluster nodes
kubectl get nodes -o custom-columns='NAME:.metadata.name,CHARACTER:.metadata.labels.node-name,ROLE:.metadata.labels.node-role\.kubernetes\.io/worker,STATUS:.status.conditions[-1].type,IP:.status.addresses[0].address'

# Check deployments
kubectl get deployments -n nxtgauge

# Check AI namespace
kubectl get pods -n nxtgauge-ai

# Check LiteLLM models
curl http://litellm.nxtgauge-ai.svc.cluster.local:4000/v1/models \
  -H "Authorization: Bearer sk-litellm-prod-1c66d63e701c32cd85922a62fd2e087469486a9b7a34d950423a8726d0aceec9"

# Check Flux status
flux get kustomizations --all-namespaces

# Get LiteLLM master key
kubectl get secret litellm-secrets -n nxtgauge-ai -o jsonpath='{.data.LITELLM_MASTER_KEY}' | base64 -d

Important Paths

  • GitOps repo: /home/ashwin/nxtgauge-gitops
  • Frontend repo: /home/ashwin/nxtgauge-projects/nxtgauge-frontend-solid
  • Backend repo: /home/ashwin/nxtgauge-projects/nxtgauge-backend-rust
  • Admin repo: /home/ashwin/nxtgauge-projects/nxtgauge-admin-solid
  • AI Assistant repo: /home/ashwin/nxtgauge-projects/nxtgauge-ai-assistant
  • AI plans plan: /home/ashwin/nxtgauge-gitops/docs/AI_PLANS_FINAL_IMPLEMENTATION.md

Blockers Requiring User Input

None currently. Core AI plans implementation is complete on the backend.


Notes

  • The PostgreSQL deployment attempt left a postgres-pvc in nxtgauge-ai namespace. It can be cleaned up safely since we are not using it.
  • No git commits have been made during recent infrastructure changes unless explicitly requested.
  • All changes were applied directly to Kubernetes and config files.
  • Local .opencode plugin was updated, but OpenCode binary upgrade was done via built-in opencode upgrade command.