Kubernetes allows to easily mount volumes based on a path on the node. This can be useful in local development as tools like Docker Desktop make it convenient to spin up a Kubernetes cluster on your local machine.
apiVersion: apps/v1 kind: Deployment spec: ... template: spec: containers: image: alpine:latest volumeMounts: - mountPath: /secrets name: secrets-volume volumes: - name: secrets-volume hostPath: path: ???
But when you are using Kubernetes with Docker Desktop on WSL2 on a Windows machine, the above can become tricky as many paths will not behave as expected.
After failing to mount regular paths - both inside and outside WSL2, I condensed a long google search into finding that paths under
/mnt/wsl are available to be used when referenced as
Consider the following example: We want to mount the file
secret.env from a local WSL2 folder into a Kubernetes pod. To do so, we first create the file locally:
mkdir /mnt/wsl/secrets echo "thisissecretdata" > /mnt/wsl/secrets/secret.env
We then mount this via the
... spec: containers: image: alpine:latest volumeMounts: - mountPath: /secrets name: secrets-volume volumes: - name: secrets-volume hostPath: path: /run/desktop/mnt/host/wsl/secrets
Now inside our pod, we can access the file at
/secrets/secret.env and will get the data originally stored in
Top comments (0)