diff --git a/MASTERPLAN.md b/MASTERPLAN.md index 057bf03..828e0f3 100644 --- a/MASTERPLAN.md +++ b/MASTERPLAN.md @@ -1,7 +1,7 @@ # VAUCO MASTERPLAN — Chris Christiansen **Sist oppdatert: 2026-05-26 CEST** -**Status: ✅ FASE A KOMPLETT | ML-1 live | Røyktest 10/10 | B-fasen neste** +**Status: ✅ FASE A KOMPLETT | ✅ FASE B (B1-B5) KOMPLETT | ML-1 live | Røyktest 10/10 | Fase C neste** --- @@ -37,6 +37,22 @@ Du er første kunde. Når det virker for deg → selg det til andre. --- +## DNS / DOMENE-ARKITEKTUR + +> **Arkitekturavgjørelse — 2026-05-26** + +| Domene | Type | Teknologi | Fase | +|---|---|---|---| +| `opax.vauco.no` | Intern cockpit (kun Chris) | CNAME → Cloud Run (gratis) | B1 nå | +| `kunde1.vauco.no` / kundedomener | Kunde-instanser | LB + IAP (Terraform) | Fase C | + +**Begrunnelse:** +- `opax.vauco.no` er et internt arbeidsverktøy for én bruker — Load Balancer ($18-20/mnd) er unødvendig overhead. +- Kundeinstanser provisjoneres via `vauco-bootstrap` Terraform-modul i Fase C. LB + IAP bakes inn i modulen én gang og kjøres automatisk per kunde med `terraform apply -var="customer_id=X"`. +- Terraform-modulen (Fase C) skal inkludere: Cloud Run, Cloud Build, IAP, LB, budsjett, SA, Dialogflow CX, ML state store. + +--- + ## CLOUD SHELL QUICK-START (kopi-klipp) > Bruk Cloud Shell: https://shell.cloud.google.com @@ -155,15 +171,23 @@ bash infrastructure/03-teardown.sh --- -## FASE B — Sikring og CI/CD +## FASE B — Sikring og CI/CD ✅ KOMPLETT ``` -[ ] B1 — bash infrastructure/02-deploy.sh (IAP på opax.vauco.no) -[ ] B2 — Opprett GitHub PAT og legg i Secret Manager -[ ] B3 — bash infrastructure/06-cicd-setup.sh -[ ] B4 — Legg til webhook URL i Secret Manager -[ ] B5 — bash infrastructure/10-cost-guard.sh - Auto-teardown Cloud Function + GCS sink for ML-telemetri +[x] B1 — Cloud Run deploy live (osvauco-agent-00065-z7t, us-central1) + IAP opax.vauco.no: CNAME-metode (se B1-IAP nedenfor) +[x] B2 — GitHub PAT i Secret Manager (github-pat) +[x] B3 — Cloud Build 2nd gen pipeline + Connection: osvauco-github-conn + Trigger: osvauco-agent-deploy (ID: 2fdd789f-a4dc-4f4a-8297-5e91674d2178) + Push til main → auto build + deploy +[x] B4 — Webhook (løst av 2nd gen GitHub App — ingen manuell webhook nødvendig) +[x] B5 — Cost guard + GCS ML-telemetri + Budget: osvauco-monthly-guard (500 NOK/mnd, 50/90/100% alerts) + Bucket: gs://osvauco-ml-telemetry (90-dagers lifecycle) + Sink: osvauco-ml-sink → Cloud Run logger → GCS +[ ] B1-IAP — opax.vauco.no via CNAME → Cloud Run domain mapping + Status: NESTE STEG [ ] B6 — Eksporter Dialogflow CX agent til versjonskontroll ``` @@ -173,6 +197,8 @@ bash infrastructure/03-teardown.sh ``` [ ] C1 — Pakk vauco-bootstrap som Terraform-modul + Inkluder per kunde: Cloud Run, Cloud Build, IAP (LB), budsjett, SA, Dialogflow CX, ML state store + Kjøring: terraform apply -var="customer_id=X" [ ] C2 — Pakk vauco-os som kundeflate [ ] C3 — Opprett billing@vauco.no som Google Group [ ] C4 — Første kunde: Medioteq @@ -216,7 +242,8 @@ bash infrastructure/03-teardown.sh | OQ-10 | GCP billing: Creator på domenet | **LØST** | | OQ-11 | Dialogflow CX Data Store norsk indeksering | Teste nb-NO i DX2 | | OQ-12 | gemini-2.0-flash/gemini-2.0-flash-001 ikke tilgjengelig nye prosjekter | **LØST** — gemini-2.5-flash/pro + LOCATION=global | -| OQ-13 | ML-telemetri /tmp/ flyktig i Cloud Run | B5: GCS sink | +| OQ-13 | ML-telemetri /tmp/ flyktig i Cloud Run | **LØST** — B5: GCS sink | +| OQ-14 | LB vs CNAME for domene-routing | **LØST** — CNAME for opax (intern), LB i Terraform for kunder (Fase C) | --- @@ -278,7 +305,7 @@ Legacy `A` / `A+` normaliseres automatisk til `light` / `heavy`. |---|---| | Fase C: Medioteq | `vauco-bootstrap` → Terraform-modul | | Per kunde | `terraform apply -var="customer_id=X"` | -| Ressurser | Cloud Run, Cloud Build, IAP, budsjett, SA, Dialogflow CX, ML state store | +| Ressurser | Cloud Run, Cloud Build, IAP (LB), budsjett, SA, Dialogflow CX, ML state store | | State-backend | GCS (`TF_STATE_BUCKET`) | | Fase D | Terraform Cloud |