blob: 43575c27203b5ec3a3ab78a6cb3154fe9b9be1cc [file] [log] [blame]
Matthias Andreas Benkardc7560352021-09-05 12:25:13 +02001---
2apiVersion: apps/v1
3kind: Deployment
4metadata:
5 name: git
6 namespace: mulk
7 labels:
8 name: git
9 k8s-app: git
10spec:
11 replicas: 1
12 selector:
13 matchLabels:
14 k8s-app: git
15 name: git
16 template:
17 metadata:
18 labels:
19 name: git
20 k8s-app: git
21 spec:
Matthias Andreas Benkardc7560352021-09-05 12:25:13 +020022 containers:
Matthias Andreas Benkardfaf5a092024-03-06 12:51:07 +010023 - name: cgit
24 image: docker.io/woahbase/alpine-cgit:latest
Matthias Andreas Benkardc7560352021-09-05 12:25:13 +020025 imagePullPolicy: Always
26 env: []
Matthias Andreas Benkardfaf5a092024-03-06 12:51:07 +010027 command:
28 - /bin/sh
29 - -c
30 - apk update && apk add groff python3 py3-docutils py3-markdown py3-pygments && /init
Matthias Andreas Benkardc7560352021-09-05 12:25:13 +020031 resources:
32 limits:
33 cpu: 2000m
34 memory: 100Mi
35 requests:
36 cpu: 10m
37 memory: 50Mi
38 ports:
39 - containerPort: 80
40 name: cgit-http
41 protocol: TCP
42 volumeMounts:
43 - name: data
44 mountPath: /home/git
45 - name: config
46 mountPath: /etc/cgitrc
47 subPath: cgitrc
48 readOnly: true
49 volumes:
50 - name: data
51 persistentVolumeClaim:
52 claimName: git-data
53 - name: config
54 configMap:
55 name: git-config
56---
57apiVersion: v1
58kind: Service
59metadata:
60 name: git-cgit
61 namespace: mulk
62 labels:
63 k8s-app: git
64 name: git-cgit
65spec:
66 selector:
67 k8s-app: git
68 type: ClusterIP
69 ports:
70 - name: http
71 port: 80
72 targetPort: cgit-http
73 protocol: TCP
74---
75apiVersion: v1
76kind: Service
77metadata:
78 name: git-gitolite
79 namespace: mulk
80 labels:
81 k8s-app: git
82 name: git-gitolite
83spec:
84 selector:
85 k8s-app: git
86 type: ClusterIP
87 ports:
88 - name: ssh
89 port: 22
90 targetPort: gitolite-ssh
91 protocol: TCP
92---
93apiVersion: v1
94kind: PersistentVolumeClaim
95metadata:
96 name: git-data
97 namespace: mulk
98 labels:
99 name: git-data
100 k8s-app: git
101spec:
102 accessModes:
103 - ReadWriteOnce
104 resources:
105 requests:
106 storage: 200Gi
107 storageClassName: local-path
108---
109apiVersion: networking.k8s.io/v1
110kind: Ingress
111metadata:
112 name: git-cgit-cgi
113 namespace: mulk
114 annotations:
115 cert-manager.io/cluster-issuer: letsencrypt-prod
116 kubernetes.io/ingress.class: nginx
117 nginx.ingress.kubernetes.io/rewrite-target: /cgit/cgit.cgi/$1$2
118spec:
119 rules:
120 - host: git.benkard.de
121 http:
122 paths:
123 - backend:
124 service:
125 name: git-cgit
126 port:
127 number: 80
128 path: /(.*)[.]git(/.*)?$
129 pathType: ImplementationSpecific
130 - backend:
131 service:
132 name: git-cgit
133 port:
134 number: 80
135 path: /(.*)(.*)?$
136 pathType: ImplementationSpecific
137 tls:
138 - hosts:
139 - git.benkard.de
140 secretName: git-cgit-cgi-tls
141---
142apiVersion: networking.k8s.io/v1
143kind: Ingress
144metadata:
145 name: git-cgit-assets
146 namespace: mulk
147 annotations:
148 cert-manager.io/cluster-issuer: letsencrypt-prod
149 kubernetes.io/ingress.class: nginx
150 nginx.ingress.kubernetes.io/rewrite-target: /cgit/$1
151spec:
152 rules:
153 - host: static.git.benkard.de
154 http:
155 paths:
156 - backend:
157 service:
158 name: git-cgit
159 port:
160 number: 80
161 path: /(.*)
162 pathType: ImplementationSpecific
163 tls:
164 - hosts:
165 - static.git.benkard.de
166 secretName: git-cgit-assets-tls
167---
168apiVersion: v1
169kind: ConfigMap
170metadata:
171 name: git-config
172 namespace: mulk
173data:
174 cgitrc: |-
175 css=https://static.git.benkard.de/cgit.css
176 logo=https://static.git.benkard.de/cgit.png
177
178 remove-suffix=1
179 enable-commit-graph=1
180 enable-index-links=1
181 enable-log-filecount=1
182 enable-log-linecount=1
183 enable-git-config=1
184 case-sensitive-sort=0
185
186 virtual-root=https://git.benkard.de/
187
188 #cache-size=10000
189 #cache-root=/var/cache/cgit
190
191 # needs Pygments
192 #source-filter=/usr/lib/cgit/filters/syntax-highlighting.py
193
194 about-filter=/usr/lib/cgit/filters/about-formatting.sh
195
196 clone-url=https://git.benkard.de/$CGIT_REPO_URL
197
198 readme=:README.md
199 readme=:README.markdown
200 readme=:README.html
201 readme=:README.txt
202 readme=:README
203
204 project-list=/home/git/projects.list
205 scan-path=/home/git/repositories/
206
207 #
Matthias Andreas Benkard7d78f7f2021-12-28 17:44:20 +0100208
209---
210
211apiVersion: batch/v1
212kind: CronJob
213
214metadata:
215 name: git-github-replication
216 namespace: mulk
217 labels: &labels
218 k8s-app: git
219
220spec:
221 schedule: "*/120 * * * *"
Matthias Andreas Benkardcbdcd902022-12-27 15:31:15 +0100222 concurrencyPolicy: Forbid
Matthias Andreas Benkard7d78f7f2021-12-28 17:44:20 +0100223
224 jobTemplate:
225
226 spec:
227 ttlSecondsAfterFinished: 3600
228
229 template:
230 metadata:
231 name: git-github-replication
232 labels: *labels
233
234 spec:
235 restartPolicy: OnFailure
236
237 volumes:
238 - name: github-secrets
239 secret:
240 secretName: github-secrets
Matthias Andreas Benkard11298da2023-04-02 18:27:17 +0200241 defaultMode: 0444
Matthias Andreas Benkard7d78f7f2021-12-28 17:44:20 +0100242 - name: data
243 persistentVolumeClaim:
244 claimName: git-data
245
246 containers:
247 - name: master
248 image: buildpack-deps:scm
Matthias Andreas Benkard11298da2023-04-02 18:27:17 +0200249 securityContext:
250 runAsUser: 100
251 runAsGroup: 101
Matthias Andreas Benkard7d78f7f2021-12-28 17:44:20 +0100252 command:
253 - bash
254 - -c
255 - |
256 for x in \
Matthias Andreas Benkard06e9d792024-03-06 12:49:24 +0100257 .github \
258 aendggner \
Matthias Andreas Benkard7d78f7f2021-12-28 17:44:20 +0100259 aquifer \
260 benki \
261 cellspp \
262 cl-json-template \
263 cl-mulkutils \
264 cl-protocols \
265 cljssss-g \
Matthias Andreas Benkard06e9d792024-03-06 12:49:24 +0100266 demos \
Matthias Andreas Benkard7d78f7f2021-12-28 17:44:20 +0100267 fibers \
268 hellonet \
Matthias Andreas Benkard06e9d792024-03-06 12:49:24 +0100269 hello-world-ng \
Matthias Andreas Benkard7d78f7f2021-12-28 17:44:20 +0100270 instadump \
Matthias Andreas Benkard11298da2023-04-02 18:27:17 +0200271 jgvariant \
Matthias Andreas Benkard7d78f7f2021-12-28 17:44:20 +0100272 json-template-r6rs \
273 json-template-racket \
274 json-template-typed-racket \
Matthias Andreas Benkard06e9d792024-03-06 12:49:24 +0100275 kubeia \
Matthias Andreas Benkard7d78f7f2021-12-28 17:44:20 +0100276 logikorr \
277 mulkcms \
Matthias Andreas Benkard11298da2023-04-02 18:27:17 +0200278 mulkcms2 \
Matthias Andreas Benkard7d78f7f2021-12-28 17:44:20 +0100279 mulkjournal \
280 mulklib \
Matthias Andreas Benkard11298da2023-04-02 18:27:17 +0200281 mulkontainers \
Matthias Andreas Benkard7d78f7f2021-12-28 17:44:20 +0100282 mulkrypt-for-racket \
283 mulkyid \
284 objective-cl \
Matthias Andreas Benkard11298da2023-04-02 18:27:17 +0200285 quarkus-googlecloud-jsonlogging \
Matthias Andreas Benkard06e9d792024-03-06 12:49:24 +0100286 renovate-config \
287 rust-samples \
288 rust-tutorial \
289 sb-eval2 \
Matthias Andreas Benkard7d78f7f2021-12-28 17:44:20 +0100290 toilet
291 do
Matthias Andreas Benkard06e9d792024-03-06 12:49:24 +0100292 if ! test -e "/git/repositories/mulk/$x.git"; then
293 continue
294 fi
295
Matthias Andreas Benkard7d78f7f2021-12-28 17:44:20 +0100296 cd "/git/repositories/mulk/$x.git"
Matthias Andreas Benkarde96ddfb2024-03-06 12:50:00 +0100297
298 for branch in master main
299 do
300 git fetch "https://gitlab.benkard.de/mulk/${x}.git" "$branch:$branch" && \
301 ( git push "ssh://mulk@gerrit.benkard.de:29418/${x}.git" "$branch"; \
302 git push "git@github.com:benkard/${x}.git" "$branch" )
303 done
Matthias Andreas Benkard7d78f7f2021-12-28 17:44:20 +0100304 done
305 true
Matthias Andreas Benkard11298da2023-04-02 18:27:17 +0200306 env:
307 - name: HOME
308 value: /nonexistent
Matthias Andreas Benkard7d78f7f2021-12-28 17:44:20 +0100309 resources:
310 limits:
311 memory: 100Mi
312 requests:
313 cpu: 20m
314 memory: 100Mi
315 volumeMounts:
316 - name: github-secrets
Matthias Andreas Benkard11298da2023-04-02 18:27:17 +0200317 mountPath: /nonexistent/.ssh
Matthias Andreas Benkard7d78f7f2021-12-28 17:44:20 +0100318 readOnly: true
319 - name: data
320 mountPath: /git