OSVauco/MASTERPLAN.md

212 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# VAUCO MASTERPLAN — Chris Christiansen
**Sist oppdatert: 2026-05-23 CEST**
**Status: Repo ferdig — GCP gjenstår (A4A8 neste)**
---
## KONTEKST — Hva vi bygger
Ett AI-drevet operativsystem (OPAX) som kjører på Google Cloud.
Du er første kunde. Når det virker for deg → selg det til andre.
**Repo-oversikt:**
| Repo | Hva det er |
|---|---|
| `OSVauco` | Regler, GCP-scripts, agenter, docs — KJERNEN |
| `vauco-gemini-tui-bridge` | Din TUI-cockpit |
| `vauco-os` | Det kundene bruker |
| `vauco-bootstrap` | Onboarding av nye kunder (→ Terraform-modul i Fase C) |
| `deep-dream` | Strategisk visjon — aldri deploy herfra |
---
## CLOUD SHELL QUICK-START (kopi-klipp)
> Bruk Cloud Shell: https://shell.cloud.google.com
```bash
# Steg 1: Klon og sett opp miljø
gcloud config set project propane-will-491900-m5
git clone https://github.com/chrischristiansen-glitch/OSVauco.git ~/OSVauco
cd ~/OSVauco
# Steg 2: Kopier og rediger .env
cp .env.example .env
nano .env
# Fyll ut: BILLING_ACCOUNT_ID, ALERT_EMAIL, GITHUB_APP_INSTALLATION_ID
# Alle andre verdier er ferdig-forhåndsutfylt
# Steg 3: Installer Python-avhengigheter
pip install google-adk google-cloud-aiplatform>=1.111.0 --quiet
# Steg 4: Kjør i rekkefølge (kilde .env først)
source .env
bash infrastructure/00-authcheck.sh
bash infrastructure/01-setupenv.sh
bash infrastructure/07-rag-setup.sh
# *** Kopier RAG_CORPUS_NAME fra output inn i .env ***
nano .env # Legg til: export RAG_CORPUS_NAME="..."
source .env
bash infrastructure/08-memorybank-setup.sh
# *** Kopier MEMORY_ENGINE_NAME fra output inn i .env ***
nano .env # Legg til: export MEMORY_ENGINE_NAME="..."
source .env
bash infrastructure/05-cloudrun-deploy.sh
bash infrastructure/04-observability-setup.sh
# Om kvelden (OBLIGATORISK — unngå 24/7-fakturering):
bash infrastructure/03-teardown.sh
```
---
## FASE A — Ferdigstill kjernen (GCP oppe)
**Mål: Agenten din er live på Google Cloud | Tid: Ca. 2 timer**
```
[ ] A1 — cp .env.example .env og fyll inn verdier
PROJECT_ID=propane-will-491900-m5
REGION=us-central1
BILLING_ACCOUNT_ID=0171F6-057E6B-A260BA
ALERT_EMAIL=chris.christiansen@vauco.no
ORCHESTRATOR_MODEL=gemini-2.0-flash
SUBAGENT_MODEL=gemini-2.0-flash
[ ] A2 — bash infrastructure/00-authcheck.sh
[ ] A3 — bash infrastructure/01-setupenv.sh
[ ] A4 — bash infrastructure/07-rag-setup.sh
OQ-02: Script faller automatisk tilbake til us-east1 om nødvendig
ACTION: Kopier RAG_CORPUS_NAME til .env
[ ] A5 — bash infrastructure/08-memorybank-setup.sh
OQ-01: Python SDK only (auto-installert av script)
ACTION: Kopier MEMORY_ENGINE_NAME til .env
[ ] A6 — bash infrastructure/05-cloudrun-deploy.sh
[ ] A7 — bash infrastructure/04-observability-setup.sh
[ ] A8 — bash infrastructure/03-teardown.sh (kjør hver kveld)
```
---
## FASE B — Sikring og CI/CD
**Mål: Begrenset tilgang og aktiv CI/CD | Tid: 1 time**
```
[ ] B1 — bash infrastructure/02-deploy.sh (IAP på opax.vauco.no)
[ ] B2 — Opprett GitHub PAT og legg i Secret Manager:
gcloud secrets create github-token --data-file=<(echo -n "ghp_TOKEN")
Finn GITHUB_APP_INSTALLATION_ID:
https://github.com/settings/installations → Cloud Build-appen → ID i URL
Fyll inn GITHUB_APP_INSTALLATION_ID i .env
[ ] B3 — bash infrastructure/06-cicd-setup.sh
OQ-04: LØST — Cloud Build 2nd gen, ingen manuell OAuth i Console
Bruker: gcloud builds connections create github (programmatisk)
```
---
## FASE C — Første salgsmodul
**Mål: Ny kunde onboardet på 30 minutter | Tid: Ukentlig arbeid**
```
[ ] C1 — Pakk `vauco-bootstrap` som Terraform-modul for kunde-onboarding
Ressurser per kunde: Cloud Run, Artifact Registry, Cloud Build 2nd gen,
IAP, budsjett-alert, Service Account
Terraform-variabler: customer_id, customer_project_id, customer_region
State-backend: GCS bucket (TF_STATE_BUCKET i .env)
[ ] C2 — Pakk `vauco-os` som kundeflate
[ ] C3 — Første kunde: Medioteq
Region: europe-north1, separat GCP-prosjekt
Kjør: terraform apply -var="customer_id=medioteq"
```
---
## INFRASTRUKTUR
| Script | Rolle | Status |
|--------|-------|--------|
| `00-authcheck.sh` | Verifiser gcloud-innlogging | Klar |
| `01-setupenv.sh` | Aktiver APIs, SA, IAM, budsjett | Klar |
| `02-deploy.sh` | IAP-deploy på eget domene | Klar |
| `03-teardown.sh` | Riv ned Cloud Run | Klar |
| `04-observability-setup.sh` | Monitoring + alerting | Klar |
| `05-cloudrun-deploy.sh` | ADK-agent til Cloud Run | Klar |
| `06-cicd-setup.sh` | GitHub → Cloud Build **2nd gen** | **Oppdatert** |
| `07-rag-setup.sh` | RAG Engine corpus + fallback | Oppdatert |
| `08-memorybank-setup.sh` | Memory Bank + auto-install | Oppdatert |
| `09-cost-check.sh` | Kostnadsoversikt + Artifact Registry | Klar |
---
## BEKREFTET GA-API
| API | Status |
|-----|--------|
| `google.adk.Agent` (ikke LlmAgent) | Bekreftet GA-API |
| `load_memory_tool` | Bekreftet fra adk-python samples |
| Cloud Build 2nd gen (`cloudbuildv2`) | Bekreftet GA — programmatisk GitHub-kobling |
| CMEK ikke for RAG Engine | Ikke støttet (OQ-03) |
| CI/CD `--no-traffic` | Manuell trafikkbytte — HITL |
| Idempotente scripts | Trygt å kjøre flere ganger |
| `03-teardown.sh` hver kveld | Agent Runtimes koster 24/7 |
---
## DRIFTSKOSTNADER
| Scenario | Kostnad/mnd |
|---|---|
| Bare deg (dev, teardown daglig) | ~$25-75 |
| 1 betalende kunde (lett prod) | ~$115-280 |
| Medioteq-type (klinisk, compliance) | ~$220-350 |
Breakeven: 1 kunde til $300-500/mnd dekker alle kostnader.
Ikke bygg kost-analyse-system nå — spør agenten når GCP er oppe.
---
## KJENTE HULL
| ID | Hva | Workaround / Status |
|---|---|---|
| OQ-01 | Memory Bank — ingen gcloud CLI | Python SDK only |
| OQ-02 | RAG Engine regional availability | Auto-fallback til us-east1 |
| OQ-03 | CMEK ikke for RAG Engine | VPC-SC only |
| OQ-04 | Cloud Build GitHub OAuth | **LØST** — 2nd gen programmatisk connection |
| OQ-05 | gcloud alpha monitoring ustabil | Fallback til true |
| OQ-06 | Memory Bank auto-discovery | Eksplisitt env var |
| OQ-07 | Monitoring email flag-format | Teste i dev |
| OQ-08 | VPC connector e2-micro regional | Default us-central1 |
---
## TERRAFORM-VEIKART (Fase C)
Terraform introduseres **ikke** for nåværende infra — gcloud-scripts er tilstrekkelig
når vi opererer med ett GCP-prosjekt. Terraform blir relevant ved kunde-onboarding:
| Når | Hva |
|---|---|
| Fase C: Medioteq | `vauco-bootstrap` → Terraform-modul |
| Per kunde | `terraform apply -var="customer_id=X"` oppretter isolert GCP-miljø |
| Ressurser per modul | Cloud Run, Cloud Build 2nd gen connection, IAP, budsjett, SA |
| State-backend | GCS bucket (`TF_STATE_BUCKET`) — én bucket, én state-fil per kunde |
| Fase D | Terraform Cloud for sentralisert state og CI/CD på tvers av kunder |
Terraform-ressurser som er aktuelle:
- `google_cloudbuildv2_connection` — programmatisk GitHub-kobling per kunde
- `google_cloudbuildv2_repository` — repo-link
- `google_cloudbuild_trigger` — push-til-main trigger
- `google_billing_budget` — budsjett-alert per kunde
- `google_cloud_run_v2_service` — Cloud Run-tjeneste
---
*OSVauco-NMTMD-GCOS | propane-will-491900-m5 | us-central1*
*GitHub: chrischristiansen-glitch/OSVauco*