apiVersion: batch/v1 kind: Job metadata: name: immich-db-storage-prepare annotations: argocd.argoproj.io/hook: PreSync argocd.argoproj.io/hook-delete-policy: BeforeHookCreation,HookSucceeded spec: backoffLimit: 3 template: spec: restartPolicy: OnFailure nodeSelector: kubernetes.io/hostname: music containers: - name: prepare image: docker.io/busybox:1.37.0 command: [sh, -ec, "mkdir -p /storage/postgresql; chown 26:26 /storage/postgresql; chmod 0700 /storage/postgresql"] securityContext: runAsUser: 0 allowPrivilegeEscalation: false volumeMounts: - name: storage mountPath: /storage volumes: - name: storage hostPath: path: /data/k8s/immich type: DirectoryOrCreate --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: immich-local annotations: argocd.argoproj.io/sync-options: Prune=false provisioner: kubernetes.io/no-provisioner volumeBindingMode: WaitForFirstConsumer reclaimPolicy: Retain --- apiVersion: v1 kind: PersistentVolume metadata: name: immich-postgres-music labels: immich.hexor.cy/volume: postgres annotations: argocd.argoproj.io/sync-options: Prune=false spec: capacity: storage: 55Gi volumeMode: Filesystem accessModes: [ReadWriteOnce] persistentVolumeReclaimPolicy: Retain storageClassName: immich-local local: path: /data/k8s/immich/postgresql nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: [music]