naisdevice is a mechanism enabling NAVs developers to connect to internal resources in a secure and friendly manner.
Each resource is protected by a gateway, and the developer is only granted access to the gateway if all of the following requirements are met:
Executing make release-frontend
is required for deploy of new naisdevice client to be released and made available for download/install/update.
The apiserver
component serves as the gRPC API server, responsible for handling various configurations and managing communication with other agents. Its primary functionalities include:
nais/kolide-event-handler
.# Create a sqlite database file with a mock device
go run ./hack/local-device.go
# Start apiserver
go run ./cmd/apiserver
## Run device agent with access to your local apiserver
go run ./cmd/naisdevice-agent --local-apiserver
The gateway-agent
runs on virtual machines (VMs) and interacts with the apiserver
to receive and apply configurations. Key features of the gateway-agent
include:
apiserver
.The auth-server
operates in a cloud run environment and plays a crucial role in user authentication. Its functionalities include:
The enroller
is deployed on Cloud Run and is responsible for managing the enrollment process for both gateways and devices.
The device-helper
serves as the gRPC API for the device-agent
and performs essential setup tasks for devices. Key functionalities include:
device-agent
.The device-agent
is a crucial component responsible for managing device configurations and facilitating communication with the apiserver
. Its main features include:
apiserver
.device-helper
via its gRPC API.The systray
component acts as a graphical user interface (GUI) for the agent
, utilizing its gRPC API. It provides a convenient way for users to interact with and monitor the agent’s status.
The controlplane-cli
serves as an administrative command-line interface (CLI) interacting with the apiserver
through its gRPC API. This CLI is designed for administrative tasks and configurations.
The prometheus-agent
component connects to all gateways over WireGuard and configures Prometheus (deployed on the same VM) to scrape relevant metrics.
See https://doc.nais.io/operate/naisdevice/how-to/install/