Skip to main content

Prerequisites

  • Kubernetes v1.20+
  • Helm v3+
  • Administrator access to the cluster (for RBAC and CoreDNS patching)
  • Outbound HTTPS access to NOFire AI
  • NOFire API Key from your dashboard
  • (Optional) Prometheus Operator for ServiceMonitor support

1. Helm Install

Add the Helm Repository

Step 1: Initial Install

Step 2: Get the ClusterIP

Copy the ClusterIP from the output (e.g., 10.96.145.200).

Step 3: Reinstall with Static IP

Setting a static ClusterIP ensures the service IP does not change during upgrades or reinstalls. This is critical for CoreDNS configuration stability.Use the auto-assigned IP from Step 2 as your static IP to avoid conflicts. Learn more about ClusterIP allocation strategy.
Alternatively, using a values file:

2. DNSTap Configuration

Without DNSTap, Edge will only see static resources and will not show runtime service dependencies.

Step 1: Confirm the ClusterIP

Step 2: Patch CoreDNS

Get the current CoreDNS ConfigMap:
Open coredns.yaml and insert the dnstap line inside the .:53 block:
Replace NOFIRE_EDGE_IP with the ClusterIP from Step 1. Apply and restart CoreDNS:

Step 3: Verify DNSTap Connection

Check the Edge logs for connection and handshake messages:
You should see, in order:
  1. "New DNS Tap connection accepted" — CoreDNS connected
  2. "Handshake successful, ready to receive frames" — protocol handshake completed
  3. "Received data frame" — DNS tap data is flowing
To verify dependencies are being detected:
If no connection logs appear, CoreDNS is not reaching Edge. Check:
  • The dnstap line in the CoreDNS ConfigMap uses the correct Edge ClusterIP
  • CoreDNS was restarted after the ConfigMap change
  • CoreDNS logs for dropped dnstap messages: kubectl logs -l k8s-app=kube-dns -n kube-system | grep -i drop

3. Verify Edge Is Running

Look for Graph published successfully in the logs.

4. Network Observability (Optional)

Beyond the DNS-derived dependency map, Edge can map the real service-to-service calls in your cluster by reading an observability stack you already run (Hubble, Istio, or Caretta). It is disabled by default. See Network Observability to enable it and compare what each backend surfaces.

5. Edge Proxy (Optional)

If your observability backends are behind a firewall, the Edge Proxy gives NOFire direct access to them on demand. No VPN or inbound firewall rules required.

Step 1: Create a Connector Secret

Step 2: Add to values.yaml

The proxy pod is created automatically when onPremConnections is defined.

Step 3: Upgrade

Step 4: Verify the Proxy

Expected: Stream connected and handshake complete See On-Prem Connections to add more data sources.

Troubleshooting

  • No dependencies showing up. Check CoreDNS logs: kubectl logs -n kube-system -l k8s-app=kube-dns. Verify the DNSTap line uses the correct Edge ClusterIP and that CoreDNS was restarted.
  • Permission errors. Ensure the nofire-edge ServiceAccount has the necessary RBAC permissions (ClusterRole).
  • Graph not publishing. Verify the API key is correct and outbound HTTPS to NOFire AI is allowed.