fix(homarr): add proper probes via Kustomize patch

Chart version 8.23.0 doesn't support probe customization via values.
Using strategic merge patch instead.

Probe configuration:
- Liveness: 60s initial delay, 30s period, 5s timeout
- Readiness: 45s initial delay, 15s period, 5s timeout

App initialization timeline:
  0-5s: DB migrations, Redis startup
  6s: WebSocket server ready
  27-30s: Icon cache populated (27k+ icons)
  30s+: Analytics cron initialized, fully operational
This commit is contained in:
Story Crater Bot
2026-07-22 10:54:14 -07:00
parent cd3abede11
commit acf8184680
3 changed files with 42 additions and 26 deletions
@@ -0,0 +1,28 @@
# Patch to add proper liveness/readiness probes to Homarr deployment
# App takes 30-45s to fully initialize (DB migrations, Redis, icon cache)
apiVersion: apps/v1
kind: Deployment
metadata:
name: homarr
namespace: dashboard
spec:
template:
spec:
containers:
- name: homarr
livenessProbe:
httpGet:
path: /api/health/live
port: 7575
initialDelaySeconds: 60
periodSeconds: 30
timeoutSeconds: 5
failureThreshold: 3
readinessProbe:
httpGet:
path: /api/health/ready
port: 7575
initialDelaySeconds: 45
periodSeconds: 15
timeoutSeconds: 5
failureThreshold: 3
+7 -24
View File
@@ -8,30 +8,13 @@ image:
replicaCount: 1
# Override default probes - chart defaults are too aggressive for startup time
probes:
liveness:
enabled: true
custom: true
spec:
httpGet:
path: /api/health/live
port: 7575
initialDelaySeconds: 60 # App needs time for migrations + icon fetch
periodSeconds: 30
timeoutSeconds: 5
failureThreshold: 3
readiness:
enabled: true
custom: true
spec:
httpGet:
path: /api/health/ready
port: 7575
initialDelaySeconds: 45 # Wait for WebSocket + analytics cron
periodSeconds: 15
timeoutSeconds: 5
failureThreshold: 3
# Disable default probes - they kill the container before it finishes startup
# Will add custom probes via Kustomize patch with proper timing
livenessProbe:
enabled: false
readinessProbe:
enabled: false
tolerations:
- key: node-role.kubernetes.io/control-plane
+7 -2
View File
@@ -3,5 +3,10 @@ kind: Kustomization
namespace: dashboard
resources:
- homarr-secrets.enc.yaml
# Homarr deployed via Helm chart (values in 60-applications.yaml multi-source Application).
# This kustomization just holds the SOPS-encrypted SECRET_ENCRYPTION_KEY.
# Patch Homarr deployment with proper probe timing
patches:
- path: deployment-probes-patch.yaml
target:
kind: Deployment
name: homarr