Previous
API
Once you have a single machine working, fleet deployment is how you scale to tens, hundreds, or thousands of machines. Viam provides tools for every stage of fleet lifecycle management: templatizing configuration, provisioning new devices, deploying software and ML models, managing updates, and automating operations.
Fleet deployment in Viam is built on three core mechanisms:
Fragments are reusable configuration templates. You create a fragment once with all the components, services, modules, and settings a machine needs, then apply that fragment to every machine in your fleet. When you update the fragment, every machine that uses it gets the update. Fragments support variables for per-machine customization, version pinning for controlled rollouts, and overrides for device-specific adjustments.
Provisioning automates the first-boot experience. You install viam-agent on a device during manufacturing with a defaults file that specifies which fragment to use. When the end user powers on the device, viam-agent creates a WiFi hotspot or Bluetooth connection, the user provides network credentials (through a mobile app or captive portal), and the machine automatically configures itself from the fragment.
The module registry stores versioned software packages (modules and ML models) that machines download on demand. When you upload a new version of a module or model, machines configured to track that version update automatically. Maintenance windows let you control when updates are applied so machines are not interrupted during operation.
| Task | Guide |
|---|---|
| Create reusable config templates for your fleet | Reuse configuration |
| Set up zero-touch device provisioning | Provision devices |
| Help end users connect new devices | End-user device setup |
| Deploy modules to machines through fragments | Deploy software |
| Deploy ML models across your fleet | Deploy ML models |
| Control software versions and update timing | Update software |
| Schedule automated tasks on machines | Schedule automated jobs |
| Tag machines with custom metadata | Add custom metadata |
| Configure system-level network and agent settings | System settings |
| Change a deployed machine’s WiFi network | Change network |
Was this page helpful?
Glad to hear it! If you have any other feedback please let us know:
We're sorry about that. To help us improve, please tell us what we can do better:
Thank you!