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:
1 parent
b9d6f089c9
commit
cddc36bee8
2 files changed
+24
-6
No files matched your search
+15
-2
@@ -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
|
||||||
@@ -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
|
||||||
Reference in new issue
Block a user