chore: Manifeste an den laufenden Cluster angleichen
Die Manifeste in k8s/ trugen noch Platzhalter, waehrend im Cluster laengst die echten Werte stehen. Wer sie unveraendert anwendet, ueberschreibt damit funktionierende Einstellungen. - Domain: shop.example.com -> wabenhain.com, in 06-ingress.yaml (host und tls.hosts) und in 01-configmap.yaml (NEXT_PUBLIC_SITE_URL). Beide Stellen muessen uebereinstimmen; aus NEXT_PUBLIC_SITE_URL entstehen Sitemap, Canonical-Tags und jeder Link in jeder Bestellbestaetigung. - GOOGLE_PLACES_API_KEY von der ConfigMap ins Secret. Das ist ein abrechenbarer Zugangsschluessel, und eine ConfigMap ist unverschluesselt und in der Cluster-Oberflaeche im Klartext lesbar. Die zugehoerige GOOGLE_PLACE_ID ist oeffentlich und bleibt in der ConfigMap. Der Cluster handhabt das bereits so. - APICORE_API_URL vom Secret in die ConfigMap: eine Adresse ist kein Geheimnis. Auch das entspricht dem Cluster. - VIDEO_TRANSCODE_THREADS in die ConfigMap aufgenommen, damit die Threadbegrenzung des Video-Transcodes (siehe vorheriger Commit) auch ueber das Deployment einstellbar ist. Gegenprobe: die Vereinigung aller Schluessel aus ConfigMap und Secret deckt jetzt genau die Umgebungsvariablen ab, die der Code ueber process.env liest - keine fehlt. Die beiden Ueberhaenge sind beabsichtigt: DB_PASSWORD liest der Postgres-StatefulSet, STRIPE_PUBLISHABLE_KEY haelt die Konfiguration vollstaendig fuer eine kuenftige clientseitige Stripe-Einbindung. Der Hinweistext der Go-Live-Pruefung nannte shop.example.com als ausgelieferte Vorgabe; das stimmt nicht mehr. Die Pruefung selbst ist unveraendert. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
1 parent
b1384c3695
commit
990a16e654
5 files changed
+36
-11
No files matched your search
+18
-2
@@ -13,14 +13,30 @@ data:
|
||||
DATABASE_PROVIDER: "postgresql"
|
||||
NODE_ENV: "production"
|
||||
# Oeffentliche URL des Shops (fuer absolute Links in E-Mails/Sitemaps/CSP).
|
||||
NEXT_PUBLIC_SITE_URL: "https://shop.example.com"
|
||||
# Muss zum "host" in 06-ingress.yaml passen, sonst zeigen Sitemap,
|
||||
# Canonical-Tags und jeder Link in jeder Bestellbestaetigung ins Leere.
|
||||
NEXT_PUBLIC_SITE_URL: "https://wabenhain.com"
|
||||
SMTP_PORT: "587"
|
||||
SMTP_FROM: "Wabenhain <[email protected]>"
|
||||
# Optional, siehe README-Abschnitte "Google-Rezensionen"/"CAPTCHA" — leer
|
||||
# lassen, wenn nicht genutzt, die App faellt automatisch zurueck.
|
||||
GOOGLE_PLACES_API_KEY: ""
|
||||
#
|
||||
# Nur die Place-ID steht hier: sie ist oeffentlich, sie steckt in jeder
|
||||
# Google-Maps-Adresse des Eintrags. Der zugehoerige GOOGLE_PLACES_API_KEY
|
||||
# ist dagegen ein abrechenbarer Zugangsschluessel und liegt im Secret —
|
||||
# eine ConfigMap ist unverschluesselt und in der Cluster-Oberflaeche im
|
||||
# Klartext lesbar.
|
||||
GOOGLE_PLACE_ID: ""
|
||||
NEXT_PUBLIC_TURNSTILE_SITE_KEY: ""
|
||||
# Adresse der ApiCore-API fuer den Stammdaten-Sync (Ernten, Produkte,
|
||||
# Chargen — siehe src/lib/apicore-client.ts). Nur die URL; die Zugangsdaten
|
||||
# des Sync-Kontos liegen im Secret.
|
||||
APICORE_API_URL: ""
|
||||
# Threads fuer das Umrechnen hochgeladener Videos. Nicht gesetzt bedeutet 2.
|
||||
# NICHT ohne Not erhoehen: ffmpeg teilt sich das Speicherlimit dieses Pods
|
||||
# mit dem Node-Prozess, und jeder zusaetzliche Thread haelt eigene
|
||||
# Bildpuffer (bei 4K rund 12 MB je Bild). Siehe src/lib/video-transcode.ts.
|
||||
VIDEO_TRANSCODE_THREADS: "2"
|
||||
# "sandbox" bis DHL-Versandmarken getestet sind, danach "production".
|
||||
DHL_ENVIRONMENT: "sandbox"
|
||||
# Verzeichnis fuer hochgeladene Bilder (Inhalte-/Produkt-/Erntenfotos,
|
||||
|
||||
@@ -57,12 +57,19 @@ stringData:
|
||||
DHL_ACCOUNT_NUMBER: ""
|
||||
# Entra-ID-SSO ("Mit Microsoft anmelden"), siehe .env.example fuer die
|
||||
# Einrichtung in Azure. ENTRA_REDIRECT_URI muss auf die echte, oeffentliche
|
||||
# Domain zeigen (z.B. https://shop.example.com/api/auth/entra/callback).
|
||||
# Domain zeigen: https://wabenhain.com/api/auth/entra/callback
|
||||
ENTRA_TENANT_ID: ""
|
||||
ENTRA_CLIENT_ID: ""
|
||||
ENTRA_CLIENT_SECRET: ""
|
||||
ENTRA_REDIRECT_URI: ""
|
||||
# ApiCore-Ernten-Sync (Admin -> Ernten -> Sync), siehe .env.example.
|
||||
APICORE_API_URL: ""
|
||||
# Abrechenbarer Zugangsschluessel fuer die Google-Places-API (echte
|
||||
# Google-Rezensionen auf der Startseite). Gehoert hierher und NICHT in
|
||||
# 01-configmap.yaml: eine ConfigMap ist unverschluesselt und in der
|
||||
# Cluster-Oberflaeche im Klartext lesbar. Die zugehoerige, oeffentliche
|
||||
# GOOGLE_PLACE_ID steht dort.
|
||||
GOOGLE_PLACES_API_KEY: ""
|
||||
# Zugangsdaten des ApiCore-Sync-Kontos (Admin -> Ernten bzw. Produkte ->
|
||||
# "ApiCore-Synchronisierung"), siehe .env.example. Die zugehoerige Adresse
|
||||
# APICORE_API_URL ist nicht geheim und steht in 01-configmap.yaml.
|
||||
APICORE_SYNC_EMAIL: ""
|
||||
APICORE_SYNC_PASSWORD: ""
|
||||
+2
-2
@@ -80,10 +80,10 @@ spec:
|
||||
ingressClassName: traefik
|
||||
tls:
|
||||
- hosts:
|
||||
- shop.example.com
|
||||
- wabenhain.com
|
||||
secretName: wabenhain-tls
|
||||
rules:
|
||||
- host: shop.example.com
|
||||
- host: wabenhain.com
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
|
||||
+5
-3
@@ -50,9 +50,11 @@ anwendbar. Nummerierung = empfohlene Reihenfolge.
|
||||
|
||||
6. `image:` in `05-app-deployment.yaml` zeigt bereits auf
|
||||
`git.encry.de/nick.rosenloecher/wabenhain` — nur noch den Tag pruefen
|
||||
(`:latest` passt fuer den jeweils neuesten `main`-Build). In
|
||||
`06-ingress.yaml` `shop.example.com` durch die echte Domain ersetzen
|
||||
(zweimal: `host:` und `tls.hosts`).
|
||||
(`:latest` passt fuer den jeweils neuesten `main`-Build). Die Domain steht
|
||||
in `06-ingress.yaml` (`host:` und `tls.hosts`) und in `01-configmap.yaml`
|
||||
(`NEXT_PUBLIC_SITE_URL`) bereits als `wabenhain.com` — beide Stellen
|
||||
muessen uebereinstimmen, sonst zeigen Sitemap, Canonical-Tags und die
|
||||
Links in allen Bestellbestaetigungen woandershin.
|
||||
|
||||
## Deployment
|
||||
|
||||
|
||||
Reference in new issue
Block a user