Prerequisites
Required Components
- Kubernetes: Version 1.19+
- Helm: Version 3.0+
- kubectl: Configured cluster access
- NOFire API Key: Generated from NOFire UI
Operational Modes
- Provider-Enabled: Identifies services and dependencies (Datadog integration)
- Providerless: Identifies services only (no dependency mapping)
Resource Requirements
- CPU: 100m request (200m limit recommended)
- Memory: 128Mi request (256Mi limit recommended)
- Network: Outbound HTTPS for API calls, inbound HTTP on port 8080
Permissions
- Read access to pods, nodes, services, configmaps, secrets
- List/watch permissions for resource discovery
Installation
Step 1: Generate API Token
Navigate to the API Tokens screen
Navigate to the API Tokens screen
Provide a meaningful name and create the API Key
Provide a meaningful name and create the API Key
Provide a descriptive name for the key and click Create.

Copy the API Key token
Copy the API Key token
Copy the generated API token. This token will not be shown again.

Step 2: Add Helm Repository
Step 3: Create Configuration
Createcustom-values.yaml with your API token:
Step 4: Install
Uninstall
Configuration Reference
The complete configuration reference is provided in the table below.| Parameter | Type | Default | Description |
|---|---|---|---|
| Chart Parameters | |||
image.repository | str | TODO | Container image repository. Change it only if you have pulled the image to your own Docker repository |
image.tag | str | latest | Container image tag |
replicaCount | int | 1 | Number of replicas |
| Basic Configuration | |||
config.logLevel | str | info | Logging level (debug, info, warn, error) |
config.serverPort | int | 8080 | Server port for HTTP API |
config.maxWorkers | int | 4 | Maximum number of worker goroutines |
config.processInterval | str | 100ms | Interval between processing cycles |
| Graph Configuration | |||
config.graph.pruneInterval | str | 1h | How often to prune old graph data |
config.graph.maxPruneAge | str | 24h | Maximum age of graph data to keep |
| Kubernetes Configuration | |||
config.kube.resyncInterval | str | 5m | How often to resync with Kubernetes API |
config.kube.clusterName | str | default-cluster | Name of the cluster |
config.kube.resources | array | [pods, nodes, ...] | List of Kubernetes resources to monitor |
| Services Configuration | |||
config.services.nameLabels | array | otel labels | Labels to check for service name identification |
config.services.versionLabels | array | otel labels | Labels to check for service version identification |
config.services.provider | obj | null | Optional observability solution for service dependency determination. Set to null to disable dependency analysis. Currently supports Datadog, with additional observability solutions planned for future releases |
config.services.provider.datadog.apiKey | str | "" | Datadog API key |
config.services.provider.datadog.appKey | str | "" | Datadog application key |
config.services.provider.datadog.url | str | "" | Datadog API URL |
config.services.provider.datadog.interval | str | "" | Datadog sync interval |
config.services.provider.datadog.timeout | str | "" | Datadog request timeout |
config.services.provider.datadog.env | str | "" | Datadog environment |
| Publisher Configuration | |||
config.enablePublishing | bool | false | Enable data publishing |
config.publisher.apiKey | str | "" | API key for publishing (REQUIRED) |
config.publisher.timeout | str | 5m | Request timeout |
config.publisher.maxRetries | int | 3 | Maximum retry attempts |
config.publisher.retryDelay | str | 1m | Delay between retries |
config.publisher.enableCompression | bool | false | Enable request compression |
config.publisher.graph.url | str | "" | Graph publishing URL (REQUIRED) |
config.publisher.graph.interval | str | 1h | Graph publishing interval |
config.publisher.heartbeat.url | str | "" | Heartbeat publishing URL (REQUIRED) |
config.publisher.heartbeat.interval | str | 1h | Heartbeat publishing interval |
Environment Variable Substitution
The NOFire AI edge supports environment variable substitution using the format{ENV_VAR_NAME}. This feature is only available for configuring the Datadog provider.
It enables secure configuration management by allowing sensitive Datadog credentials to be stored as environment variables (e.g., within Kubernetes Secrets) rather than in plain text configuration files.
Below you can find an example. Replace Datadog credentials with environment variable placeholders in your custom-values.yaml:
API Endpoints
The edge client exposes HTTP endpoints for debugging and diagnostics.| Endpoint | Description |
|---|---|
/graph | Full resource graph (JSON) |
/graph/dot | Graph in DOT format |
/graph/stats | Graph statistics |
/metrics | Prometheus metrics |
/healthz | Health check |
