# Garage StatefulSet — GKE Autopilot / GCP (k8s mode) # Uses garage-hdd (pd-standard HDD CSI) for low-cost block storage — avoids SSD_TOTAL_GB quota. # No synology selectors, no k3s/k3d node tolerations, explicit resource requests for Autopilot. apiVersion: apps/v1 kind: StatefulSet metadata: name: garage labels: app: garage spec: serviceName: garage replicas: 1 selector: matchLabels: app: garage template: metadata: labels: app: garage spec: containers: - name: garage image: dxflrs/garage:v1.3.1 imagePullPolicy: IfNotPresent command: - /garage args: - server env: - name: GARAGE_ALLOW_WORLD_READABLE_SECRETS value: "true" ports: - name: s3 containerPort: 3900 - name: rpc containerPort: 3901 - name: admin containerPort: 3903 resources: requests: cpu: "250m" memory: "512Mi" limits: cpu: "1000m" memory: "1Gi" readinessProbe: tcpSocket: port: s3 initialDelaySeconds: 5 periodSeconds: 10 livenessProbe: tcpSocket: port: s3 initialDelaySeconds: 20 periodSeconds: 20 volumeMounts: - name: config mountPath: /etc/garage.toml subPath: garage.toml readOnly: true - name: secrets mountPath: /var/lib/garage/secrets readOnly: true - name: data mountPath: /var/lib/garage volumes: - name: config configMap: name: garage-config - name: secrets secret: secretName: garage-secrets volumeClaimTemplates: - metadata: name: data spec: accessModes: - ReadWriteOnce resources: requests: storage: 29Gi storageClassName: garage-hdd