How to copy home directory file into new persistent volume with Kubernetes?

1/28/2019

I've got a JupyterHub Kubernetes deployment.

When I create and attach a persistent volume (PV) it wipes out the home directory that is part of my image. It replaces it with an empty home directory where anything is written will be persisted as expected (that is fine).

How can I get the files from my image's home folder into the PV home folder?

Here is an example from the docs that unfortunately seems to only copy from the new PV (not the image):

singleuser:
  lifecycleHooks:
    postStart:
      exec:
        command: ["cp", "-a", "src", "target"]

Here is my singleuser configuration:

singleuser:
  image:
    name: myimage
    tag: latest
    pullPolicy: Always
  storage:
    capacity: 10Gi
    dynamic:
      storageClass: standard
-- yvanscher
docker
jupyterhub
kubernetes
persistent-volumes

1 Answer

1/28/2019

The above should work fine.

You are probably mounting the PV on your home directory that is the same home directory of the container. You can either mount the PV on a different directory and do the copy or create a new image where your data is not stored in your home directory. This is an example of how to use mountPath:

apiVersion: v1
kind: Pod
metadata:
  name: jypyterhuyb
  namespace: default
spec:
  volumes:
  - name: myvol
    ...
  containers:
  - name: jypyter
    image: "jypytercontainer"
    volumeMounts:
    - name: myvol
      mountPath: /mnt/mypath
-- Rico
Source: StackOverflow