From aca1e67fd960b6e67e14304969df417f046a5197 Mon Sep 17 00:00:00 2001 From: OdooSky v3 Date: Tue, 5 May 2026 12:13:16 +0200 Subject: [PATCH] feat(instance): IngressRoute uses tenants-default-retry + tighter readiness probe --- templates/ingressroute.yaml | 7 +++++++ templates/odoo-deployment.yaml | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/templates/ingressroute.yaml b/templates/ingressroute.yaml index f4f2524..567ac78 100644 --- a/templates/ingressroute.yaml +++ b/templates/ingressroute.yaml @@ -58,6 +58,13 @@ spec: routes: - match: Host(`{{ .Values.instance.domain }}`) kind: Rule + # Cluster-level middleware (defined in cluster-platform-v3, + # same `tenants` namespace as this IngressRoute). Adds a + # bounded retry budget so transient Pod-not-ready windows + # during an Odoo restart don't surface as Traefik's default + # 404 to the customer. TLS-related fields below are unchanged. + middlewares: + - name: tenants-default-retry services: - name: {{ include "instance.fullname" . }}-odoo port: 8069 diff --git a/templates/odoo-deployment.yaml b/templates/odoo-deployment.yaml index bbcd065..d653d18 100644 --- a/templates/odoo-deployment.yaml +++ b/templates/odoo-deployment.yaml @@ -250,13 +250,19 @@ spec: # /web/login is the most stable health endpoint across Odoo # 16/17/18/19 — /web/health is 17+. Use login HTTP 200 as # readiness signal. + # + # 5s period so K8s catches an Odoo restart (addon install + # via the Apps menu can trigger one) within a single probe + # cycle and pulls the Pod from Endpoints — paired with the + # Traefik retry middleware that swallows the brief gap. readinessProbe: httpGet: path: /web/login port: 8069 initialDelaySeconds: 30 - periodSeconds: 10 + periodSeconds: 5 timeoutSeconds: 5 + failureThreshold: 2 livenessProbe: tcpSocket: port: 8069