From 026ca9c3916eb931c37ebe3406ca7264c11d7151 Mon Sep 17 00:00:00 2001 From: Karan Parashar Date: Wed, 9 Sep 2026 01:23:19 +0530 Subject: [PATCH] feat(apps): Replace seaweedfs with garage --- apps/{seaweedfs => garage}/kustomization.yaml | 3 +- apps/garage/sealed-secret.yaml | 12 +++ apps/seaweedfs/httproute-filer.yaml | 27 ------ apps/seaweedfs/httproute-master.yaml | 27 ------ argocd-apps/services/garage.yaml | 84 +++++++++++++++++++ argocd-apps/services/kustomization.yaml | 2 +- argocd-apps/services/seaweedfs.yaml | 36 -------- 7 files changed, 98 insertions(+), 93 deletions(-) rename apps/{seaweedfs => garage}/kustomization.yaml (59%) create mode 100644 apps/garage/sealed-secret.yaml delete mode 100644 apps/seaweedfs/httproute-filer.yaml delete mode 100644 apps/seaweedfs/httproute-master.yaml create mode 100644 argocd-apps/services/garage.yaml delete mode 100644 argocd-apps/services/seaweedfs.yaml diff --git a/apps/seaweedfs/kustomization.yaml b/apps/garage/kustomization.yaml similarity index 59% rename from apps/seaweedfs/kustomization.yaml rename to apps/garage/kustomization.yaml index 1b52afe..f0dcaa2 100644 --- a/apps/seaweedfs/kustomization.yaml +++ b/apps/garage/kustomization.yaml @@ -1,5 +1,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - httproute-filer.yaml - - httproute-master.yaml + - sealed-secret.yaml diff --git a/apps/garage/sealed-secret.yaml b/apps/garage/sealed-secret.yaml new file mode 100644 index 0000000..7076e19 --- /dev/null +++ b/apps/garage/sealed-secret.yaml @@ -0,0 +1,12 @@ +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + name: garage-secrets + namespace: garage +spec: + encryptedData: + rpcSecret: AgDWvOoSUADQx+cExTUDmk6/BWR8a7U5HRGf+T38P24FrP4DJiKl3GJ3Ce9a3eF7SqO/1TXiaN80+c4NX0dMEmnaS8III2Zbaa7x/rOHP608Vh1z2Nnxly11X10okVy+Qym9O5/oA3cue2bu6K3eG8W38mn3hCA9kWC6g9OiAwjBTxJXYmsUFYbj69Iloo9moBBLEtztu8T9vYu8rGqcchKzzjnvcS91kiduq9rY9/ZvYC4zx469DgnV/di8cjGdU6JAtsoHwggDtCVf2hvkyOIHTyPM9Y/EVGCsOsIzhJnTdsyRGn4su3ruLmS8VqbKC22Q86pSHjwdlD5RoZJjYtMWr5Q5YAvFbnTH9/+d0r363BfxlNsVkINd5d2OwlPpagEQ9pg4oFnnk48tsVEoYz1RCy9x/bK3U4B0Jin6l0T2NJ3umXPriLxBQbODWVA9vcv6G1tQiiuOsbYCWigoxe3ACpuYQDV+XujfmEZr3pcIw0hwKXtUWHI079aUkICcMEbtE3gLc1dNVQpja1SimZOUlqf6pz3YLv6L1e2X+yR93p2rN6hc8IJh3KA8ZR1Ymbbq2LaOwdyla50uuhsOkE2TGDTGmf9NyXjGcUys5LgNpRruzXEm/KgUX4tP7iMjHu5HbnDe9oiv66qfuIORiR2P3lbOdx3s+XmPd/87afw6YHA896ccCRkGpGnFanbrR+Z7MRqCOZsSLnQd1JpjnWJJU/bzrSl4q+PUV1Bt+hvAf8wXUrDtES6MdpOKUe4XW8s3QbVHvCx1iOSzP+r59T4N + template: + metadata: + name: garage-secrets + namespace: garage diff --git a/apps/seaweedfs/httproute-filer.yaml b/apps/seaweedfs/httproute-filer.yaml deleted file mode 100644 index e14867f..0000000 --- a/apps/seaweedfs/httproute-filer.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: gateway.networking.k8s.io/v1 -kind: HTTPRoute -metadata: - annotations: - argocd.argoproj.io/sync-wave: "1" - name: seaweedfs-filer - namespace: seaweedfs -spec: - hostnames: - - seaweedfs.whyredfire.dev - parentRefs: - - group: gateway.networking.k8s.io - kind: Gateway - name: traefik-gateway - namespace: traefik - sectionName: websecure - rules: - - backendRefs: - - group: "" - kind: Service - name: seaweedfs-all-in-one - port: 8888 - weight: 1 - matches: - - path: - type: PathPrefix - value: / diff --git a/apps/seaweedfs/httproute-master.yaml b/apps/seaweedfs/httproute-master.yaml deleted file mode 100644 index fbc1f6f..0000000 --- a/apps/seaweedfs/httproute-master.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: gateway.networking.k8s.io/v1 -kind: HTTPRoute -metadata: - annotations: - argocd.argoproj.io/sync-wave: "1" - name: seaweedfs-master - namespace: seaweedfs -spec: - hostnames: - - seaweedfs-master.whyredfire.dev - parentRefs: - - group: gateway.networking.k8s.io - kind: Gateway - name: traefik-gateway - namespace: traefik - sectionName: websecure - rules: - - backendRefs: - - group: "" - kind: Service - name: seaweedfs-all-in-one - port: 9333 - weight: 1 - matches: - - path: - type: PathPrefix - value: / diff --git a/argocd-apps/services/garage.yaml b/argocd-apps/services/garage.yaml new file mode 100644 index 0000000..331fad2 --- /dev/null +++ b/argocd-apps/services/garage.yaml @@ -0,0 +1,84 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + annotations: + argocd.argoproj.io/sync-wave: "3" + name: garage + namespace: argocd +spec: + destination: + namespace: garage + server: https://kubernetes.default.svc + project: default + sources: + - repoURL: https://git.deuxfleurs.fr/Deuxfleurs/garage.git + targetRevision: v2.4.1 + path: script/helm/garage + helm: + values: | + garage: + singleNode: true + existingRpcSecret: garage-secrets + noClusterRole: true + # No discovery or website listener is needed for standalone S3. + garageTomlString: | + metadata_dir = "/mnt/meta" + data_dir = "/mnt/data" + db_engine = "sqlite" + metadata_fsync = true + data_fsync = true + replication_factor = 1 + rpc_bind_addr = "127.0.0.1:3901" + rpc_public_addr = "127.0.0.1:3901" + rpc_secret = "__RPC_SECRET_REPLACE__" + + [s3_api] + s3_region = "garage" + api_bind_addr = "0.0.0.0:3900" + + [admin] + api_bind_addr = "0.0.0.0:3903" + metrics_require_token = true + image: + repository: dxflrs/garage + initImage: + tag: "1.37.0" + persistence: + meta: + storageClass: local-path + size: 1Gi + data: + storageClass: local-path + size: 9Gi + podSecurityContext: + seccompProfile: + type: RuntimeDefault + securityContext: + allowPrivilegeEscalation: false + readinessProbe: + httpGet: + path: /health + port: admin + timeoutSeconds: 3 + livenessProbe: + tcpSocket: + port: s3-api + initialDelaySeconds: 60 + periodSeconds: 20 + timeoutSeconds: 3 + resources: + requests: + cpu: 100m + memory: 256Mi + limits: + memory: 1Gi + - path: apps/garage + repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git + targetRevision: main + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true + - ServerSideApply=true diff --git a/argocd-apps/services/kustomization.yaml b/argocd-apps/services/kustomization.yaml index 3d0b53d..a3d4f09 100644 --- a/argocd-apps/services/kustomization.yaml +++ b/argocd-apps/services/kustomization.yaml @@ -3,9 +3,9 @@ kind: Kustomization resources: - autoregexbot.yaml - betterslcm.yaml + - garage.yaml - jellyfin.yaml - legislative-summarization.yaml - qbit.yaml - scriptscribe.yaml - - seaweedfs.yaml - stirling-pdf.yaml diff --git a/argocd-apps/services/seaweedfs.yaml b/argocd-apps/services/seaweedfs.yaml deleted file mode 100644 index b293b95..0000000 --- a/argocd-apps/services/seaweedfs.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - annotations: - argocd.argoproj.io/sync-wave: "3" - name: seaweedfs - namespace: argocd -spec: - destination: - namespace: seaweedfs - server: https://kubernetes.default.svc - project: default - sources: - - chart: seaweedfs - helm: - values: | - allInOne: - enabled: true - master: - enabled: false - volume: - enabled: false - filer: - enabled: false - repoURL: https://seaweedfs.github.io/seaweedfs/helm - targetRevision: 4.33.0 - - path: apps/seaweedfs - repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git - targetRevision: main - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true