comparison deploy.yaml @ 1:9dc67ae8b507

update
author drewp@bigasterisk.com
date Sat, 14 Jan 2023 18:18:35 -0800
parents 1e65c0f57ff6
children 781290b4a683
comparison
equal deleted inserted replaced
0:1e65c0f57ff6 1:9dc67ae8b507
1 ---
2 apiVersion: v1 1 apiVersion: v1
3 kind: PersistentVolume 2 kind: PersistentVolume
4 metadata: 3 metadata:
5 name: photoprism-storage 4 name: photoprism-storage
6 labels: { type: local } 5 labels: { type: local }
7 spec: 6 spec:
8 storageClassName: manual 7 storageClassName: manual
9 hostPath: { path: "/opt/photoprism/storage" } 8 hostPath: { path: "/d4/photoprism" }
10 capacity: { storage: 5Gi } 9 capacity: { storage: 5Gi }
11 accessModes: ["ReadWriteOnce"] 10 accessModes: ["ReadWriteOnce"]
12 persistentVolumeReclaimPolicy: Retain 11 persistentVolumeReclaimPolicy: Retain
13 claimRef: { namespace: default, name: photoprism-storage } 12 claimRef: { namespace: default, name: photoprism-storage }
13
14 --- 14 ---
15 apiVersion: v1 15 apiVersion: v1
16 kind: PersistentVolume 16 kind: PersistentVolume
17 metadata: 17 metadata:
18 name: photoprism-originals 18 name: photoprism-originals
19 labels: { type: local } 19 labels: { type: local }
20 spec: 20 spec:
21 storageClassName: manual 21 storageClassName: manual
22 hostPath: { path: "/my/pic/phonecam" } 22 hostPath: { path: "/my/pic" }
23 capacity: { storage: 5Gi } 23 capacity: { storage: 5Gi }
24 accessModes: ["ReadWriteOnce"] 24 accessModes: ["ReadWriteOnce"]
25 persistentVolumeReclaimPolicy: Retain 25 persistentVolumeReclaimPolicy: Retain
26 claimRef: { namespace: default, name: photoprism-originals } 26 claimRef: { namespace: default, name: photoprism-originals }
27
27 --- 28 ---
28 apiVersion: v1 29 apiVersion: v1
29 kind: PersistentVolumeClaim 30 kind: PersistentVolumeClaim
30 metadata: { name: photoprism-storage } 31 metadata: { name: photoprism-storage }
31 spec: 32 spec:
32 storageClassName: "" 33 storageClassName: ""
33 volumeName: "photoprism-storage" 34 volumeName: "photoprism-storage"
34 accessModes: ["ReadWriteOnce"] 35 accessModes: ["ReadWriteOnce"]
35 resources: { requests: { storage: 5Gi } } 36 resources: { requests: { storage: 5Gi } }
37
36 --- 38 ---
37 apiVersion: v1 39 apiVersion: v1
38 kind: PersistentVolumeClaim 40 kind: PersistentVolumeClaim
39 metadata: { name: photoprism-originals } 41 metadata: { name: photoprism-originals }
40 spec: 42 spec:
41 storageClassName: "" 43 storageClassName: ""
42 volumeName: "photoprism-originals" 44 volumeName: "photoprism-originals"
43 accessModes: ["ReadWriteOnce"] 45 accessModes: ["ReadWriteOnce"]
44 resources: { requests: { storage: 5Gi } } 46 resources: { requests: { storage: 5Gi } }
47
45 --- 48 ---
46 apiVersion: apps/v1 49 apiVersion: apps/v1
47 kind: Deployment 50 kind: Deployment
48 metadata: 51 metadata:
49 name: photoprism 52 name: photoprism
54 app: photoprism 57 app: photoprism
55 template: 58 template:
56 metadata: 59 metadata:
57 labels: 60 labels:
58 app: photoprism 61 app: photoprism
62 annotations:
63 prometheus.io/scrape: "false"
59 spec: 64 spec:
60 volumes: 65 volumes:
61 - { name: photoprism-storage, persistentVolumeClaim: { claimName: photoprism-storage } } 66 - { name: photoprism-storage, persistentVolumeClaim: { claimName: photoprism-storage } }
62 - { name: photoprism-originals, persistentVolumeClaim: { claimName: photoprism-originals } } 67 - { name: photoprism-originals, persistentVolumeClaim: { claimName: photoprism-originals } }
68 - { name: run-mysqld, emptyDir: {}}
63 containers: 69 containers:
64 - name: photoprism 70 - name: photoprism
65 image: photoprism/photoprism 71 # https://github.com/photoprism/photoprism/releases
72 image: docker.io/photoprism/photoprism:221118-jammy
66 env: 73 env:
67 - { name: PHOTOPRISM_UPLOAD_NSFW, value: "true" } 74 - { name: PHOTOPRISM_UPLOAD_NSFW, value: "true" }
68 - { name: PHOTOPRISM_READONLY, value: "true" } 75 - { name: PHOTOPRISM_READONLY, value: "true" }
69 - { name: PHOTOPRISM_LOG_LEVEL, value: "info" } 76 - { name: PHOTOPRISM_LOG_LEVEL, value: "info" }
70 - { name: PHOTOPRISM_SITE_URL, value: "https://bigasterisk.com/photoprism/" } 77 - { name: PHOTOPRISM_SITE_URL, value: "https://bigasterisk.com/photoprism/" }
78 - { name: PHOTOPRISM_AUTH_MODE, value: "public" }
79 - { name: PHOTOPRISM_WORKERS, value: "4" }
80
81 - { name: PHOTOPRISM_DISABLE_WEBDAV, value: "true" }
82 - { name: PHOTOPRISM_DISABLE_CLASSIFICATION, value: "true" }
83 - { name: PHOTOPRISM_DISABLE_RAW, value: "true" }
84 - { name: PHOTOPRISM_JPEG_SIZE, value: "720" }
85 - { name: PHOTOPRISM_THUMB_SIZE, value: "720" }
86
87 - { name: PHOTOPRISM_DATABASE_DRIVER, value: "mysql" }
88 - { name: PHOTOPRISM_DATABASE_SERVER, value: "/run/mysqld/mysqld.sock" }
89 - { name: PHOTOPRISM_DATABASE_NAME, value: "photoprism" }
90 - { name: PHOTOPRISM_DATABASE_USER, value: "photoprism" }
91 - { name: PHOTOPRISM_DATABASE_PASSWORD, value: "insecure" }
92
71 ports: 93 ports:
72 - containerPort: 2342 94 - containerPort: 2342
73 volumeMounts: 95 volumeMounts:
74 - { name: photoprism-storage, mountPath: "/photoprism/storage" } 96 - { name: photoprism-storage, mountPath: "/photoprism/storage" }
75 - { name: photoprism-originals, mountPath: "/photoprism/originals" } 97 - { name: photoprism-originals, mountPath: "/photoprism/originals" }
98 - { name: run-mysqld, mountPath: "/run/mysqld" }
76 resources: 99 resources:
77 limits: 100 limits:
78 # tensorflow analysis goes to like 1200Mi 101 # tensorflow analysis goes to like 1200Mi
79 memory: 2500Mi 102 memory: 2500Mi
80 103 - name: mariadb
104 image: docker.io/mariadb:10.10.2
105 securityContext:
106 runAsUser: 1000
107 # let https://github.com/MariaDB/mariadb-docker/blob/749c720c63306d1572849afc6ab1cfa02fd08338/10.8/docker-entrypoint.sh
108 # do the startup. We could write to /etc/mysql/mariadb.conf.d if we really needed to config things.
109 # command: suggested from photoprism docs
110 # - mysqld
111 # - --innodb-buffer-pool-size=512M
112 # - --transaction-isolation=READ-COMMITTED
113 # - --character-set-server=utf8mb4
114 # - --collation-server=utf8mb4_unicode_ci
115 # - --max-connections=512
116 # - --innodb-rollback-on-timeout=OFF
117 # - --innodb-lock-wait-timeout=120
118 volumeMounts:
119 - { name: photoprism-storage, subPath: "mariadb", mountPath: "/var/lib/mysql" }
120 - { name: run-mysqld, mountPath: "/run/mysqld" }
121 env:
122 - { name: MARIADB_AUTO_UPGRADE, value: "1" }
123 - { name: MARIADB_INITDB_SKIP_TZINFO, value: "1" }
124 - { name: MARIADB_DATABASE, value: "photoprism" }
125 - { name: MARIADB_USER, value: "photoprism" }
126 - { name: MARIADB_PASSWORD, value: "insecure" }
127 - { name: MARIADB_ROOT_PASSWORD, value: "insecure" }
81 affinity: 128 affinity:
82 nodeAffinity: 129 nodeAffinity:
83 requiredDuringSchedulingIgnoredDuringExecution: 130 requiredDuringSchedulingIgnoredDuringExecution:
84 nodeSelectorTerms: 131 nodeSelectorTerms:
85 - matchExpressions: 132 - matchExpressions:
86 - key: "kubernetes.io/hostname" 133 - key: "kubernetes.io/hostname"
87 operator: In 134 operator: In
88 values: ["bang"] 135 values: ["bang"]
136
89 --- 137 ---
90 apiVersion: v1 138 apiVersion: v1
91 kind: Service 139 kind: Service
92 metadata: 140 metadata:
93 name: photoprism 141 name: photoprism