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: tolerations: - key: "node-role.kubernetes.io/control-plane" operator: "Exists" effect: "NoSchedule" - key: "node-role.kubernetes.io/master" operator: "Exists" effect: "NoSchedule" 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 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: synology-iscsi selector: matchLabels: synology.storage/role: garage synology.storage/volume: d001