diff --git a/infrastructure/TRUTH.md b/infrastructure/TRUTH.md new file mode 100644 index 0000000..ab59e6f --- /dev/null +++ b/infrastructure/TRUTH.md @@ -0,0 +1,147 @@ +# TRUTH.md — GCP Infrastruktur Sannhetsfil +> **Sist oppdatert:** 2026-06-29 +> **Prosjekt:** propane-will-491900-m5 +> **DENNE FILEN ER FASIT** — oppdater alltid her når noe endres + +--- + +## VM-instanser + +| Navn | Sone | Maskintype | GPU | Ekstern IP | Status | +|---|---|---|---|---|---| +| `osvauco-dev-vm` | us-central1-b | e2-standard-2 | Ingen | 34.59.131.162 | RUNNING | +| `emma-gpu-vm` | europe-west4-a | g2-standard-8 | NVIDIA L4 (24GB VRAM) | 34.13.238.133 | RUNNING | + +### Roller +- **osvauco-dev-vm** → lett inngangsport, MCP, Jason TUI, gcloud-orkestrering +- **emma-gpu-vm** → GPU-inferens (Gemma 4 27B int4), Gitea, databaser, lagring + +--- + +## Cloud Run-tjenester + +| Tjeneste | Region | URL | Status | +|---|---|---|---| +| `opax-mcp` | us-central1 | https://opax-mcp-357036551735.us-central1.run.app | ✅ OK | +| `opax` | europe-west1 | https://opax-357036551735.europe-west1.run.app | ✅ OK | +| `osvauco-agent` | europe-west1 | https://osvauco-agent-357036551735.europe-west1.run.app | ✅ OK | +| `osvauco-agent` | us-central1 | https://osvauco-agent-357036551735.us-central1.run.app | ⚠️ deploying | +| `vauco-tui-bridge` | europe-west1 | https://vauco-tui-bridge-357036551735.europe-west1.run.app | ✅ OK | +| `billing-auto-teardown` | us-central1 | https://billing-auto-teardown-357036551735.us-central1.run.app | ✅ OK | + +--- + +## Load Balancer — Forwarding Rules (IP-adresser) + +| Navn | IP | Domene | +|---|---|---| +| osvauco-agent-forwarding-rule | 34.98.77.173 | opax.vauco.no (IAP-beskyttet) | +| vauco-os-http/https | 34.144.224.45 | vauco.no / os.vauco.no | +| vauco-site-http/https | 34.13.124.217 | vauco.no (statisk site) | +| vauco-tui-bridge-forwarding-rule | 34.117.108.44 | tui-bridge | + +--- + +## Backend Services + +| Navn | NEG | Status | +|---|---|---| +| `gitea-backend` | ❌ ingen backend koblet ennå | 🔧 UNDER OPPSETT | +| `osvauco-agent-iap-backend` | us-central1/neg-osvauco-agent | ✅ OK | +| `vauco-os-backend` | us-central1/vauco-os-neg | ✅ OK | +| `vauco-tui-bridge-backend` | europe-west1/vauco-tui-bridge-neg | ✅ OK | + +### gitea-backend oppsett (pågår) +- NEG `gitea-neg` opprettet (INTERNET_IP_PORT, global) +- Endpoint lagt til: `34.59.131.162:3000` ← **NB: skal oppdateres til emma-gpu-vm 34.13.238.133:3000** +- `add-backend` feiler med "not ready" — GCP-timing bug, prøves igjen + +--- + +## URL Maps + +| URL Map | Ruter til | +|---|---| +| osvauco-agent-url-map | osvauco-agent-iap-backend | +| vauco-os-urlmap | vauco-os-backend | +| vauco-site-urlmap | Cloud Storage bucket (vauco-site-backend) | +| vauco-tui-bridge-url-map | vauco-tui-bridge-backend | +| vauco-site-redirect-urlmap | (redirect) | + +--- + +## Secret Manager (31 secrets) + +Nøkkelsecreter: +- `GEMINI_API_KEY` — Gemini 2.5 Pro API (fallback for Emma) +- `GITHUB_PAT` / `github-token` — GitHub tilgang (midlertidig, erstattes av Gitea) +- `gitea-api-token` / `gitea-token` — Gitea tilgang +- `mcp-server-key` — opax-mcp autentisering +- `OAUTH_CLIENT_ID` / `OAUTH_CLIENT_SECRET` — IAP OAuth +- `CHAT_WEBHOOK_URL` / `webhook-url` — webhooks + +--- + +## Cloud Storage (12 buckets) + +| Bucket | Formål | +|---|---| +| `osvauco-ml-telemetry` | Agent telemetri/logging | +| `osvauco-rag-staging` | RAG-dokumenter | +| `vauco-site-public` | Statisk nettside | +| `propane-will-491900-m5_cloudbuild` | Cloud Build artefakter | +| `run-sources-*` / `gcf-v2-*` | Cloud Run/Functions | + +--- + +## IAM — Servicekontoer + +| Navn | Email | Brukes av | +|---|---|---| +| jason-vauger | jason-vauger@propane-will-491900-m5.iam.gserviceaccount.com | opax-mcp | +| osvauco-agent-sa | osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com | osvauco-agent | +| vauco-os-core | vauco-os-core@propane-will-491900-m5.iam.gserviceaccount.com | vauco-os | +| vertex-agent-sa | vertex-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com | OSVauco Agent Runner | +| vps-ai | vps-ai@propane-will-491900-m5.iam.gserviceaccount.com | VPS-AI | + +--- + +## Brannmurregler (relevante) + +- `allow-gitea-internal` — port 3000 fra GCP LB +- `allow-ollama` — port 11434 fra spesifikk IP +- `default-allow-ssh` — port 22 fra 0.0.0.0/0 +- `default-allow-http/https` — port 80/443 + +--- + +## Agenter + +| Agent | Status | Modell | Plattform | +|---|---|---|---| +| **Jason Vauger** | ✅ LIVE | Gemini 2.5 Pro (API) | Cloud Run + TUI på dev-vm | +| **Emma Vauger** | 🔮 IKKE LIVE | Gemma 4 27B int4 | emma-gpu-vm (under oppsett) | +| Gemini 2.5 Pro API | ✅ tilgjengelig | — | Fallback ved kode-spørsmål | + +--- + +## Viktige regler / lærdommer + +- ❌ **Aldri** `curl` mot `169.254.169.254` metadata-server — henger alltid +- ✅ Bruk `gcloud compute instances describe` for å hente VM-info +- ⚠️ `INTERNET_IP_PORT NEG` + `add-backend` har GCP-timing bug — vent 2-3 min eller prøv via Console +- 🎯 GitHub er **midlertidig** — alt skal over på Gitea på emma-gpu-vm +- 📦 emma-gpu-vm er hoved-VM — Gitea, Emma, databaser, lagring hører hjemme der + +--- + +## TODO / Neste steg + +- [ ] Flytt Gitea til emma-gpu-vm (port 3000) +- [ ] Oppdater gitea-neg endpoint til `34.13.238.133:3000` +- [ ] Fullfør `gitea-backend add-backend` (gitea.vauco.no) +- [ ] Installer Gemma 4 27B int4 på emma-gpu-vm (Ollama) +- [ ] Koble Emma til Gitea som sannhetskilde +- [ ] Fiks `dev-startup.sh` — henger på oppstart +- [ ] Speil OSVauco-repo fra GitHub til Gitea +- [ ] Fase ut GitHub når Gitea er stabil