Files
k3s/argocd/apps/seaweedfs/seaweedfs.yaml
2025-08-28 10:34:21 +02:00

225 lines
5.9 KiB
YAML

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: seaweedfs
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: default
source:
repoURL: 'https://seaweedfs.github.io/seaweedfs/helm'
chart: seaweedfs
targetRevision: 4.*.*
helm:
values: |
# Global Konfiguration
global:
enableSecurity: true
monitoring:
enabled: true
imagePullPolicy: IfNotPresent
# Master Konfiguration
master:
replicas: 3
data:
type: "persistentVolumeClaim"
size: "25Gi"
storageClass: ""
logs:
type: "persistentVolumeClaim"
size: "5Gi"
# Master Service
service:
type: ClusterIP
ports:
http: 9333
grpc: 19333
# Master Ingress
ingress:
enabled: true
className: "traefik"
annotations:
traefik.ingress.kubernetes.io/router.tls: "true"
cert-manager.io/cluster-issuer: "lets-encrypt"
traefik.ingress.kubernetes.io/router.entrypoints: "websecure"
traefik.ingress.kubernetes.io/router.middlewares: "seaweedfs-cors@kubernetescrd"
hosts:
- host: "seaweed.innovation-hub-niedersachsen.de"
paths:
- path: "/"
pathType: "Prefix"
tls:
- secretName: "seaweed.innovation-hub-niedersachsen.de-tls"
hosts:
- "seaweed.innovation-hub-niedersachsen.de"
# Volume Server Konfiguration
volume:
replicas: 3
data:
type: "persistentVolumeClaim"
size: "100Gi"
storageClass: ""
idx:
type: "persistentVolumeClaim"
size: "10Gi"
storageClass: ""
service:
type: ClusterIP
ports:
http: 8080
grpc: 18080
# Filer Konfiguration
filer:
replicas: 2
data:
type: "persistentVolumeClaim"
size: "25Gi"
storageClass: ""
logs:
type: "persistentVolumeClaim"
size: "5Gi"
# Filer Service
service:
type: ClusterIP
ports:
http: 8888
grpc: 18888
# Filer Store Konfiguration - LevelDB (empfohlen)
store:
type: "leveldb"
leveldb:
# LevelDB speichert Daten im filer data volume
enabled: true
# Falls Sie weiterhin MySQL/MariaDB verwenden möchten:
# mysql:
# enabled: false
# hostname: ""
# port: 3306
# username: ""
# password: ""
# database: ""
# Optional: Filer Ingress (für Web UI)
ingress:
enabled: false
# S3 Gateway Konfiguration
s3:
enabled: true
replicas: 2
# S3 Authentifizierung
auth:
enabled: true
adminUser: "wjpKrmaqXra99rX3D61H"
adminPassword: "fTPi0u0FR6Lv9Y9IKydWv6WM0EA5XrsK008HCt9u"
# S3 Service
service:
type: ClusterIP
ports:
http: 8333
# S3 Konfiguration
config:
logLevel: 4
# S3 Ingress
ingress:
enabled: true
className: "traefik"
annotations:
traefik.ingress.kubernetes.io/router.tls: "true"
cert-manager.io/cluster-issuer: "lets-encrypt"
traefik.ingress.kubernetes.io/router.entrypoints: "websecure"
traefik.ingress.kubernetes.io/router.middlewares: "seaweedfs-cors@kubernetescrd,seaweedfs-stripprefix@kubernetescrd"
hosts:
- host: "sws3.innovation-hub-niedersachsen.de"
paths:
- path: "/"
pathType: "Prefix"
tls:
- secretName: "sws3.innovation-hub-niedersachsen.de-tls"
hosts:
- "sws3.innovation-hub-niedersachsen.de"
# WebDAV (optional - standardmäßig deaktiviert)
webdav:
enabled: false
# Mount (optional - für FUSE Mount)
mount:
enabled: false
# CORS Konfiguration
cors:
enabled: true
allowedOrigins:
- "*"
allowedMethods:
- "GET"
- "POST"
- "PUT"
- "DELETE"
- "HEAD"
- "OPTIONS"
allowedHeaders:
- "*"
# Resource Limits (optional)
resources:
master:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
volume:
limits:
cpu: 1000m
memory: 1Gi
requests:
cpu: 200m
memory: 256Mi
filer:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
s3:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
# Node Affinity (optional)
nodeSelector: {}
tolerations: []
affinity: {}
destination:
server: 'https://kubernetes.default.svc'
namespace: seaweedfs
syncPolicy:
managedNamespaceMetadata:
labels:
pod-security.kubernetes.io/enforce: "privileged"
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true