# DNS & INFRASTRUKTUR — Vauco OS **Versjon:** 2026-06-10 | **Eier:** Chris Christiansen | **Status:** Autoritativ --- ## KRITISK: Slik er infrastrukturen bygget ### Load Balancer — Hoved-IP ``` 34.98.77.173 ← ALLE subdomener som skal ha IAP må peke hit (A-record) ``` ### Forwarding rules | Navn | IP | Target proxy | |------|-----|-------------| | `osvauco-agent-forwarding-rule` | `34.98.77.173` | `osvauco-agent-https-proxy` | | `vauco-os-https` | `34.144.224.45` | `vauco-os-https-proxy` | | `vauco-tui-bridge-forwarding-rule` | `34.117.108.44` | `vauco-tui-bridge-https-proxy` | ### URL maps | Navn | Backend | IAP | |------|---------|-----| | `osvauco-agent-url-map` | `osvauco-agent-iap-backend` | ✅ JA | | `vauco-os-urlmap` | `vauco-os-backend` | ❌ NEI | | `vauco-tui-bridge-url-map` | `vauco-tui-bridge-backend` | ❌ NEI | ### SSL-sertifikater på osvauco-agent-https-proxy | Sertifikat | Domene | Status | |-----------|--------|--------| | `osvauco-agent-ssl-cert` | `costguard.oss.vauco.no` | ✅ ACTIVE | | `opax-vauco-cert` | `opax.vauco.no` | ✅ ACTIVE (provisjonert 2026-05-30) | > ⚠️ Når du legger til nytt subdomene må du alltid oppdatere `--ssl-certificates` med ALLE eksisterende + nytt. > Eksempel: `--ssl-certificates=osvauco-agent-ssl-cert,opax-vauco-cert,NYTT-cert` **STATUS (2026-07-07): `git.vauco.no` er BLOKKERT** Diagnose avdekket en fundamental feilkonfigurasjon: * **OK:** DNS (`git.vauco.no` → `34.144.224.45`), SSL-sertifikat (`git-vauco-cert`), og routing til URL-map er i orden. * **AVVIK:** Backend-tjenesten `vauco-os-backend` peker til feil mål: en Serverless NEG for Cloud Run-tjenesten `osvauco-agent`, ikke Gitea-VM-en. * **BLOCKER:** Den forventede Gitea-VM-en (`osvauco-dev-vm`) ble ikke funnet. **Konklusjon:** Gitea-endepunktet via `git.vauco.no` er **ikke-fungerende**. All Fase 2-koding som avhenger av et live Gitea-endepunkt er blokkert. Ingen flere endringer på lastbalanserer eller backends skal gjøres nå. --- ## REGEL: Nytt subdomene = gjør dette (i denne rekkefølgen) ### Steg 1 — GCP: Opprett SSL-sertifikat ```bash gcloud compute ssl-certificates create NAVN-cert \ --domains=subdomene.vauco.no \ --project=propane-will-491900-m5 ``` ### Steg 2 — GCP: Legg til sertifikat på proxy (MED alle eksisterende) ```bash gcloud compute target-https-proxies update osvauco-agent-https-proxy \ --ssl-certificates=osvauco-agent-ssl-cert,opax-vauco-cert,NAVN-cert \ --project=propane-will-491900-m5 ``` ### Steg 3 — DNS hos Proisp (manuelt, én gang) ``` Type: A Navn: subdomene.vauco.no Verdi: 34.98.77.173 TTL: 300 ``` ### Steg 4 — Vent på sertifikat-provisjonering (10-20 min) ```bash # Sjekk status gcloud compute ssl-certificates describe NAVN-cert \ --project=propane-will-491900-m5 \ --format="json(managed.domainStatus,managed.status)" ``` > ⚠️ ALDRI bruk CNAME til ghs.googlehosted.com for IAP-beskyttede tjenester. > CNAME til ghs = Cloud Run domain mapping = bypasser Load Balancer = ingen IAP. --- ## DOMENE-ROLLEMODELL (Låst) | Domene | Tildelt Rolle | Status | |-----------|----------|--------| | `git.vauco.no` | Gitea (kode-repo) | **Planlagt** | | `opax.vauco.no`| OPAX-MCP (agent-gateway)| **Aktiv** | | `ops.vauco.no` | Ikke i bruk | **Parkert** | --- ## DAGENS SUBDOMENER — Status | Subdomene | DNS type | Peker til | SSL-cert | IAP | Status | |-----------|----------|-----------|----------|-----|--------| | `opax.vauco.no` | A | `34.98.77.173` | `opax-vauco-cert` | ✅ | ✅ Fungerer | | `costguard.oss.vauco.no` | A | `34.98.77.173` | `osvauco-agent-ssl-cert` | ✅ | ✅ Fungerer | | `oss.vauco.no` | - | - | - | - | 🔮 Fase C | | `os.vauco.no` | - | - | - | - | 🔮 Fase C | | `threadstone.vauco.no` | CNAME | GitHub Pages | GitHub | ❌ | ⚠️ Midlertidig — migreres til GCS + GCP LB (T1) | | `app.threadstone.vauco.no` | CNAME | GitHub Pages | GitHub | ❌ | ⚠️ Midlertidig — migreres til GCS + GCP LB (T1) | > ⚠️ `threadstone.vauco.no` og `app.threadstone.vauco.no` er fortsatt på GitHub Pages inntil T1 er fullført. > Ved migrering: opprett SSL-cert, pek DNS A-record til `34.98.77.173`, sett opp GCS-bucket + LB-backend. --- ## OAUTH / IAP — Konfigurasjon | Parameter | Verdi | |-----------|-------| | OAuth brand | `projects/357036551735/brands/357036551735` | | Publishing status | **Testing** (ikke publiser til Production) | | User type | **External** | | Test-brukere | `chris.christiansen@vauco.no` | | IAP IAM | `chris.christiansen@vauco.no` → `roles/iap.httpsResourceAccessor` | | IAP IAM | `jason-vauger@propane-will-491900-m5.iam.gserviceaccount.com` → `roles/iap.httpsResourceAccessor` (lagt til 2026-06-17) | | IAP backend | `opax.vauco.no` → `osvauco-agent-iap-backend` (ikke `vauco-os-backend`). DNS: `34.98.77.173` → `osvauco-agent-url-map` → `osvauco-agent-iap-backend` | > Testing-status med External er korrekt og trygt for intern bruk. > Maks 100 test-brukere — mer enn nok for Vauco OS. --- ## GCP PROSJEKT | Parameter | Verdi | |-----------|-------| | Project ID | `propane-will-491900-m5` | | Project number | `357036551735` | | Region (hoved) | `us-central1` | | Cloud Run service | `osvauco-agent` | | Cloud Run URL | `https://osvauco-agent-357036551735.us-central1.run.app` | --- ## FREMTIDIG: Flytt DNS til Google Cloud DNS Når tid tillater — flytt `vauco.no` nameservere til Google Cloud DNS. Da kan alle DNS-endringer gjøres med `gcloud`-kommandoer, og nytt subdomene er fullt automatisert. ```bash # Opprett zone gcloud dns managed-zones create vauco-no \ --dns-name=vauco.no. \ --description="Vauco DNS zone" \ --project=propane-will-491900-m5 # Nytt subdomene = én kommando gcloud dns record-sets create subdomene.vauco.no. \ --zone=vauco-no \ --type=A \ --ttl=300 \ --rrdatas=34.98.77.173 \ --project=propane-will-491900-m5 ``` **Prosessen:** Hent NS-records fra GCP → lim inn hos Proisp → propagering 24-48t. **Trigger:** Gjør dette etter CG3 er live og første kunde er onboardet. --- *Opprettet: 2026-05-30 | Oppdatert: 2026-06-10 | OSVauco | propane-will-491900-m5* --- ## Ny DNS-strategi: Minimal Live-sone i Cloud DNS (2026-07-07) **Beslutning:** Vi speiler ikke ProISP-sonen 1:1. Den behandles som historikk. En ny, minimal sone bygges bevisst opp i Google Cloud DNS (`vaucono`) for å bli den fremtidige autoritative kilden. Ingen nameserver-bytte skjer ennå. ### Sammenligning og Fremtidig Status for DNS-Records #### Gruppe 1: E-post/autentisering (Beholdes og verifiseres) *Disse er standard for Google Workspace og er kritisk for e-postflyt.* | Navn | Type | Ønsket Verdi | Planlagt `gcloud`-kommando | | :--- | :--- | :--- | :--- | | `vauco.no.` | MX | Standard Google MX-records. | `transaction add --name="vauco.no." --type=MX --ttl=3600 "1 smtp.google.com." "5 alt1.smtp.google.com." ...` | | `vauco.no.` | TXT | `v=spf1 include:_spf.google.com ~all` | *(Eksisterer allerede i Cloud DNS)* | | `google._domainkey` | TXT | (DKIM-nøkkel fra Google) | *(Eksisterer allerede i Cloud DNS)* | | `_dmarc.vauco.no.`| TXT | (DMARC-policy) | *(Eksisterer allerede i Cloud DNS)* | #### Gruppe 2: Beholdes til Live (Kjerne-infrastruktur) *Disse peker til aktiv, strategisk infrastruktur.* | Navn | Type | Ønsket Verdi | Planlagt `gcloud`-kommando | | :--- | :--- | :--- | :--- | | `opax.vauco.no.`| A | `34.98.77.173` (IAP LB IP) | `transaction add --name="opax.vauco.no." --type=A --ttl=300 "34.98.77.173"` | | `vauco.no.` | A | Fremtidig web-host / statisk side | `...` | | `www.vauco.no.` | A | Fremtidig web-host / statisk side | `...` | #### Gruppe 3: Beslutning Kreves *Disse er strategiske, men avhenger av eksterne faktorer før de kan låses.* | Navn | Type | Ønsket Verdi | Status | | :--- | :--- | :--- | :--- | | `git.vauco.no.`| A | (Stabil, ekstern IP til dev-VM) | **BLOKKERT:** Venter på at nettverk/brannmur er bekreftet. | #### Gruppe 4: Legacy / Eksperiment (Skal ikke migreres nå) *Disse subdomenene er fra tidligere eksperimenter og skal ikke opprettes i den nye sonen med mindre et konkret behov dokumenteres.* - `blackbriar.vauco.no` - `vaultconnection.vauco.no` - `n8n.vauco.no` - `scout.vauco.no` - `stage.vauco.no` - `costguard.oss.vauco.no` - `threadstone.vauco.no` (og andre GitHub Pages CNAMEs) ### Oppsummering av Plan Cloud DNS-sonen er ufullstendig. For å gjøre den klar, må vi: 1. Legge til korrekte MX-records for Google Workspace. 2. Endre `opax.vauco.no` fra CNAME til en A-record som peker på IAP Load Balancer-IP-en. 3. Klargjøre en midlertidig, statisk host for `vauco.no` og `www` og legge inn A-records for disse. 4. Avklare og sette en stabil, ekstern IP for `git.vauco.no`. 5. **Ikke** migrere noen av de gamle "Legacy/Eksperiment"-subdomenene. --- ### Gemini-bekreftelse 2026-07-07 Jeg bekrefter med dette min forståelse av den nye, minimale DNS-strategien: **1. Ønsket sluttmodell for kjerne-domener:** * **`opax.vauco.no`:** Skal være en A-record som peker direkte til IAP Load Balancer-IP-en (`34.98.77.173`), for å sikre korrekt IAP-flyt. Dette er en endring fra dagens CNAME i Cloud DNS-sonen. * **`git.vauco.no`:** Skal være en A-record som peker til den stabile, eksterne IP-adressen til Gitea-serveren (dev-VM). Dette er for øyeblikket blokkert til nettverk/IP er avklart. * **`vauco.no` / `www.vauco.no`:** Er definert som fremtidig hovedinngang/portal. Innholdet er ikke en prioritet nå, men A-records for disse må være en del av den Google-styrte sonen før bytte. **2. Forutsetninger før nameserver-bytte:** Før `vauco.no` kan bytte navnetjenere til Google Cloud DNS, må følgende fem punkter være fullført i `vaucono`-sonen: 1. Alle nødvendige MX-records for Google Workspace må være lagt inn. 2. `opax.vauco.no` må være korrigert fra CNAME til A-record. 3. En midlertidig host for `vauco.no` og `www.vauco.no` er klargjort og tilhørende A-records er lagt inn. 4. En stabil IP for `git.vauco.no` må være satt. 5. Det er bekreftet at ingen "legacy"-domener skal migreres.