Files
k3s/argocd/apps/seaweedfs/seaweedfs.yaml
2025-08-28 12:43:30 +02:00

236 lines
6.3 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: 1
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: 2
data:
type: "persistentVolumeClaim"
size: "100Gi"
storageClass: ""
idx:
type: "persistentVolumeClaim"
size: "10Gi"
storageClass: ""
service:
type: ClusterIP
ports:
http: 8080
grpc: 18080
# Filer Konfiguration
filer:
replicas: 1 # Reduziert für einfachere Installation
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
# Optional: Filer Ingress (für Web UI)
ingress:
enabled: false
# S3 Gateway Konfiguration
s3:
enabled: true
replicas: 1
# S3 Authentifizierung
auth:
enabled: true
existingConfigSecret: "seaweedfs-s3-config"
# S3 Service - explizit HTTP
service:
type: ClusterIP
ports:
http: 8333
# S3 Args - minimal HTTP setup
args:
- "-port=8333"
- "-filer=seaweedfs-filer-client.seaweedfs:8888"
- "-v=4"
# Environment Variablen
env:
- name: WEED_S3_PORT
value: "8333"
- name: WEED_S3_HTTPS_PORT
value: "0"
# S3 Konfiguration
config:
logLevel: 4
# Explizit HTTP-Port setzen, HTTPS deaktivieren
port: 8333
httpsPort: 0
cert: ""
key: ""
# 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"
# Backend explizit auf HTTP setzen
traefik.ingress.kubernetes.io/service.serversscheme: "http"
traefik.ingress.kubernetes.io/service.port: "8333"
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