Overview
Platform teams deploying Signadot to remote development environments (RDEs) can
now use devboxes to enable signadot local connect workflows without requiring
manual LocalMachineID configuration.
Devboxes are available in v1.4.0+ of the Signadot CLI.
Previously, when platform teams deployed Signadot to RDEs, oftentimes they would have the same machine-id. So they needed to work around this by writing /etc/machine-id or setting an environment variable, even though these values may have been used to other ends elsewhere.
Devboxes provide:
- Unique identification: Each RDE can be registered with a unique devbox name, eliminating the need for LocalMachineID workarounds
- Simplified setup: Platform teams can standardize RDE configuration with a single command, or none at all.
- Exclusive Connect Sessions: One devbox cannot be used in 2
signadot local connectsessions simultaneously.
With Devboxes, RDEs will work without modifying or emulating the local machine id even if they all have the same machine id.
This guide explains the behavior and setup of signadot local connect for the case of RDEs or Docker containers
which have the same machine id but run different instances of signadot local connect, possibly in parallel.
Devbox Identification
Devboxes are the Signadot entity with which signadot local connect sessions associate. Each devbox
can have at most 1 local connect session at a time.
Devboxes are identified by 3 pieces of information:
- A name which if not provided defaults to the hostname as returned by os.Hostname
- The local machine id
- The authenticated Signadot user's email associated with the call to
signadot local connect, if any (api key authentication has no user's email associated).
As a result, without any setup whatsoever, multiple Signadot users can use
RDEs which all have the same machine id. For example, rde-1 when used by
Alice will have a distinct local connect session from rde-1 when used by
Bob, even though rde-1 has just 1 machine id. However, please note that this
per-user distinction will not hold when api key authentication is used.
If you would like to set up your RDEs so that one user can use more than one RDE simultaneously, or you have processes using Signadot api keys using RDEs, and those RDEs have the same hostname and machine id, then you can either
- set up your RDEs to allow for this using
signadot devbox register; or - ask your users to use
signadot devbox register --name <alt-name>and subsequently connect withsignadot local connect --devboxproviding the associated devbox id.
Below we describe setting up RDEs to allow for API key use and for the case
where 1 user to use multiple RDEs without needing to provide extra flags to
signadot local connect or manage devboxes themselves.
Setting up RDEs with Devbox Registration
Prerequisites
- Signadot CLI v1.4.0+ installed on each RDE
- Signadot operator deployed in the target cluster
Setup Steps
Register Each RDE as a Devbox
During RDE provisioning or initialization, register each RDE with a unique devbox name:
signadot devbox register --name <per-rde-unique-name>
No 2 RDEs should have the same name or they will not be usable simultaneously
for signadot local connect sessions.
Example:
# Register an RDE for a specific user
signadot devbox register --name rde-alice-dev
# Register a team-shared RDE
signadot devbox register --name rde-backend-team-01
# Register an environment-specific RDE
signadot devbox register --name rde-staging-001
Use signadot local connect
Once registered, when a user runs signadot local connect with CLI >=v1.4.0 on
the RDE, the RDE's devbox will be associated with the connect session, and
sandboxes created or updated in that environment with local mappings or forwards
will map and route to that RDE's local connect session.
Integration with RDE Provisioning
Automated Setup Script
Include devbox registration in your RDE provisioning automation:
#!/bin/bash
# RDE initialization script
# Set unique devbox name (e.g., from environment variable or user ID)
DEVELOPER_ID="${USER:-$(whoami)}"
DEVBOX_NAME="rde-${DEVELOPER_ID}-$(hostname | cut -d'-' -f2)"
# Register devbox
if signadot devbox register --name "${DEVBOX_NAME}"; then
echo "Devbox registered successfully: ${DEVBOX_NAME}"
else
echo "Error: Devbox registration failed"
exit 1
fi
Troubleshooting
You can run signadot devbox list --all and signadot devbox delete
to remove devboxes with unintended names associated.
Related Documentation
- Signadot CLI Local Commands - Reference for
signadot local connectand related commands - Local Development Guide - Guide for setting up local development workflows
- CLI Installation - Installing and configuring the Signadot CLI