--- # yaml-language-server: $schema=https://ks.hsn.dev/external-secrets.io/externalsecret_v1beta1.json apiVersion: external-secrets.io/v1beta1 kind: ExternalSecret metadata: name: "${APP}-volsync" spec: secretStoreRef: kind: ClusterSecretStore name: onepassword-connect target: name: "${APP}-volsync-secret" template: engineVersion: v2 data: RESTIC_REPOSITORY: "/repository/${APP}" RESTIC_PASSWORD: "{{ .RESTIC_PASSWORD }}" dataFrom: - extract: key: volsync-template --- # yaml-language-server: $schema=https://ks.hsn.dev/volsync.backube/replicationsource_v1alpha1.json apiVersion: volsync.backube/v1alpha1 kind: ReplicationSource metadata: name: "${APP}" spec: sourcePVC: "${APP}" trigger: schedule: "0 * * * *" restic: copyMethod: "${VOLSYNC_COPYMETHOD:-Snapshot}" pruneIntervalDays: 7 repository: "${APP}-volsync-secret" volumeSnapshotClassName: "${VOLSYNC_SNAPSHOTCLASS:-csi-ceph-blockpool}" cacheCapacity: "${VOLSYNC_CACHE_CAPACITY:-4Gi}" cacheStorageClassName: "${VOLSYNC_CACHE_SNAPSHOTCLASS:-openebs-hostpath}" cacheAccessModes: ["${VOLSYNC_CACHE_ACCESSMODES:-ReadWriteOnce}"] storageClassName: "${VOLSYNC_STORAGECLASS:-ceph-block}" accessModes: ["${VOLSYNC_ACCESSMODES:-ReadWriteOnce}"] moverSecurityContext: runAsUser: ${VOLSYNC_PUID:-568} runAsGroup: ${VOLSYNC_PGID:-568} fsGroup: ${VOLSYNC_PGID:-568} retain: hourly: 24 daily: 14 --- # yaml-language-server: $schema=https://ks.hsn.dev/volsync.backube/replicationdestination_v1alpha1.json apiVersion: volsync.backube/v1alpha1 kind: ReplicationDestination metadata: name: "${APP}-dst" spec: trigger: manual: restore-once restic: repository: "${APP}-volsync-secret" copyMethod: Snapshot volumeSnapshotClassName: "${VOLSYNC_SNAPSHOTCLASS:-csi-ceph-blockpool}" cacheStorageClassName: "${VOLSYNC_CACHE_SNAPSHOTCLASS:-openebs-hostpath}" cacheAccessModes: ["${VOLSYNC_CACHE_ACCESSMODES:-ReadWriteOnce}"] cacheCapacity: "${VOLSYNC_CACHE_CAPACITY:-8Gi}" storageClassName: "${VOLSYNC_STORAGECLASS:-ceph-block}" accessModes: ["${VOLSYNC_ACCESSMODES:-ReadWriteOnce}"] capacity: "${VOLSYNC_CAPACITY}" moverSecurityContext: runAsUser: ${VOLSYNC_PUID:-568} runAsGroup: ${VOLSYNC_PGID:-568} fsGroup: ${VOLSYNC_PGID:-568} enableFileDeletion: true cleanupCachePVC: true cleanupTempPVC: true