Mercurial > code > home > repos > photoprism
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 |