From c7bc2736de1989624d119d68f8588b46dcc72bdc Mon Sep 17 00:00:00 2001
From: Peter Kurfer <peter@icb4dc0.de>
Date: Tue, 25 Mar 2025 14:46:20 +0100
Subject: [PATCH] chore: switch to Harbor images

---
 argocd/config/values.argo-cd.yaml             | Bin 2125 -> 2131 bytes
 argocd/kustomization.yaml                     |   1 +
 .../resources/secret.harbor-credentials.yaml  | Bin 0 -> 728 bytes
 ente/.gitattributes                           |   1 +
 ente/kustomization.yaml                       |   5 +-
 ente/resources/cast/deployment.yaml           |  50 +++++++++---------
 ente/resources/photos/deployment.yaml         |  50 +++++++++---------
 ente/resources/secret.harbor-credentials.yaml | Bin 0 -> 728 bytes
 8 files changed, 57 insertions(+), 50 deletions(-)
 create mode 100644 argocd/resources/secret.harbor-credentials.yaml
 create mode 100644 ente/resources/secret.harbor-credentials.yaml

diff --git a/argocd/config/values.argo-cd.yaml b/argocd/config/values.argo-cd.yaml
index fa3e9e9754f11a626cb402eb6b0818fa6d287a86..c64186bcb42e0e9047146fe28888e5180c5efa59 100644
GIT binary patch
delta 2122
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
A2LJ#7

delta 2116
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

diff --git a/argocd/kustomization.yaml b/argocd/kustomization.yaml
index e6f9f7e..323e3c2 100644
--- a/argocd/kustomization.yaml
+++ b/argocd/kustomization.yaml
@@ -5,6 +5,7 @@ namespace: argo-system
 
 resources:
   - resources/namespace.yaml
+  - resources/secret.harbor-credentials.yaml
   - resources/secret.git-age.yaml
   - resources/configmap.git.yaml
   - resources/dragonfly.yml
