Synpse
🤖 Devices⚡ ApplicationsTry Synpse!
  • Intro to Synpse
  • Start here
    • Quick Start (web user)
    • Quick Start (CLI)
  • Agent
    • Install
      • Raspberry Pi
      • Linux (Docker)
      • MacOS
      • NVIDIA Jetson
      • Headless (Ubuntu)
      • BeagleBoard AI
      • Bulk Provisioning
      • 🪄Beta - Universal Synpse image
      • Containerized agent
      • Configuration
    • Uninstall
  • CLI
    • Install & Usage
  • synpse core
    • Devices
      • Device Provisioning
      • HTTPS Tunnel Access
      • SSH Access
      • Device Labels
      • Environment Variables
      • Proxy Application Ports
      • OS & Architectures
      • Operations
      • Device API
    • Applications
      • Deploy
      • Secrets
      • Environment variables
      • Substitution (dynamic templates)
      • Volumes
      • Networking
      • Scheduling
      • Registry authentication
      • Using GPUs
      • Tips & Tricks
      • Logs and status
      • Application specification (API reference)
    • Account
      • Personal Access Tokens
      • Service (Robot) Accounts
      • Teams (Share Devices)
    • Monitoring (beta)
      • Device Monitoring
      • Application Monitoring
  • Manage
    • Projects
    • Namespaces
    • Quotas
  • Examples
    • 🏠Home Automation
      • Gladys Assistant
      • Home Assistant
    • 🛠️Preparing OS Images
      • Synpse CLI Builder
      • Build a custom Raspberry Pi image
      • Cloud-init (advanced)
    • 💡Dynamic Templates
    • ☁️Public Cloud IoT
      • AWS IoT Core
      • Azure IoT Hub
      • GCP IoT Core
    • 🚀Device management
      • VNC to remove devices
      • Ansible
  • On-prem Deployment
    • 🐳Docker Compose
    • 🌤️kubernetes
  • Resources
    • API Documentation
    • Deployment patterns
    • Security & Tech
Powered by GitBook
On this page
  • Labeling devices
  • Add labels through dashboard
  • Add labels through registration token
  • Device self-labeling
  • Filtering

Was this helpful?

  1. synpse core
  2. Devices

Device Labels

Labeling helps you to manage your devices at scale. You can use labels to schedule, configure or query subset of the devices

PreviousSSH AccessNextEnvironment Variables

Last updated 3 years ago

Was this helpful?

Labels are used to:

  • Filter your devices when searching for a particular group or a single device.

  • During application deployment, as applications can provide a selector with a list of labels and their values.

Labels can be added to devices in several ways:

  • Manually through API/CLI/dashboard.

  • Through a registration token (when device is being provisioned).

  • Automatically by the agent itself, if labels are found in the configuration directory.

Labeling devices

Add labels through dashboard

Labels can be added (or removed) to devices either through the devices table or through the device details page:

Manually editing devices is mostly useful when operating with a relatively small number of devices or when slowly adding them to your project. If you need to label large number of devices, consider using registration token labeling or device self-label functionality.

Add labels through registration token

Registration token labels can be edited in the provisioning page.

Once registration token labels are set, any new devices registering to the system will inherit them. You can modify registration token labels at any time, it will not affect existing devices.

Adding labels to the registration token is useful when booting large number of devices in batches. For example, if you have a token that is embedded in your OS image and 10 000 devices, you can modify the token for

Device self-labeling

Synpse allows devices to apply labels to themselves using a configuration file.

By default synpse looks for a labels configuration in /etc/synpse/labels file. File format is

label1Key=labelValue
label2Key=label2Value

For example, a device with this file:

$ cat /etc/synpse/labels
arch=arm64
type=rpi

You can use provisioning scripts to automatically update the labels file. Any updates to it will automatically get sent to the Synpse controller.

Filtering

You can filter your devices by using exact match, for example labelKey:labelValue to get all devices that have this specific combination or just by specifying labelKey: to list all devices that have labelKey in the their labels with any value.