# infrastructure/longhorn/core/vault-sync-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: longhorn-vault-sync namespace: longhorn-system spec: replicas: 1 selector: matchLabels: app: longhorn-vault-sync template: metadata: labels: app: longhorn-vault-sync spec: serviceAccountName: longhorn-vault-sync nodeSelector: node-role.kubernetes.io/worker: "true" affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 80 preference: matchExpressions: - key: hardware operator: In values: ["rpi5", "rpi4"] containers: - name: sync image: alpine:3.20 command: ["/bin/sh", "-c"] args: - "sleep infinity" volumeMounts: - name: vault-secrets mountPath: /vault/secrets readOnly: true volumes: - name: vault-secrets csi: driver: secrets-store.csi.k8s.io readOnly: true volumeAttributes: secretProviderClass: longhorn-vault