feat(k8s): Ingress, Zertifikat und Netzwerk nach Muster Wabenhain/ApiCore

- Ingress: HTTP->HTTPS-Middleware redirect-to-https wieder am Ingress
  (wie Wabenhain), Service-Port als Nummer, cert-manager letsencrypt-prod.
- NetworkPolicy: Traefik ueber das Pod-Label (traefik/rke2-traefik) in
  jedem Namespace erkannt statt fester Namespace "traefik" - verhindert,
  dass die Seite unerreichbar wird, wenn Traefik z. B. in kube-system laeuft.
- README: Voraussetzungen pruefen und Deployment Schritt fuer Schritt
  (kubectl wait auf Postgres) wie bei Wabenhain.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
Nick SzaunigandClaude Opus 5.5 committed 2026-09-28 06:33:22 +02:00
1 parent b9d6f089c9
commit cddc36bee8
2 files changed
+24 -6

No files matched your search

+15 -2
View File
@@ -1,4 +1,5 @@
# ANPASSEN: Domain (2x, auch APP_URL in 01-config.yaml), ClusterIssuer. # Ingress fuer Traefik + cert-manager (gleiches Muster wie Wabenhain).
# ANPASSEN: Domain (2x, auch APP_URL in 01-config.yaml).
apiVersion: networking.k8s.io/v1 apiVersion: networking.k8s.io/v1
kind: Ingress kind: Ingress
metadata: metadata:
@@ -6,6 +7,8 @@ metadata:
namespace: artista namespace: artista
annotations: annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod cert-manager.io/cluster-issuer: letsencrypt-prod
# HTTP -> HTTPS ueber die Middleware unten (Praefix = Namespace).
traefik.ingress.kubernetes.io/router.middlewares: artista-redirect-to-https@kubernetescrd
spec: spec:
ingressClassName: traefik ingressClassName: traefik
tls: tls:
@@ -21,4 +24,14 @@ spec:
service: service:
name: artista-modelcamp-app name: artista-modelcamp-app
port: port:
name: http number: 80
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: redirect-to-https
namespace: artista
spec:
redirectScheme:
scheme: https
permanent: true
+9 -4
View File
@@ -1,5 +1,7 @@
# Datenbank nur fuer App und Worker erreichbar; App nur ueber Traefik. # Datenbank nur fuer App und Worker erreichbar; App nur ueber Traefik.
# ANPASSEN: Namespace deines Traefik ("kubectl get pods -A | grep traefik"). # Traefik wird am Pod-Label erkannt, egal in welchem Namespace es laeuft
# (eigene Installation "traefik" oder RKE2-Paket "rke2-traefik").
# Pruefen: kubectl get pods -A -l 'app.kubernetes.io/name in (traefik,rke2-traefik)'
apiVersion: networking.k8s.io/v1 apiVersion: networking.k8s.io/v1
kind: NetworkPolicy kind: NetworkPolicy
metadata: metadata:
@@ -28,8 +30,11 @@ spec:
app: artista-modelcamp-app app: artista-modelcamp-app
ingress: ingress:
- from: - from:
- namespaceSelector: - namespaceSelector: {}
matchLabels: podSelector:
kubernetes.io/metadata.name: traefik matchExpressions:
- key: app.kubernetes.io/name
operator: In
values: [traefik, rke2-traefik]
ports: ports:
- port: 3000 - port: 3000