Files
claude-wuerth-plato/memory/project_prod_ist_stand.md
T
2026-07-09 09:21:42 +02:00

4.3 KiB

name, description, metadata
name description metadata
project_prod_ist_stand Prod (ocp-01 / 1401-plato-production) — Secrets (inkl. SAP) erledigt+aktiviert; einziger Blocker noch das to_be_replaced Image-Tag
node_type type originSessionId
memory project 03691a44-b7eb-4d9d-9e7c-5d5aae84e110

Stand 2026-06-19, verifiziert direkt am Prod-Cluster (api.ocp-01.wgn.wuerth.com, Projekt 1401-plato-production).

Stand 2026-06-19 abends: Prod ist LIVE und voll erreichbar — backend 0.38.4 1/1 Running auf ocp-01, alle 3 Secrets (customer/postgres/sap) gemountet, ghcr-Pull funktioniert. Öffentliche URL https://plato.witglobal.net (Test: https://plato-test.witglobal.net auf ocp-dev01), zusätzlich zur alten fahrzeugeinrichtung-Route. OIDC-Login funktioniert.

Custom-Routes + OIDC: Routes als route-public.yaml je Overlay im gitops-Repo (commit 11ba61c), edge/Redirect, host plato.witglobal.net bzw. plato-test.witglobal.net → backend-service:3000. Redirect-URI baut die App aus req.headers.host + fixem Pfad /oauth/callback (oidc.controller.ts computeRedirectUri). Beim IdP (PingFederate, strict byte-match, kein Trailing-Slash) pro client_id registriert: https://plato.witglobal.net/oauth/callback an KONZ-PlaTo-Customer-PROD, https://plato-test.witglobal.net/oauth/callback an KONZ-PlaTo-Customer-DEV. Kein Post-Logout-Redirect nötig.

PR development → main gemergt — main spiegelt den Prod-Stand. Go-live abgeschlossen.

Reihenfolge der Blocker, die fielen: (1) Secrets gesealt+aktiviert; (2) Dockerfile-Build-Bruch crm.sqlite raus → Image 0.38.4; (3) PR-Review REVIEW_REQUIRED approved; (4) Namespace-Quota voll (totes Frontend-Orphan-Deployment fraß 1 CPU/4Gi) → Frontend-Deployment/Service/Route gelöscht (war alter Split-Ansatz, Backend serviert FE-Assets selbst) → oc rollout restart → Pod startet.

Quota-Warnung für später: default-resource-quotas = 3 CPU / 12Gi hart. backend(1)+postgres(1) = 2, lässt nur 1 Slot Surge. Sobald ein zweiter Workload dazukommt (oder Rolling Update mit maxSurge), reicht es nicht → Quota anheben (Plattform) oder maxSurge=0.

Historischer Ausgangsbefund (vor heute):

  1. Image-Tag nie ersetzt (offen). backend-/frontend-Pods ziehen wörtlich …/backend:to_be_replaced → ImagePullBackOff (Deployment 198d, 0/1). Der .deploy to production-Workflow (PR development→main, Kommentar .deploy to production) ist nie gelaufen. Das ist der gewählte Weg A, um es zu lösen — bringt echten Tag + klärt zugleich den offenen ghcr-Pull-Recht-Punkt auf Prod.

  2. Secrets — ERLEDIGT. Alle drei SealedSecrets gegen ocp-01 gesealt, Entsiegelung auf Prod verifiziert (Synced=True), in production/kustomization.yaml aktiviert + in backend.yaml per envFrom referenziert:

    • plato-customer-secrets, plato-postgres-secrets (commit 1ba047e)
    • plato-sap-secrets (commit 4601ea7): SAP MUSS auf Prod (zentral). Werte = dieselben wie dev; dev-Klartext vom dev-Cluster gelesen, gegen ocp-01 neu gesealt. SAP_URL = dev-Endpoint odatang9.wgn.wuerth.com/... (User-Ansage „dieselben Werte"). Sealing-Rezept: kubeseal --fetch-cert geht auf Prod per Default-Pfad; dev-Secret per oc --context=<dev> get secret -o json → jq auf prod-ns umschreiben → kubeseal --cert.
    • Beide gitops-Commits noch nicht gepusht (ahead 2; Push macht Marcus). Inhaltliche Werte-Korrektheit (richtige Prod-Creds?) erst sichtbar, wenn Backend hochkommt.

Sauber/fertig auf Prod: Namespace-Label argocd.argoproj.io/managed-by=issp-gitops-developers gesetzt, ArgoCD-App existiert und syncht. Plattformseite steht.

Noch offen / nicht testbar: ghcr-Pull-Berechtigung auf Prod (Pull via default-dockercfg, kein explizites imagePullSecrets) — scheitert aktuell am nicht-existenten Tag, nicht erkennbar an Auth. Zeigt sich erst mit echtem Tag. Außerdem: SAP-Secret fehlt für Prod komplett (dev hat plato-sap-secrets.sealed.yaml, prod nicht; production/backend.yaml referenziert SAP auch nicht).

Deploy-Mechanik siehe PDF ressources/GitHub CICD to OpenShift.pdf: Image nur auf development gebaut + wiederverwendet. Prod-Promotion = Merge PR development → main von Hand (das ist der manuelle Schritt); ArgoCD synct danach automatisch los (Korrektur Marcus 2026-06-23: NICHT manueller Sync). Dev-Cluster = ocp-dev01 läuft sauber (backend 0.38.1).