Skip to content

Make user's home directory persistent using hostPath

Prerequisites

  • a Kubernetes cluster with abcdesktop installed

Define hostPath folder and update od.config

On your node, create a directory that will serve as the mount point for user home directories — for example, /mnt/abcdesktop_volumes/. Then edit your od.config file. First, set desktop.homedirectorytype to 'hostPath' and add a desktop.hostPathRoot entry whose value is the path to the mount point you created.

desktop.homedirectorytype: 'hostPath'

#
# desktop.hostPathRoot set the hostPath root directory
# desktop.hostPathRoot is read only if desktop.homedirectorytype: 'hostPath'
desktop.hostPathRoot: '/mnt/abcdesktop_volumes'

Kubernetes will automatically create a directory for each user if one does not already exist.

Finally, update the ConfigMap and restart pyos by running the following commands:

kubectl create -n abcdesktop configmap abcdesktop-config --from-file=od.config -o yaml --dry-run=client | kubectl replace -n abcdesktop -f -
kubectl rollout restart deploy pyos-od -n abcdesktop

Check if user's home directory is persistent

You can now connect to abcdesktop and log in as a user.

Once connected, run the following command to verify that the user's home directory is correctly configured:

kubectl describe pod <YOUR-POD-NAME> -n abcdesktop 

You should see something like the following in the volumes section:

Volumes:
  home:
    Type:          HostPath (bare host directory volume)
    Path:          /mnt/abcdesktop_volumes/fry
    HostPathType:  DirectoryOrCreate

You can also verify on the host node that the directory has been created:

ls -la /mnt/abcdesktop_volumes/
total 20
drwxr-xr-x  5 root root  4096 Apr  7 16:44 .
drwxr-xr-x 14 root root  4096 Apr  7 11:39 ..
drwxr-x--- 15 2042 12042 4096 Apr  8 11:21 fry

The numeric UID of the directory owner should match your user's UID.

Now create a file in the user's home directory:

create file on user homedir

Verify that the file is present on the host node:

ls -la /mnt/abcdesktop_volumes/fry
drwxr-x--- 2 2042 12042 4096 Mar 17 15:09 Desktop
drwxr-x--- 2 2042 12042 4096 Mar 17 15:09 Documents
drwxr-x--- 2 2042 12042 4096 Mar 17 15:09 Downloads
drwxr-x--- 2 2042 12042 4096 Mar 17 15:09 Music
drwxr-x--- 2 2042 12042 4096 Mar 17 15:09 Pictures
drwxr-x--- 2 2042 12042 4096 Mar 17 15:09 Public
drwxr-x--- 2 2042 12042 4096 Mar 17 15:09 Templates
-rw-r----- 1 2042 12042    0 Mar 18 09:11 toto.txt
drwxr-x--- 2 2042 12042 4096 Mar 17 15:09 Videos

Then log off to destroy the pod and allow it to be recreated. Once reconnected on a new pod with the same user, verify that the file you previously created is still present.

check peristent user homedir

Home directory persistence using hostPath is now configured.

Looking for an older version? Previous documentation (old.abcdesktop.com)