diff --git a/clusters/cl01tl/manifests/garage/Deployment-garage-main.yaml b/clusters/cl01tl/manifests/garage/Deployment-garage-main.yaml index 29743a868..6c5b95951 100644 --- a/clusters/cl01tl/manifests/garage/Deployment-garage-main.yaml +++ b/clusters/cl01tl/manifests/garage/Deployment-garage-main.yaml @@ -54,8 +54,6 @@ spec: subPath: garage.toml - mountPath: /var/lib/garage/data name: data - - mountPath: /var/lib/garage/meta - name: db - mountPath: /var/lib/garage/snapshots name: snapshots - envFrom: @@ -76,8 +74,6 @@ spec: subPath: garage.toml - mountPath: /var/lib/garage/data name: data - - mountPath: /var/lib/garage/meta - name: db - mountPath: /var/lib/garage/snapshots name: snapshots volumes: @@ -87,9 +83,6 @@ spec: - name: data persistentVolumeClaim: claimName: garage-data - - name: db - persistentVolumeClaim: - claimName: garage-db - name: snapshots persistentVolumeClaim: claimName: garage-snapshots diff --git a/clusters/cl01tl/manifests/garage/ExternalSecret-garage-db-backup-secret-remote.yaml b/clusters/cl01tl/manifests/garage/ExternalSecret-garage-db-backup-secret-remote.yaml new file mode 100644 index 000000000..7a6668774 --- /dev/null +++ b/clusters/cl01tl/manifests/garage/ExternalSecret-garage-db-backup-secret-remote.yaml @@ -0,0 +1,58 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: garage-db-backup-secret-remote + namespace: garage + labels: + helm.sh/chart: volsync-target-db-0.7.0 + app.kubernetes.io/instance: garage + app.kubernetes.io/part-of: garage + app.kubernetes.io/version: "0.7.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: garage-db-backup-secret-remote +spec: + secretStoreRef: + kind: ClusterSecretStore + name: vault + target: + template: + mergePolicy: Merge + engineVersion: v2 + data: + RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/garage/garage-db" + data: + - secretKey: BUCKET_ENDPOINT + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /volsync/restic/garage-remote + metadataPolicy: None + property: BUCKET_ENDPOINT + - secretKey: RESTIC_PASSWORD + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /volsync/restic/garage-remote + metadataPolicy: None + property: RESTIC_PASSWORD + - secretKey: AWS_DEFAULT_REGION + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /garage/home-infra/volsync-backups + metadataPolicy: None + property: ACCESS_REGION + - secretKey: AWS_ACCESS_KEY_ID + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /garage/home-infra/volsync-backups + metadataPolicy: None + property: ACCESS_KEY_ID + - secretKey: AWS_SECRET_ACCESS_KEY + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /garage/home-infra/volsync-backups + metadataPolicy: None + property: ACCESS_SECRET_KEY diff --git a/clusters/cl01tl/manifests/garage/PersistentVolumeClaim-garage-db.yaml b/clusters/cl01tl/manifests/garage/PersistentVolumeClaim-garage-db.yaml index b19f4c0b4..8cdfd078a 100644 --- a/clusters/cl01tl/manifests/garage/PersistentVolumeClaim-garage-db.yaml +++ b/clusters/cl01tl/manifests/garage/PersistentVolumeClaim-garage-db.yaml @@ -1,19 +1,12 @@ -kind: PersistentVolumeClaim apiVersion: v1 +kind: PersistentVolumeClaim metadata: name: garage-db - labels: - app.kubernetes.io/instance: garage - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: garage - helm.sh/chart: garage-4.5.0 - annotations: - helm.sh/resource-policy: keep namespace: garage spec: accessModes: - - "ReadWriteOnce" + - ReadWriteOnce resources: requests: - storage: "50Gi" - storageClassName: "ceph-block" + storage: 50Gi + storageClassName: ceph-block diff --git a/clusters/cl01tl/manifests/garage/ReplicationDestination-garage-db.yaml b/clusters/cl01tl/manifests/garage/ReplicationDestination-garage-db.yaml new file mode 100644 index 000000000..00e023f0e --- /dev/null +++ b/clusters/cl01tl/manifests/garage/ReplicationDestination-garage-db.yaml @@ -0,0 +1,16 @@ +apiVersion: volsync.backube/v1alpha1 +kind: ReplicationDestination +metadata: + name: garage-db + namespace: garage + labels: + app.kubernetes.io/name: garage-db + app.kubernetes.io/instance: garage + app.kubernetes.io/part-of: garage +spec: + trigger: + manual: restore-once + restic: + repository: garage-db-backup-secret-external + destinationPVC: garage-db + copyMethod: Direct diff --git a/clusters/cl01tl/manifests/garage/ReplicationSource-garage-db-backup-source-external.yaml b/clusters/cl01tl/manifests/garage/ReplicationSource-garage-db-backup-source-external.yaml index 32a05682d..f2d43a628 100644 --- a/clusters/cl01tl/manifests/garage/ReplicationSource-garage-db-backup-source-external.yaml +++ b/clusters/cl01tl/manifests/garage/ReplicationSource-garage-db-backup-source-external.yaml @@ -26,4 +26,4 @@ spec: copyMethod: Snapshot storageClassName: ceph-block volumeSnapshotClassName: ceph-blockpool-snapshot - cacheCapacity: 1Gi + cacheCapacity: 10Gi diff --git a/clusters/cl01tl/manifests/garage/ReplicationSource-garage-db-backup-source-remote.yaml b/clusters/cl01tl/manifests/garage/ReplicationSource-garage-db-backup-source-remote.yaml new file mode 100644 index 000000000..088703090 --- /dev/null +++ b/clusters/cl01tl/manifests/garage/ReplicationSource-garage-db-backup-source-remote.yaml @@ -0,0 +1,29 @@ +apiVersion: volsync.backube/v1alpha1 +kind: ReplicationSource +metadata: + name: garage-db-backup-source-remote + namespace: garage + labels: + helm.sh/chart: volsync-target-db-0.7.0 + app.kubernetes.io/instance: garage + app.kubernetes.io/part-of: garage + app.kubernetes.io/version: "0.7.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: garage-db-backup +spec: + sourcePVC: garage-db + trigger: + schedule: 20 10 * * * + restic: + pruneIntervalDays: 7 + repository: garage-db-backup-secret-remote + retain: + daily: 7 + hourly: 0 + monthly: 3 + weekly: 4 + yearly: 1 + copyMethod: Snapshot + storageClassName: ceph-block + volumeSnapshotClassName: ceph-blockpool-snapshot + cacheCapacity: 10Gi diff --git a/clusters/cl01tl/manifests/volsync/Deployment-volsync.yaml b/clusters/cl01tl/manifests/volsync/Deployment-volsync.yaml index 370621990..ad4013e18 100644 --- a/clusters/cl01tl/manifests/volsync/Deployment-volsync.yaml +++ b/clusters/cl01tl/manifests/volsync/Deployment-volsync.yaml @@ -10,7 +10,7 @@ metadata: app.kubernetes.io/version: "0.14.0" app.kubernetes.io/managed-by: Helm spec: - replicas: 0 + replicas: 2 selector: matchLabels: control-plane: volsync-controller