yvanscher
yvanscher

Reputation: 1049

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

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

Upvotes: 5

Views: 6496

Answers (1)

Rico
Rico

Reputation: 61661

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

Upvotes: 4

Related Questions