fix(ingress): add HTTP→HTTPS redirect IngressRoute so bare-hostname http:// stops 404ing
This commit is contained in:
@@ -7,7 +7,7 @@ TLS source resolution:
|
|||||||
- Otherwise (multi-domain tenants deploying on a domain outside their
|
- Otherwise (multi-domain tenants deploying on a domain outside their
|
||||||
wildcard zone, e.g. `app.havari.me` when wildcard is
|
wildcard zone, e.g. `app.havari.me` when wildcard is
|
||||||
`*.tenants.4th.online`), cert-manager issues a per-host
|
`*.tenants.4th.online`), cert-manager issues a per-host
|
||||||
Let's Encrypt cert via HTTP-01. The IngressRoute references that
|
Let's Encrypt cert via DNS-01. The IngressRoute references that
|
||||||
cert's Secret instead.
|
cert's Secret instead.
|
||||||
|
|
||||||
This logic lives at template render time so a single chart serves both
|
This logic lives at template render time so a single chart serves both
|
||||||
@@ -41,6 +41,42 @@ spec:
|
|||||||
- {{ .Values.instance.domain }}
|
- {{ .Values.instance.domain }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
---
|
---
|
||||||
|
# HTTP → HTTPS redirect. Browsers default a bare hostname to http://,
|
||||||
|
# but the only entrypoint serving Odoo is `websecure` — without this
|
||||||
|
# route plain-http requests fall through to Traefik's default backend
|
||||||
|
# and the user sees Traefik's "404 page not found" even though the
|
||||||
|
# instance is fully up. The Middleware lives in this same chart so a
|
||||||
|
# legacy cluster without a global redirect-to-https middleware works
|
||||||
|
# the same as a fresh one.
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: Middleware
|
||||||
|
metadata:
|
||||||
|
name: {{ include "instance.fullname" . }}-redirect-https
|
||||||
|
labels:
|
||||||
|
{{- include "instance.labels" . | nindent 4 }}
|
||||||
|
spec:
|
||||||
|
redirectScheme:
|
||||||
|
scheme: https
|
||||||
|
permanent: true
|
||||||
|
---
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: {{ include "instance.fullname" . }}-http
|
||||||
|
labels:
|
||||||
|
{{- include "instance.labels" . | nindent 4 }}
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- web
|
||||||
|
routes:
|
||||||
|
- match: Host(`{{ .Values.instance.domain }}`)
|
||||||
|
kind: Rule
|
||||||
|
middlewares:
|
||||||
|
- name: {{ include "instance.fullname" . }}-redirect-https
|
||||||
|
services:
|
||||||
|
- name: {{ include "instance.fullname" . }}-odoo
|
||||||
|
port: 8069
|
||||||
|
---
|
||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRoute
|
kind: IngressRoute
|
||||||
metadata:
|
metadata:
|
||||||
|
|||||||
Reference in New Issue
Block a user