Skip to content

Verify

Goal: confirm every layer works together. Run each check; any failure points back to its phase.

  1. DNS split: public services resolve to the VPS, everything else to the LAN gateway.

    Terminal window
    dig +short grafana.madhan.app # 178.156.199.250
    dig +short headlamp.madhan.app # 192.168.1.220
  2. OpenBao is unsealed.

    Terminal window
    kubectl exec -n openbao openbao-0 -c openbao -- bao status | grep Sealed # false
  3. Mesh: in the NetBird UI, Peers shows bifrost-agent and k8s-routing-peer connected; Routes shows 192.168.1.0/24 active.

  4. SSO: open https://grafana.madhan.app, sign in with GitHub through Authentik, land in Grafana.

  5. Apps: every Argo CD application is Synced and Healthy.

    Terminal window
    kubectl get applications -n argocd
Failing checkGo back to
DNSPhase 3
SealedPhase 2
Peers or routePhase 6
SSOPhase 4, Phase 7
ApplicationsPhase 8, Troubleshooting

Public hostnames resolve to the VPS for every client, LAN included, so LAN traffic leaves the house and comes back through the tunnel. Override the record locally to go straight to the gateway:

/etc/hosts
192.168.1.220 grafana.madhan.app

Details: Traffic flow, Exposure.