diff deploy.yaml @ 0:1e65c0f57ff6

start
author drewp@bigasterisk.com
date Mon, 06 Dec 2021 22:34:49 -0800
parents
children 9dc67ae8b507
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deploy.yaml	Mon Dec 06 22:34:49 2021 -0800
@@ -0,0 +1,99 @@
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: photoprism-storage
+  labels: { type: local }
+spec:
+  storageClassName: manual
+  hostPath: { path: "/opt/photoprism/storage" }
+  capacity: { storage: 5Gi }
+  accessModes: ["ReadWriteOnce"]
+  persistentVolumeReclaimPolicy: Retain
+  claimRef: { namespace: default, name: photoprism-storage }
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: photoprism-originals
+  labels: { type: local }
+spec:
+  storageClassName: manual
+  hostPath: { path: "/my/pic/phonecam" }
+  capacity: { storage: 5Gi }
+  accessModes: ["ReadWriteOnce"]
+  persistentVolumeReclaimPolicy: Retain
+  claimRef: { namespace: default, name: photoprism-originals }
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata: { name: photoprism-storage }
+spec:
+  storageClassName: ""
+  volumeName: "photoprism-storage"
+  accessModes: ["ReadWriteOnce"]
+  resources: { requests: { storage: 5Gi } }
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata: { name: photoprism-originals }
+spec:
+  storageClassName: ""
+  volumeName: "photoprism-originals"
+  accessModes: ["ReadWriteOnce"]
+  resources: { requests: { storage: 5Gi } }
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: photoprism
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: photoprism
+  template:
+    metadata:
+      labels:
+        app: photoprism
+    spec:
+      volumes:
+        - { name: photoprism-storage, persistentVolumeClaim: { claimName: photoprism-storage } }
+        - { name: photoprism-originals, persistentVolumeClaim: { claimName: photoprism-originals } }
+      containers:
+        - name: photoprism
+          image: photoprism/photoprism
+          env:
+            - { name: PHOTOPRISM_UPLOAD_NSFW, value: "true" }
+            - { name: PHOTOPRISM_READONLY, value: "true" }
+            - { name: PHOTOPRISM_LOG_LEVEL, value: "info" }
+            - { name: PHOTOPRISM_SITE_URL, value: "https://bigasterisk.com/photoprism/" }
+          ports:
+            - containerPort: 2342
+          volumeMounts:
+            - { name: photoprism-storage, mountPath: "/photoprism/storage" }
+            - { name: photoprism-originals, mountPath: "/photoprism/originals" }
+          resources:
+            limits:
+              # tensorflow analysis goes to like 1200Mi
+              memory: 2500Mi
+
+      affinity:
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+              - matchExpressions:
+                  - key: "kubernetes.io/hostname"
+                    operator: In
+                    values: ["bang"]
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: photoprism
+spec:
+  type: LoadBalancer
+  ports:
+    - { port: 80, targetPort: 2342 }
+  selector:
+    app: photoprism