I have a StatefulSet which looks like this
apiVersion: v1
kind: StatefulSet
metadata:
name: web
spec:
...
volumeClaimTemplates:
— metadata:
name: www
spec:
resources:
requests:
storage: 1GiIt will create a PersistentVolumeClaim (PVC) and a PersistentVolume (PV) for each Pod of a Service it controls.
I want to execute some commands on those PVs before the Pod creation.
I was thinking to create a Job which mounts those PVs and runs the commands but how do I know how many of PVs were created?
Is there a kubernetes-native solution to trigger some pod execution on PV creation?
The solution is InitContianer.
You can add it to a spec of your StatufulSet:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
...
spec:
initContainers:
- name: init-myapp
image: ubuntu:latest
command:
- bash
- "-c"
- "your command"
volumeMounts:
- name: yourvolume
mountPath: /mnt/myvolume