Add comprehensive Warehouse13 Helm chart with configurable images

Features:
- Complete Helm chart at helm/warehouse13/ with Warehouse13 branding
- Configurable images for all components (PostgreSQL, MinIO, API, Frontend)
- Support for 3 deployment scenarios: dev, production, air-gapped
- 14 Kubernetes templates: Deployments, StatefulSets, Services, Ingress
- Persistent storage with configurable storage classes
- Health checks for all services
- Ingress with TLS support
- Security contexts and RBAC
- Comprehensive documentation:
  - HELM-DEPLOYMENT.md (main Kubernetes guide)
  - helm/warehouse13/README.md (full chart docs)
  - helm/warehouse13/QUICKSTART.md (5-min deployment)
  - Example values files (dev, production, air-gapped)
- Updated main README.md with Helm deployment instructions
- Marked old helm chart as deprecated

All component images fully configurable via values.yaml:
- postgres:15-alpine
- minio/minio:latest
- warehouse13/api:latest
- warehouse13/frontend:latest

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-10-16 17:03:25 -05:00
parent 5e958ac8c3
commit 59001222a0
26 changed files with 2412 additions and 22 deletions

View File

@@ -0,0 +1,99 @@
# 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"
# API with custom registry
api:
enabled: true
image:
repository: harbor.internal.example.com/warehouse13/api
tag: v1.0.0
pullPolicy: IfNotPresent
replicas: 2
resources:
requests:
memory: "512Mi"
cpu: "500m"
limits:
memory: "1Gi"
cpu: "1000m"
# Frontend with custom registry
frontend:
enabled: true
image:
repository: harbor.internal.example.com/warehouse13/frontend
tag: v1.0.0
pullPolicy: IfNotPresent
replicas: 2
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"
# 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"