From a089f8da9c3316cd7a52f250c081471579f538cc Mon Sep 17 00:00:00 2001 From: Nick Adam Date: Thu, 15 Jan 2026 15:02:18 +0100 Subject: [PATCH] feat: add seaweedfs s3 storage on top of longhorn --- infrastructure/seaweedfs-app.yaml | 23 ++++++++++ infrastructure/seaweedfs/Chart.yaml | 10 ++++ infrastructure/seaweedfs/values.yaml | 68 ++++++++++++++++++++++++++++ 3 files changed, 101 insertions(+) create mode 100644 infrastructure/seaweedfs-app.yaml create mode 100644 infrastructure/seaweedfs/Chart.yaml create mode 100644 infrastructure/seaweedfs/values.yaml diff --git a/infrastructure/seaweedfs-app.yaml b/infrastructure/seaweedfs-app.yaml new file mode 100644 index 0000000..6903b9b --- /dev/null +++ b/infrastructure/seaweedfs-app.yaml @@ -0,0 +1,23 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: seaweedfs + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "2" +spec: + project: default + source: + repoURL: https://git.cloud-infra.prod.openmailserver.de/stabify/gitops.git + targetRevision: HEAD + path: infrastructure/seaweedfs + destination: + server: https://kubernetes.default.svc + namespace: seaweedfs + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true + - ServerSideApply=true diff --git a/infrastructure/seaweedfs/Chart.yaml b/infrastructure/seaweedfs/Chart.yaml new file mode 100644 index 0000000..56c37cb --- /dev/null +++ b/infrastructure/seaweedfs/Chart.yaml @@ -0,0 +1,10 @@ +apiVersion: v2 +name: seaweedfs-bootstrap +description: Wrapper chart for SeaweedFS +type: application +version: 1.0.0 +appVersion: "3.59" +dependencies: + - name: seaweedfs + version: 3.59.0 + repository: https://seaweedfs.github.io/seaweedfs/helm diff --git a/infrastructure/seaweedfs/values.yaml b/infrastructure/seaweedfs/values.yaml new file mode 100644 index 0000000..ed4fcad --- /dev/null +++ b/infrastructure/seaweedfs/values.yaml @@ -0,0 +1,68 @@ +seaweedfs: + image: + registry: docker.io + repository: chrislusf/seaweedfs + tag: 3.59 + + # Volume Server (Speicher) + volume: + replicas: 3 + data: + type: persistentVolumeClaim + size: 10Gi # Startgröße pro Volume Server + storageClass: longhorn + resources: + requests: + cpu: 100m + memory: 256Mi + limits: + memory: 1024Mi + + # Master Server (Metadaten) + master: + replicas: 3 + resources: + requests: + cpu: 50m + memory: 128Mi + limits: + memory: 512Mi + + # Filer (Dateisystem + S3 Gateway) + filer: + replicas: 2 # High Availability + resources: + requests: + cpu: 100m + memory: 256Mi + ingress: + enabled: true + className: traefik + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod + hosts: + - host: filer.seaweedfs.apps.internal.k3s.stabify.de + paths: + - / + tls: + - secretName: seaweedfs-filer-tls + hosts: + - filer.seaweedfs.apps.internal.k3s.stabify.de + + # S3 API (separater Service oder via Filer) + s3: + enabled: true + replicas: 2 + ingress: + enabled: true + className: traefik + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod + hosts: + - host: s3.apps.internal.k3s.stabify.de + paths: + - / + tls: + - secretName: seaweedfs-s3-tls + hosts: + - s3.apps.internal.k3s.stabify.de