234 lines
9.8 KiB
Markdown
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.
|
|
|