All rapyuta.io docs are open source. See something that's wrong or unclear? Submit a pull request.
Make a contributionrapyuta.io supports the native VPN. It now provides the capability to connect devices and device deployments in a warehouse with deployments running in the cloud and vice-versa. It will also allow device (robot/edge) addressability in the warehouse for debugging and maintenance.
You can use the CLI to enable VPN on projects, devices, and cloud deployments.
To enable/disable VPN while creating a new project:
To enable/disable VPN for an existing project: To enable or disable VPN for an existing project, follow these steps:
On the left navigation bar, click Account > Project. The panel displays a list of projects.
To enable/disable VPN for a project, under Actions select the Edit icon and click the Enabled/Disabled button.
To enable VPN on devices:
VPN can be enabled on devices only if VPN is enabled for the selected project and if the device is online.
VPN can be enabled on cloud deployments while depolying the package. To enable VPN on cloud deployments:
VPN can be enabled for cloud deplyments only if VPN is enabled for the selected project.
You can either create a new project and enable VPN in the project manifest or enable VPN in an existing project.
To list projects with features:
rio project list -w
To create a new project you will have to first create a project manifest, set the attribute vpn.enabled
to true
and then apply the manifest.
For example, create a project manifest project.yaml
as below:
apiVersion: api.rapyuta.io/v2
kind: Project
metadata:
name: dev-tst-001
organizationGUID: org-wvnwcmvfkbajavjetttcutga
spec:
features:
vpn:
enabled: True
subnets:
- 10.81.0.0/16
users:
- emailID: admin@rapyuta-robotics.com
role: admin
The subnets attribute is optional; if you wish for any devices within the warehouse to broadcast a particular subnet, configure this at the project level.
To apply the maifest:
rio apply project.yaml
To update an existing project
Before proceeding with any project updates, ensure that you fetch the current manifest to prevent unintentional overwrites of any essential configurations. Review the changes and then apply the updates accordingly.
To fetch the project:
rio project inspect dev-tst-001 > project.yaml
To update the manifest:
apiVersion: api.rapyuta.io/v2
kind: Project
metadata:
name: dev-tst-002
organizationGUID: org-wvnwcmvfkbajavjetttcutga
spec:
features:
vpn:
enabled: True
subnets:
- 10.81.0.0/18
users:
- emailID: admin@rapyuta-robotics.com
role: admin
To view the list of devices:
rio device list
To enable VPN on all online devices:
rio device vpn true
To enable VPN on selected devices:
rio device vpn true --devices=<device_name> --devices=<device2_name>
For example, if you want to enable VPN for the devices amr01 and edge02,
rio device vpn true --devices=amr01 --devices=edge01
To enable VPN with the - -advertise-routes flag:
rio device vpn true --devices=edge01 --advertise-routes -f
If you have updated the subnet ranges, re-enable the VPN with the advertise-routes parameter set to true on devices where VPN was already enabled.
rio device vpn true --devices=<device_name> --advertise-routes -t
To disable active VPN on devices:
rio device vpn false --devices=edge01 -f
To Run VPN client in cloud deployments you will have to first create a deployment maifest, set the attribute vpn.enabled
to true
and then apply the manifest.
For example, craete a deployment manifest, deployment.yaml
.
apiVersion: "apiextensions.rapyuta.io/v1"
kind: Deployment
metadata:
name: "nginx-with-tailscale"
depends:
kind: package
nameOrGUID: "nginx"
version: "1.0.0"
spec:
runtime: cloud
features:
vpn:
enabled: true
To apply the maifest:
rio apply deployment.yaml
rio project select <project_name>
rio vpn connect
rio vpn status
tailscale status
rio vpn disconnect