How dsx-ai-factory/nvke works
NVKE is a self-hosted Kubernetes management plane for provisioning and operating isolated workload clusters on operator-owned infrastructure. The main operator workflow bootstraps a management cluster, installs NVKE services, then uses nvkectl or the API to create clusters and manage their node pools; customers access workload clusters through Kubernetes. The graph preserves the documented infrastructure-provider, node-identity, and node-agent capabilities. Some subsystems are represented by their exact source directories because their implementation was not sampled; uncertain connections are omitted.
Main entry points: worker/main.go Controller worker · server Management API · agent/main.go Node agent · nvkecluster_controller.go Cluster reconciler
Components 23
Management Bootstrap
- nvkectl
cli/internal/nvkectl - Seed cluster
cli/internal/bootstrap/engine/bootstrapengine.go - Service deployment
cli/internal/bootstrap/controllerdeploy/controllerdeploy.go
Management Plane
- Controller worker
controller/cmd/worker/main.go - Management API
controller/internal/server - Cluster reconciler
management-engine/controllers/nvkecluster_controller.go - Controller API client
management-engine/internal/nvkecontroller/client.go - Fake controller API
management-engine/internal/fake/server.go - Cluster state
controller/internal/db
Cluster Provisioning
- Provisioned provider
cluster-api-provider-provisioned/controllers/machine_controller.go - NICo simulator
controller/nico-sim/internal/lifecycle/engine.go
Node Operations
- Node agent
agent/cmd/agent/main.go - Agent streaming client
agent/sample-clients/streaming-script/main.go - Agent upgrades
controller/internal/controllers/controlplane/agent_upgrade_controller.go
Identity And Access
- Bootstrap authorization
controller/internal/controllers/bootstrap/bootstrap_authorization_controller.go - Tenant access
controller/internal/controllers/tenantaccess/controller.go - Teleport tokens
controller/internal/controllers/teleporttoken/controller.go - Authorization client
auth/authz/client.go
Other components
- Platform operator
- NICo infrastructure
- Cluster API
- Cluster customer
- Workload Kubernetes
Connections 26
- Platform operator → nvkectl: runs commands
README.md - nvkectl → Seed cluster: bootstraps seed
cli/internal/bootstrap/engine/bootstrapengine.go - Seed cluster → Service deployment: enables deployment
cli/internal/bootstrap/controllerdeploy/controllerdeploy.go - Platform operator → Management API: requests clusters
README.md - nvkectl → Management API: manages clusters
README.md - Controller worker → Cluster state: persists state
controller/cmd/worker/main.go - Cluster reconciler → Controller API client: calls API
management-engine/controllers/nvkecluster_controller.go - Controller API client → Management API: sends requests
management-engine/internal/nvkecontroller/client.go - Fake controller API → Management API: implements API
management-engine/internal/fake/server.go - Controller worker → Bootstrap authorization: starts controller
- Controller worker → Agent upgrades: starts controller
- Controller worker → Tenant access: starts controller
- Controller worker → Teleport tokens: starts controller
- Cluster reconciler → Provisioned provider: creates machines
- Provisioned provider → NICo infrastructure: provisions machines
README.md - NICo simulator → NICo infrastructure: simulates provisioning
- Cluster reconciler → Cluster API: drives lifecycle
README.md - Cluster API → Node agent: runs on nodes
README.md - Agent upgrades → Node agent: upgrades agent
controller/internal/controllers/controlplane/agent_upgrade_controller.go - Node agent → Workload Kubernetes: joins cluster
README.md - Cluster customer → Workload Kubernetes: uses kubectl
README.md - Bootstrap authorization → Workload Kubernetes: authorizes bootstrap
- Tenant access → Workload Kubernetes: publishes kubeconfig
controller/internal/controllers/tenantaccess/controller.go - Teleport tokens → NICo infrastructure: checks node identity
- Authorization client → Management API: authorizes requests
- Agent streaming client → Node agent: streams agent data