Files
Artista-Filmcamp/k8s/06-ingress.yaml
T
Nick SzaunigandClaude Opus 5.5 28663cda7a
Docker-Images bauen und veroeffentlichen / build-and-push (push) Successful in 1m53s
fix(k8s): ACME-HTTP01-Challenge im eigenen Ingress (edit-in-place)
cert-manager legte die Challenge in einem separaten Ingress ohne TLS an.
Die HTTP->HTTPS-Umleitung schickte die Pruefung auf HTTPS, wo nur die App
antwortete ("expected <token> but got <!doctype html>"), das Zertifikat
wurde nie ausgestellt und Traefik zeigte sein Default-Zertifikat.
Mit http01-edit-in-place landet der Challenge-Pfad im App-Ingress und
gilt damit auch unter HTTPS.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-29 06:18:39 +02:00

43 lines
1.3 KiB
YAML

# Ingress fuer Traefik + cert-manager (gleiches Muster wie Wabenhain).
# ANPASSEN: Domain (2x, auch APP_URL in 01-configmap.yaml).
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: artista-modelcamp
namespace: artista
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
# Challenge-Pfad direkt in DIESEN Ingress eintragen statt in einen
# eigenen ohne TLS: sonst leitet die HTTP->HTTPS-Umleitung die
# Let's-Encrypt-Pruefung auf HTTPS um, wo nur die App antwortet
# ("expected <token> but got <!doctype html>").
acme.cert-manager.io/http01-edit-in-place: "true"
# HTTP -> HTTPS ueber die Middleware unten (Praefix = Namespace).
traefik.ingress.kubernetes.io/router.middlewares: artista-redirect-to-https@kubernetescrd
spec:
ingressClassName: traefik
tls:
- hosts: [modelcamp.example.org]
secretName: artista-modelcamp-tls
rules:
- host: modelcamp.example.org
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: artista-modelcamp-app
port:
number: 80
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: redirect-to-https
namespace: artista
spec:
redirectScheme:
scheme: https
permanent: true