diff --git a/clusters/cl01tl/helm/garage/Chart.lock b/clusters/cl01tl/helm/garage/Chart.lock index adc087ebb..4364864bb 100644 --- a/clusters/cl01tl/helm/garage/Chart.lock +++ b/clusters/cl01tl/helm/garage/Chart.lock @@ -2,8 +2,5 @@ dependencies: - name: app-template repository: https://bjw-s-labs.github.io/helm-charts/ version: 4.5.0 -- name: volsync-target - repository: oci://harbor.alexlebens.net/helm-charts - version: 0.7.0 -digest: sha256:e1042088193503be3e0de1df8a682f7454851032eba55b9be5cf3f4e48834514 -generated: "2025-12-27T13:30:25.860097-06:00" +digest: sha256:36e920ce6efee3b33b40641652f814c888ae3c50272895ef286fb8236a010924 +generated: "2025-12-27T16:57:42.31991-06:00" diff --git a/clusters/cl01tl/helm/garage/templates/external-secret.yaml b/clusters/cl01tl/helm/garage/templates/external-secret.yaml index bfaab0ad4..238fdb23b 100644 --- a/clusters/cl01tl/helm/garage/templates/external-secret.yaml +++ b/clusters/cl01tl/helm/garage/templates/external-secret.yaml @@ -33,56 +33,3 @@ spec: key: /cl01tl/garage/token metadataPolicy: None property: metric - -# --- -# apiVersion: external-secrets.io/v1 -# kind: ExternalSecret -# metadata: -# name: garage-db-backup-secret-remote -# namespace: garage -# spec: -# data: -# - remoteRef: -# conversionStrategy: Default -# decodingStrategy: None -# key: /volsync/restic/garage-remote -# metadataPolicy: None -# property: BUCKET_ENDPOINT -# secretKey: BUCKET_ENDPOINT -# - remoteRef: -# conversionStrategy: Default -# decodingStrategy: None -# key: /volsync/restic/garage-remote -# metadataPolicy: None -# property: RESTIC_PASSWORD -# secretKey: RESTIC_PASSWORD -# - remoteRef: -# conversionStrategy: Default -# decodingStrategy: None -# key: /garage/home-infra/volsync-backups -# metadataPolicy: None -# property: ACCESS_REGION -# secretKey: AWS_DEFAULT_REGION -# - remoteRef: -# conversionStrategy: Default -# decodingStrategy: None -# key: /garage/home-infra/volsync-backups -# metadataPolicy: None -# property: ACCESS_KEY_ID -# secretKey: AWS_ACCESS_KEY_ID -# - remoteRef: -# conversionStrategy: Default -# decodingStrategy: None -# key: /garage/home-infra/volsync-backups -# metadataPolicy: None -# property: ACCESS_SECRET_KEY -# secretKey: AWS_SECRET_ACCESS_KEY -# secretStoreRef: -# kind: ClusterSecretStore -# name: vault -# target: -# template: -# data: -# RESTIC_REPOSITORY: "{{ `{{ .BUCKET_ENDPOINT }}` }}/garage/garage-db" -# engineVersion: v2 -# mergePolicy: Merge diff --git a/clusters/cl01tl/helm/garage/templates/persistent-volume-claim.yaml b/clusters/cl01tl/helm/garage/templates/persistent-volume-claim.yaml deleted file mode 100644 index 198d8add2..000000000 --- a/clusters/cl01tl/helm/garage/templates/persistent-volume-claim.yaml +++ /dev/null @@ -1,12 +0,0 @@ -# apiVersion: v1 -# kind: PersistentVolumeClaim -# metadata: -# name: garage-db -# namespace: garage -# spec: -# accessModes: -# - ReadWriteOnce -# resources: -# requests: -# storage: 50Gi -# storageClassName: ceph-block diff --git a/clusters/cl01tl/helm/garage/templates/replication-destination.yaml b/clusters/cl01tl/helm/garage/templates/replication-destination.yaml deleted file mode 100644 index 8671f8943..000000000 --- a/clusters/cl01tl/helm/garage/templates/replication-destination.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# apiVersion: volsync.backube/v1alpha1 -# kind: ReplicationDestination -# metadata: -# name: garage-db -# namespace: {{ .Release.Namespace }} -# labels: -# app.kubernetes.io/name: garage-db -# app.kubernetes.io/instance: {{ .Release.Name }} -# app.kubernetes.io/part-of: {{ .Release.Name }} -# spec: -# trigger: -# manual: restore-once -# restic: -# repository: garage-db-backup-secret-remote -# destinationPVC: garage-db -# copyMethod: Direct diff --git a/clusters/cl01tl/helm/garage/values.yaml b/clusters/cl01tl/helm/garage/values.yaml index ab37f76c3..7f3211924 100644 --- a/clusters/cl01tl/helm/garage/values.yaml +++ b/clusters/cl01tl/helm/garage/values.yaml @@ -1,6 +1,6 @@ garage: controllers: - main: + server-1: type: deployment replicas: 1 strategy: Recreate @@ -18,18 +18,42 @@ garage: requests: cpu: 10m memory: 128Mi - debug: + server-2: + type: deployment + replicas: 1 + strategy: Recreate + revisionHistoryLimit: 3 + containers: + main: image: - repository: ubuntu - tag: resolute-20251208 + repository: dxflrs/garage + tag: v2.1.0 pullPolicy: IfNotPresent - command: - - "sleep" - - "infinity" + envFrom: + - secretRef: + name: garage-token-secret resources: requests: cpu: 10m - memory: 32Mi + memory: 128Mi + server-3: + type: deployment + replicas: 1 + strategy: Recreate + revisionHistoryLimit: 3 + containers: + main: + image: + repository: dxflrs/garage + tag: v2.1.0 + pullPolicy: IfNotPresent + envFrom: + - secretRef: + name: garage-token-secret + resources: + requests: + cpu: 10m + memory: 128Mi webui: type: deployment replicas: 1 @@ -60,7 +84,7 @@ garage: enabled: true data: garage.toml: | - replication_factor = 1 + replication_factor = 3 metadata_dir = "/var/lib/garage/meta" data_dir = "/var/lib/garage/data" @@ -90,8 +114,49 @@ garage: api_bind_addr = "[::]:3903" metrics_require_token = true service: - main: - controller: main + server-1: + forceRename: garage-main + controller: server-1 + ports: + s3: + port: 3900 + targetPort: 3900 + protocol: HTTP + rpc: + port: 3901 + targetPort: 3901 + protocol: HTTP + web: + port: 3902 + targetPort: 3902 + protocol: HTTP + admin: + port: 3903 + targetPort: 3903 + protocol: HTTP + server-2: + forceRename: garage-2 + controller: server-2 + ports: + s3: + port: 3900 + targetPort: 3900 + protocol: HTTP + rpc: + port: 3901 + targetPort: 3901 + protocol: HTTP + web: + port: 3902 + targetPort: 3902 + protocol: HTTP + admin: + port: 3903 + targetPort: 3903 + protocol: HTTP + server-3: + forceRename: garage-3 + controller: server-3 ports: s3: port: 3900 @@ -178,13 +243,20 @@ garage: type: configMap name: garage advancedMounts: - main: + server-1: main: - path: /etc/garage.toml readOnly: true mountPropagation: None subPath: garage.toml - debug: + server-2: + main: + - path: /etc/garage.toml + readOnly: true + mountPropagation: None + subPath: garage.toml + server-3: + main: - path: /etc/garage.toml readOnly: true mountPropagation: None @@ -195,46 +267,83 @@ garage: readOnly: true mountPropagation: None subPath: garage.toml - db: + db-1: forceRename: garage-db storageClass: ceph-block accessMode: ReadWriteOnce size: 50Gi retain: true advancedMounts: - main: + server-1: main: - path: /var/lib/garage/meta readOnly: false - debug: - - path: /var/lib/garage/meta - readOnly: false - data: + # db-2: + # forceRename: garage-db-2 + # storageClass: ceph-block + # accessMode: ReadWriteOnce + # size: 50Gi + # retain: true + # advancedMounts: + # server-2: + # main: + # - path: /var/lib/garage/meta + # readOnly: false + # db-3: + # forceRename: garage-db-3 + # storageClass: ceph-block + # accessMode: ReadWriteOnce + # size: 50Gi + # retain: true + # advancedMounts: + # server-3: + # main: + # - path: /var/lib/garage/meta + # readOnly: false + data-1: + forceRename: garage-data storageClass: synology-iscsi-delete accessMode: ReadWriteOnce size: 800Gi retain: true advancedMounts: - main: + server-1: main: - path: /var/lib/garage/data readOnly: false - debug: - - path: /var/lib/garage/data - readOnly: false + # data-2: + # forceRename: garage-data-2 + # storageClass: synology-iscsi-delete + # accessMode: ReadWriteOnce + # size: 800Gi + # retain: true + # advancedMounts: + # server-2: + # main: + # - path: /var/lib/garage/data + # readOnly: false + # data-3: + # forceRename: garage-data-3 + # storageClass: synology-iscsi-delete + # accessMode: ReadWriteOnce + # size: 800Gi + # retain: true + # advancedMounts: + # server-3: + # main: + # - path: /var/lib/garage/data + # readOnly: false snapshots: + forceRename: garage-snapshots storageClass: synology-iscsi-delete accessMode: ReadWriteOnce size: 50Gi retain: true advancedMounts: - main: + server-1: main: - path: /var/lib/garage/snapshots readOnly: false - debug: - - path: /var/lib/garage/snapshots - readOnly: false volsync-target-db: pvcTarget: garage-db local: