Skip to content

User Management

Requirements

Setup

First obtain the users repo from here.

Setup .env file by filling in all required fields:

mv .env.sample .env

It's better to use an IAM user group to create a new user associated with the clouddesktop user group. It will generate a access and secret key for you to put in the above file. The ingress IP is the ip address of the main node. Once everything is properly setup, do:

export $(make env)

Setup terraform:

terraform init

Common Operations

To under what each of these commands do under the hood, see here.

Add a new user

id is the ID of the new user.

make add-user id=example

Delete a user

Warning: This will remove any persisted data!!

make delete-user id=example

Change resources allocation for user

For user example, modify the file example-clouddesktop/deployment.yaml.

To increase minimum resource

For detailed explanation of what units you can change it to, see here.

resources:
  requests:  # increase minimum to at least 4 cores
-   cpu: 2
+   cpu: 4
    memory: 2Gi

To increase maximum resource limit

For detailed explanation of what units you can change it to, see here.

resources:
  limits: # increase to maximum 16GB of ram
    cpu: 8
-   memory: 8Gi
+   memory: 16Gi

Add GPU support

Note: Beware if we have enough free GPUs in the cluster

Note: Make sure the docker image is a CUDA enabled variant (ie. tb3-ros:v2.1.1-cuda)

resources:
  limits: # increase to maximum 16GB of ram
    cpu: 8
    memory: 8Gi
+   nvidia.com/gpu: 1

Apply changes

Warning: This will restart the cloud desktop container!!

To apply the previously changed values,

kubectl apply -k example-clouddesktop

Restarting a Desktop

To restart a desktop, you need to delete and redeploy the desktop.

This will NOT lead to loss of data.

kubectl delete -k example-clouddesktop

kubectl apply -k example-clouddesktop