Changes: - Replaced separate api and frontend deployments with single unified app deployment - Updated values.yaml: Changed from api/frontend configs to single app config - Renamed templates: api-deployment.yaml → app-deployment.yaml - Removed frontend-deployment.yaml and frontend-service.yaml (no longer needed) - Updated app image to warehouse13/app (multi-stage Docker build) - Combined resource allocations: 384Mi memory, 350m CPU (up from separate totals) - Updated all example values files (dev, production, air-gapped) - Updated NOTES.txt to reflect single service on port 8000 - Updated ingress to route all traffic to single app service - Added ARCHITECTURE.md documenting the unified container approach Architecture: The application now uses a multi-stage Docker build: 1. Stage 1: Builds Angular frontend with Node 2. Stage 2: Python FastAPI backend that serves static frontend from /static Benefits: - Simplified deployment (1 container instead of 2) - Reduced resource usage (no separate nginx) - Easier scaling (1 deployment to manage) - Consistent versioning (frontend/backend always match) Access pattern: - http://localhost:8000 → Angular frontend - http://localhost:8000/api → FastAPI REST API - http://localhost:8000/docs → API documentation - http://localhost:8000/health → Health check 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
84 lines
1.7 KiB
YAML
84 lines
1.7 KiB
YAML
# Warehouse13 - Air-Gapped Deployment Example
|
|
# Use this for restricted/disconnected environments
|
|
|
|
global:
|
|
deploymentMode: "airgapped"
|
|
storageBackend: "minio"
|
|
|
|
# PostgreSQL with custom registry
|
|
postgres:
|
|
enabled: true
|
|
image:
|
|
repository: harbor.internal.example.com/library/postgres
|
|
tag: 15-alpine
|
|
pullPolicy: IfNotPresent
|
|
auth:
|
|
username: warehouse13user
|
|
password: CHANGE_ME_SECURE_PASSWORD
|
|
database: warehouse13
|
|
persistence:
|
|
enabled: true
|
|
size: 20Gi
|
|
storageClass: "local-storage"
|
|
resources:
|
|
requests:
|
|
memory: "512Mi"
|
|
cpu: "500m"
|
|
limits:
|
|
memory: "1Gi"
|
|
cpu: "1000m"
|
|
|
|
# MinIO with custom registry
|
|
minio:
|
|
enabled: true
|
|
image:
|
|
repository: harbor.internal.example.com/library/minio
|
|
tag: RELEASE.2024-01-01T00-00-00Z
|
|
pullPolicy: IfNotPresent
|
|
auth:
|
|
rootUser: CHANGE_ME_MINIO_USER
|
|
rootPassword: CHANGE_ME_MINIO_PASSWORD
|
|
persistence:
|
|
enabled: true
|
|
size: 100Gi
|
|
storageClass: "local-storage"
|
|
resources:
|
|
requests:
|
|
memory: "1Gi"
|
|
cpu: "500m"
|
|
limits:
|
|
memory: "2Gi"
|
|
cpu: "1000m"
|
|
|
|
# Application with custom registry (unified API + Frontend)
|
|
app:
|
|
enabled: true
|
|
image:
|
|
repository: harbor.internal.example.com/warehouse13/app
|
|
tag: v1.0.0
|
|
pullPolicy: IfNotPresent
|
|
replicas: 2
|
|
resources:
|
|
requests:
|
|
memory: "768Mi"
|
|
cpu: "750m"
|
|
limits:
|
|
memory: "1536Mi"
|
|
cpu: "1500m"
|
|
|
|
# Ingress disabled for air-gapped - use NodePort or port-forward
|
|
ingress:
|
|
enabled: false
|
|
|
|
# Node selector for specific nodes
|
|
nodeSelector:
|
|
environment: production
|
|
storage: local
|
|
|
|
# Tolerations for tainted nodes
|
|
tolerations:
|
|
- key: "airgapped"
|
|
operator: "Equal"
|
|
value: "true"
|
|
effect: "NoSchedule"
|