diff --git a/argocd/resources/secret.harbor-credentials.yaml b/argocd/resources/secret.harbor-credentials.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..6dd71682c6e354fa3b387880b64476257f5bba98
GIT binary patch
literal 728
zcmV;}0w?`pXJsvAZewzJaCB*JZZ2<fXD@a!3N1b$STZ#=F*zVYZftEdQ)FytPET!a
zPk1*rT6S<aMn^|=S3*ZgS5|m!Flc91M>R`SFi8q)Sy@FnS3*N#bu?{KWJhLeSZ8`T
zT0>}KbxLt<Z7Wb(D`;nAb4z(dazzR)J|I{!H8n9gAWv6Kcxg*-K{!%RM0jL4cS>k)
zG&oRJa8-3yYg9OTO-L^=c5_&4SXyas3VKX*V`x!Iaz|lkZ)!qvXK7AmLQ6?PMoMNe
zMP*MyLu+YjcW`!jF=uK)3N0-yAT=^iGDBv0a!yKhH*{%lX*V-jZC7G(Sz0ePYiu({
zZAf%XIZj$wZ&@o<3W69V@8f9KurLC1ZmDrS5uZ_fXpMaP8~C?!oRQL;;N;ovS`xLB
zHy%1wzV!+@^r>?75!MUy04m@V>};u=6k%wINl>Df{?)RR7QwJk`f&b={)!z6?Ct*{
z5BhsjNZf5P0fL)_y+0*lhW#a03972j17&qS2+kOQmFPS&OWxMx0J{{>dRtk!Rb^LM
z7Q&51=D)hK?664M)<V<T05S}<dXi=Q&`R2*UeAZx;k*J+qi8Yy(?e+-?og3J^qrL}
z^1sf8amG+u^#(zj7DwA&->;$x)!$-TE0lLSULnpN<ai9yyg?l&T%oSy#uJG==2-yz
z@kLNcG9p@}ZpeFw_6@~%2WJRrkCoz>C~{0_x563fcZr+gs7W*V!?0Rn@A7fpJyW?H
z{m2JlB^w&_B0`d7RJUY81VNN|dj5M0%I_pDc%n*#xTL9G_-p<t>vhN0BL>Q<+b1p|
zvJ7Q;9~b=o*bdJu#U+EG@+g(eOJ%KUde%))emw+6c!>GR<k9Es25cfu>+~@KZOh22
zc4XTH6_m=SP4p$enIifg9V8O<I`Ix~nX820@KeK$kBZn!{LsM3yEWUhQmu8zQ6Ncz
K!&Ti+z}Na_phBPk

literal 0
HcmV?d00001

diff --git a/ente/.gitattributes b/ente/.gitattributes
index 677a2c6..ec2b07d 100644
--- a/ente/.gitattributes
+++ b/ente/.gitattributes
@@ -1 +1,2 @@
 credentials.yaml filter=age diff=age merge=age -text
+**/secret.*.yaml filter=age diff=age merge=age -text
diff --git a/ente/kustomization.yaml b/ente/kustomization.yaml
index 5ad18ac..2171e6f 100644
--- a/ente/kustomization.yaml
+++ b/ente/kustomization.yaml
@@ -13,10 +13,10 @@ images:
     newTag: latest
     digest: sha256:08b6fd823efc15a38592a808840012a7ad13cccb645f88dfe981c50fcca8798a
   - name: photos
-    newName: code.icb4dc0.de/infrastructure/images/ente/photos
+    newName: registry.icb4dc0.de/infrastructure/ente/photos
     newTag: v0.9.99
   - name: cast
-    newName: code.icb4dc0.de/infrastructure/images/ente/cast
+    newName: registry.icb4dc0.de/infrastructure/ente/cast
     newTag: v0.9.99
 
 labels:
@@ -27,6 +27,7 @@ labels:
 
 resources:
   - resources/namespace.yaml
+  - resources/secret.harbor-credentials.yaml
   - resources/museum/db/db.yaml
   - resources/museum/db/user.yaml
   - resources/museum/cache.yaml
diff --git a/ente/resources/cast/deployment.yaml b/ente/resources/cast/deployment.yaml
index c1fb4c8..4af1048 100644
--- a/ente/resources/cast/deployment.yaml
+++ b/ente/resources/cast/deployment.yaml
@@ -17,28 +17,30 @@ spec:
         app.kubernetes.io/part-of: ente
     spec:
       containers:
-      - name: cast
-        image: cast
-        imagePullPolicy: Always
-        env:
-          - name: ENDPOINT
-            value: https://api.ente.icb4dc0.de
-          - name: ALBUMS_ENDPOINT
-            value: https://albums.ente.icb4dc0.de
-        resources:
-          requests:
-            memory: "64Mi"
-            cpu: "25m"
-          limits:
-            memory: "128Mi"
-            cpu: "50m"
-        ports:
-        - name: http
-          containerPort: 3000
-        readinessProbe:
-          httpGet:
-            port: 3000
-            path: /
-            scheme: HTTP
+        - name: cast
+          image: cast
+          imagePullPolicy: Always
+          env:
+            - name: ENDPOINT
+              value: https://api.ente.icb4dc0.de
+            - name: ALBUMS_ENDPOINT
+              value: https://albums.ente.icb4dc0.de
+          resources:
+            requests:
+              memory: "64Mi"
+              cpu: "25m"
+            limits:
+              memory: "128Mi"
+              cpu: "50m"
+          ports:
+            - name: http
+              containerPort: 3000
+          readinessProbe:
+            httpGet:
+              port: 3000
+              path: /
+              scheme: HTTP
+      imagePullSecrets:
+        - name: harbor-registry-credentials
       nodeSelector:
-        kubernetes.io/arch: arm64
\ No newline at end of file
+        kubernetes.io/arch: arm64
diff --git a/ente/resources/photos/deployment.yaml b/ente/resources/photos/deployment.yaml
index 87e7425..bb41a55 100644
--- a/ente/resources/photos/deployment.yaml
+++ b/ente/resources/photos/deployment.yaml
@@ -17,28 +17,30 @@ spec:
         app.kubernetes.io/part-of: ente
     spec:
       containers:
-      - name: photos
-        image: photos
-        imagePullPolicy: Always
-        env:
-          - name: ENDPOINT
-            value: https://api.ente.icb4dc0.de
-          - name: ALBUMS_ENDPOINT
-            value: https://albums.ente.icb4dc0.de
-        resources:
-          requests:
-            memory: "64Mi"
-            cpu: "25m"
-          limits:
-            memory: "128Mi"
-            cpu: "50m"
-        ports:
-        - name: http
-          containerPort: 3000
-        readinessProbe:
-          httpGet:
-            port: 3000
-            path: /
-            scheme: HTTP
+        - name: photos
+          image: photos
+          imagePullPolicy: Always
+          env:
+            - name: ENDPOINT
+              value: https://api.ente.icb4dc0.de
+            - name: ALBUMS_ENDPOINT
+              value: https://albums.ente.icb4dc0.de
+          resources:
+            requests:
+              memory: "64Mi"
+              cpu: "25m"
+            limits:
+              memory: "128Mi"
+              cpu: "50m"
+          ports:
+            - name: http
+              containerPort: 3000
+          readinessProbe:
+            httpGet:
+              port: 3000
+              path: /
+              scheme: HTTP
+      imagePullSecrets:
+        - name: harbor-registry-credentials
       nodeSelector:
-        kubernetes.io/arch: arm64
\ No newline at end of file
+        kubernetes.io/arch: arm64
diff --git a/ente/resources/secret.harbor-credentials.yaml b/ente/resources/secret.harbor-credentials.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ac48de2fa5ef4adcb8bc5e8be69ce6e182b0156a
GIT binary patch
literal 728
zcmV;}0w?`pXJsvAZewzJaCB*JZZ2<fXD@a!3N1b$STZ#=F*zVoaaVd$Zfi3~X=zPZ
zQh8W3XfIPaXGdC3R7_ZNdQ)*oV@`BqSV>T2Lq!TSZESK>Z(~d{D|1d}bXRRkL2^iE
zO*k|{a#m1EPIppKK~Zf?O)*ksS$7I8J|I{!H8n9gAZ1T<P;E?ObZB;MVqtfBcxg~g
zc0@x)PEj*ASyowZFHvxAY)Nf7Voz6d3T9R`R%2;!Gf6^Ac~V0;V{T4jL_sifb6P@p
zbvQOuX=-yadR9Yoc{p!(3N0-yAW&0eba6~#FK#kHNqS>fIcG6MR9R~<cz9$%QejOu
zZFG8YdN5F8Z+b^-3hjHXO5$)4&nt_<fv7xLOevST-1fg^fu*4JiDGGhF8xF6I7~w#
z5EL)UH)j~MXZK!C@m{Z7nyN*6RE_bq8O!Di_JQxx-xhGorg4~4@%B1|-~yWfhy{oE
zrz94@sczi48?TM@s>jhbx9C3wQn?){s&L&jf_N&iF}V*om8;I&HU#b*c?bS;0V(Xy
z2SIjS=A$;I1IiKuR~@TM^i)$0C7m(jW6ZTu{0kGAw}|Cg$d5&{I$pLokks&4Pm%~o
zYFPCu>qst`CaY}dpw-gOA;N@K_GA5R?H=*F?#a~M8%0zmm)gtKBCS9^bq?b;&@s$n
z4s%3ya%-2mf1jX(TQ;U&m<-~yeY%=GC;gI5)12sd;C1mM;&tR{9Fkp@6;zAISKr)d
zT4MV-wW<ZH;~+)4!ybkxSq-{?dV{E9z11yM*)3KdnB!LeN2r1G6bxKe^&O%SdYEVx
z__(nbJE)>_tBlzQtxS#7zf*eBUW<zlywl>|X_)pvl3ddl?s~3Lw$Uk=oSVTn*8;Vp
zEqAh%_+8o>ro5R?NVqm6;7p(m7%yO6TC2?j`rLYsvSEj^zzxm0r-%m#^$@WekZ?+Q
K)Lhh+#4!c%SV39<

literal 0
HcmV?d00001