CRITICAL FIXES: ✅ Add PersistentVolumeClaims for all stateful services - PostgreSQL: 20Gi PVC on nfs-emporium (data persistence) - Redis: 10Gi PVC on nfs-emporium (cache and queue) - RabbitMQ: 5Gi PVC on nfs-emporium (message queue) ✅ Pin all image versions (no more 'latest' tags) - Firecrawl API/Worker: v1.0.0 - Playwright Service: v1.0.0 - PostgreSQL (nuq-postgres): v1.0.0 - Redis: 7.4.1-alpine - RabbitMQ: 3.13.7-management-alpine ✅ Convert raw manifests to proper Helm chart - Template-based configuration - Centralized values.yaml - Proper Helm helpers and labels - Easy configuration management WHAT CHANGED: - Created chart/ directory with full Helm chart structure - Moved old manifests to old-manifests/ for reference - Updated ArgoCD Application to use Helm chart source - Added comprehensive README and MIGRATION docs - All services now use nfs-emporium storage class - Redis configured with AOF persistence - Proper resource limits and health checks - Gateway/HTTPRoute configs integrated into chart DEPLOYMENT: ArgoCD will automatically sync and apply changes. Old ephemeral data will be lost (fresh start with persistence). Resolves data loss issues and brings deployment to production standards.
56 lines
1.8 KiB
YAML
56 lines
1.8 KiB
YAML
# ------------------------------------------------------------------------------
|
|
# Application: firecrawl (spaceship-earth)
|
|
# Wave 20 — applications tier
|
|
# Web scraping and search service for JARVIS
|
|
#
|
|
# Primary DNS: spaceship-earth.local.mk-labs.cloud (EPCOT theme)
|
|
# Secondary DNS: firecrawl.local.mk-labs.cloud
|
|
#
|
|
# Components:
|
|
# - Firecrawl API (main service)
|
|
# - Firecrawl Worker (background job processor)
|
|
# - Playwright Service (browser automation)
|
|
# - Redis (cache and job queue) - WITH PERSISTENT STORAGE
|
|
# - PostgreSQL (state management) - WITH PERSISTENT STORAGE
|
|
# - RabbitMQ (message queue) - WITH PERSISTENT STORAGE
|
|
#
|
|
# PRODUCTION-READY FEATURES:
|
|
# - All stateful services use PersistentVolumeClaims
|
|
# - All images pinned to specific versions
|
|
# - Helm chart for configuration management
|
|
# - Resource limits and requests properly configured
|
|
# ------------------------------------------------------------------------------
|
|
apiVersion: argoproj.io/v1alpha1
|
|
kind: Application
|
|
metadata:
|
|
name: firecrawl
|
|
namespace: argocd
|
|
labels:
|
|
app.kubernetes.io/name: firecrawl
|
|
app.kubernetes.io/part-of: mk-labs
|
|
epcot.theme/name: spaceship-earth
|
|
annotations:
|
|
argocd.argoproj.io/sync-wave: "20" # Wave 20 — applications tier
|
|
spec:
|
|
project: default
|
|
source:
|
|
repoURL: https://gitea.mk-labs.cloud/rblundon/homelab.git
|
|
targetRevision: main
|
|
path: cluster/applications/firecrawl/chart
|
|
helm:
|
|
releaseName: firecrawl
|
|
values: |
|
|
# Production configuration
|
|
# Storage classes use nfs-emporium (Synology NFS)
|
|
# All images pinned to specific versions for stability
|
|
destination:
|
|
server: https://kubernetes.default.svc
|
|
namespace: firecrawl
|
|
syncPolicy:
|
|
automated:
|
|
prune: true
|
|
selfHeal: true
|
|
syncOptions:
|
|
- CreateNamespace=true
|
|
- ServerSideApply=true
|