apiVersion: apps/v1 kind: Deployment metadata: name: file-svc namespace: gooseek labels: app: file-svc app.kubernetes.io/name: file-svc app.kubernetes.io/part-of: gooseek spec: replicas: 2 selector: matchLabels: app: file-svc template: metadata: labels: app: file-svc spec: containers: - name: file-svc image: gooseek/backend:latest env: - name: SERVICE value: "file-svc" - name: PORT value: "3026" - name: FILE_STORAGE_PATH value: "/data/files" envFrom: - configMapRef: name: gooseek-config - secretRef: name: gooseek-secrets ports: - containerPort: 3026 name: http volumeMounts: - name: file-storage mountPath: /data/files livenessProbe: httpGet: path: /health port: 3026 initialDelaySeconds: 10 periodSeconds: 15 readinessProbe: httpGet: path: /ready port: 3026 initialDelaySeconds: 5 periodSeconds: 10 resources: requests: cpu: 200m memory: 256Mi limits: cpu: 1000m memory: 512Mi volumes: - name: file-storage persistentVolumeClaim: claimName: file-storage-pvc --- apiVersion: v1 kind: Service metadata: name: file-svc namespace: gooseek spec: type: ClusterIP selector: app: file-svc ports: - port: 3026 targetPort: 3026 name: http --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: file-storage-pvc namespace: gooseek spec: accessModes: - ReadWriteMany resources: requests: storage: 10Gi storageClassName: local-path