Skip to main content
Version: v3.9.0

AgentConfig fields

Reference for kind: AgentConfig. Fields below live at spec.*. On Agent and LocalAgent, use the same fields under spec.config.*. See Agent fields and LocalAgent fields. Deploy flow is on AgentConfig.

Deploy
apiVersion: datasance.com/v3 # required, string
kind: AgentConfig # required, string
metadata:
name: my-edge # required, string
spec:
name: my-edge # no, string. Defaults to metadata.name when empty
description: Edge node # no, string
location: plant-a # no, string
latitude: 0.0 # no, float
longitude: 0.0 # no, float
arch: amd64 # recommended, string. amd64, arm64, arm, or riscv64
host: 10.0.0.5 # no, string. Interior router mode may require host
deploymentType: native # no, string, default native. native or container
containerEngine: edgelet # no, string, default edgelet. edgelet, docker, or podman
containerEngineUrl: unix:///run/edgelet/containerd.sock # no, string
networkInterface: eth0 # no, string
diskLimit: 10 # no, int64. GiB
diskDirectory: /var/lib/edgelet # no, string
memoryLimit: 1024 # no, int64. MiB
cpuLimit: 100 # no, int64. 100 is one core
logLimit: 100 # no, int64
logDirectory: /var/log/edgelet # no, string
logFileCount: 5 # no, int64
statusFrequency: 10 # no, float
changeFrequency: 10 # no, float
watchdogEnabled: true # no, bool
logLevel: info # no, string
pruningFrequency: 60 # no, float
availableDiskThreshold: 80 # no, float. Percent
timeZone: UTC # no, string
gpsMode: off # no, string. For example auto or off
gpsScanFrequency: 0 # no, float
gpsDevice: /dev/ttyUSB0 # no, string
edgeGuardFrequency: 0 # no, float. Seconds. 0 disables
upstreamRouters: # no, list of string. Edgelet node names
- default-router
routerConfig:
routerMode: edge # no, string, default edge. edge, interior, or none
messagingPort: 5671 # no, int, default 5671
edgeRouterPort: 45671 # no, int. Interior mode only
interRouterPort: 55671 # no, int. Interior mode only
upstreamNatsServers: # no, list of string
- default-nats-hub
natsConfig:
natsMode: leaf # no, string, default leaf. leaf, server, or none
natsServerPort: 4222 # no, int, default 4222
natsLeafPort: 7422 # no, int, default 7422
natsClusterPort: 6222 # no, int. Server mode only
natsMqttPort: 8883 # no, int, default 8883
natsHttpPort: 8222 # no, int, default 8222
jsStorageSize: 10G # no, string, default 10G
jsMemoryStoreSize: 1G # no, string, default 1G

Identity​

FieldTypeRequiredDescription
namestringNoDisplay name. Defaults to metadata.name when empty.
descriptionstringNoFree text
locationstringNoLocation label
latitudefloatNoGeo latitude
longitudefloatNoGeo longitude
archstringRecommendedamd64, arm64, arm, riscv64. Mapped to Controller archId at deploy.

archId is normally derived from arch. Do not set both inconsistently. An invalid arch string may map to 0 or auto behavior, depending on Controller validation.

Runtime​

FieldTypeDefault (edge)Description
hoststringFrom the node specController host. Interior router mode may require host.
deploymentTypestringnativenative or container
containerEnginestringedgeletedgelet, docker, or podman
containerEngineUrlstringEngine defaultFor example unix:///run/edgelet/containerd.sock
networkInterfacestringBind interface

isSystem is not settable in YAML. System nodes are created by control plane deploy.

Resource limits and logging​

FieldTypeDescription
diskLimitint64Disk quota (GiB)
diskDirectorystringData directory on the host
memoryLimitint64Memory limit (MiB)
cpuLimitint64CPU limit. 100 is one core.
logLimitint64Log size limit
logDirectorystringLog directory
logFileCountint64Rotated log files
statusFrequencyfloatStatus report interval
changeFrequencyfloatChange detection interval
watchdogEnabledboolWatchdog
logLevelstringFor example INFO or info
pruningFrequencyfloatPrune interval. See Image pruning.
availableDiskThresholdfloatDisk pressure threshold (%)
timeZonestringHost timezone

GPS and EdgeGuard​

FieldTypeDescription
gpsModestringFor example auto or off
gpsScanFrequencyfloatScan interval
gpsDevicestringDevice path or selector
edgeGuardFrequencyfloatEdgeGuard interval in seconds. 0 disables. See EdgeGuard.

HAL and Bluetooth fields from older releases are retired in v3.9.

Router​

Listeners, TLS, connectors, and Service bridges are on Router fabric.

FieldTypeDescription
upstreamRouters[]stringEdgelet node names in YAML. Resolved to UUIDs at deploy.
FieldTypeDefault (edge)Description
routerConfig.routerModestringedgeedge, interior, or none
routerConfig.messagingPortint5671Messaging AMQP port
routerConfig.edgeRouterPortintInterior mode only
routerConfig.interRouterPortintInterior mode only

System node defaults use router mode interior and fill the ports.

Validation:

  • edge cannot set edgeRouterPort or interRouterPort.

NATS​

Server, leaf, JetStream, and resolver bundles are on NATS fabric. Workload credentials use application natsAccess. See Applications and NATS user rules.

FieldTypeDescription
upstreamNatsServers[]stringEdgelet node names of NATS servers. Resolved to UUIDs at deploy.
FieldTypeDefault (edge)Description
natsConfig.natsModestringleafleaf, server, or none
natsConfig.natsServerPortint4222Client port
natsConfig.natsLeafPortint7422Leaf port
natsConfig.natsClusterPortintServer mode only
natsConfig.natsMqttPortint8883MQTT
natsConfig.natsHttpPortint8222Monitoring HTTP
natsConfig.jsStorageSizestring10GJetStream storage
natsConfig.jsMemoryStoreSizestring1GJetStream memory

System node defaults use NATS mode server, plus a cluster port and JetStream sizes.

Deploy-time processing​

StepBehavior
PrepareEdge versus system defaults. arch becomes archId.
ProcessNames become UUIDs for upstream lists. Host rules for an interior router.
ValidateRouter and NATS mode matrix
Create or updateController stores the config. Platform reconcile runs asynchronously.

Read-only on describe agent-config (not in the deploy spec): daemon status, CPU, memory, and disk usage, platform phase, runtime classes, modelStatus, activeModels, knowledgeStatus, and activeKnowledge.

Group 3See anything wrong with the document? Help us improve it!