OSVauco/docs/DNS-OG-INFRASTRUKTUR.md
Chris Christiansen 9fcb9c354a
Some checks are pending
Check Python Version Consistency / Check Python Version (push) Waiting to run
feat(core): Fresh initialization - Deploy v3.6.1 Singularity Architecture
2026-09-03 04:03:09 +00:00

234 lines
9.8 KiB
Markdown

# 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.