This commit is contained in:
Emma Ruby 2025-05-26 16:25:27 -05:00
parent 57b8fce3d7
commit e84838ced2
18 changed files with 188 additions and 36 deletions

View File

@ -32,4 +32,4 @@ spec:
volumes:
- name: mirror-pvc
persistentVolumeClaim:
claimName: mirror-almalinux-zfs
claimName: zfs-mirror-almalinux

View File

@ -32,4 +32,4 @@ spec:
volumes:
- name: mirror-pvc
persistentVolumeClaim:
claimName: mirror-arch
claimName: zfs-mirror-arch

View File

@ -32,4 +32,4 @@ spec:
volumes:
- name: mirror-pvc
persistentVolumeClaim:
claimName: mirror-rockylinux
claimName: zfs-mirror-rockylinux

View File

@ -0,0 +1,35 @@
apiVersion: batch/v1
kind: CronJob
metadata:
name: mirrorupdate-torproject
namespace: default
spec:
schedule: "35 */6 * * *"
successfulJobsHistoryLimit: 0
failedJobsHistoryLimit: 0
concurrencyPolicy: Forbid
jobTemplate:
spec:
template:
spec:
containers:
- name: mirrorupdate-torproject
imagePullPolicy: Always
image: ghcr.io/0xemma/mirror-updater:v2.0.0
env:
- name: TARGET
value: /ext/mirror/
- name: SOURCE
value: rsync://rsync.torproject.org/website-mirror/
- name: LASTUPDATE
value: http://rsync.repo.torproject.org/torproject/timestamp.txt
- name: FIRST
value: "no"
volumeMounts:
- name: mirror-pvc
mountPath: /ext/mirror/
restartPolicy: OnFailure
volumes:
- name: mirror-pvc
persistentVolumeClaim:
claimName: mirror-torproject

View File

@ -73,10 +73,10 @@ spec:
claimName: mirror-kali-images
- name: arch
persistentVolumeClaim:
claimName: mirror-arch
claimName: zfs-mirror-arch
- name: alma
persistentVolumeClaim:
claimName: mirror-almalinux-zfs
claimName: zfs-mirror-almalinux
- name: parrot
persistentVolumeClaim:
claimName: mirror-parrot-zfs
@ -88,5 +88,5 @@ spec:
claimName: mirror-blackarch-zfs
- name: rockylinux
persistentVolumeClaim:
claimName: mirror-rockylinux
claimName: zfs-mirror-rockylinux
restartPolicy: Always

View File

@ -56,4 +56,4 @@ spec:
volumes:
- name: mirror-pvc
persistentVolumeClaim:
claimName: mirror-almalinux-zfs
claimName: zfs-mirror-almalinux

View File

@ -9,7 +9,7 @@ spec:
- match: Host(`mirror.0xem.ma`) && PathPrefix(`/arch`)
kind: Rule
services:
- name: mirror-arch
- name: zfs-mirror-arch
kind: Service
port: 80
tls:
@ -26,6 +26,6 @@ spec:
- match: Host(`mirror.0xem.ma`) && PathPrefix(`/arch`)
kind: Rule
services:
- name: mirror-arch
- name: zfs-mirror-arch
kind: Service
port: 80

View File

@ -1,10 +1,10 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mirror-arch
name: zfs-mirror-arch
namespace: default
labels:
app: mirror-arch
app: zfs-mirror-arch
spec:
accessModes:
- ReadWriteMany

View File

@ -1,13 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: mirror-arch
name: zfs-mirror-arch
namespace: default
spec:
selector:
app: mirror-arch
app: zfs-mirror-arch
ports:
- name: mirror-arch
protocol: TCP
port: 80
targetPort: 80
- name: zfs-mirror-arch
protocol: TCP
port: 80
targetPort: 80

View File

@ -1,10 +1,10 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: mirror-arch
name: zfs-mirror-arch
namespace: default
labels:
app: mirror-arch
app: zfs-mirror-arch
id: mirror-web
annotations:
operator.1password.io/auto-restart: "true"
@ -12,7 +12,7 @@ spec:
revisionHistoryLimit: 2
selector:
matchLabels:
app: mirror-arch
app: zfs-mirror-arch
replicas: 2
strategy:
rollingUpdate:
@ -22,11 +22,11 @@ spec:
template:
metadata:
labels:
app: mirror-arch
app: zfs-mirror-arch
id: mirror-web
spec:
containers:
- name: mirror-arch
- name: zfs-mirror-arch
image: 0xemma/nginx-autoindex:json-4
resources:
limits:
@ -56,4 +56,4 @@ spec:
volumes:
- name: mirror-pvc
persistentVolumeClaim:
claimName: mirror-arch
claimName: zfs-mirror-arch

View File

@ -9,7 +9,7 @@ spec:
- match: Host(`mirror.0xem.ma`) && PathPrefix(`/rockylinux`)
kind: Rule
services:
- name: mirror-rockylinux
- name: zfs-mirror-rockylinux
kind: Service
port: 80
tls:
@ -26,6 +26,6 @@ spec:
- match: Host(`mirror.0xem.ma`) && PathPrefix(`/rockylinux`)
kind: Rule
services:
- name: mirror-rockylinux
- name: zfs-mirror-rockylinux
kind: Service
port: 80

View File

@ -1,10 +1,10 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mirror-rockylinux
name: zfs-mirror-rockylinux
namespace: default
labels:
app: mirror-rockylinux
app: zfs-mirror-rockylinux
spec:
storageClassName: csi-fs-hdd-sc
accessModes:

View File

@ -1,13 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: mirror-rockylinux
name: zfs-mirror-rockylinux
namespace: default
spec:
selector:
app: mirror-rockylinux
app: zfs-mirror-rockylinux
ports:
- name: mirror-rockylinux
- name: zfs-mirror-rockylinux
protocol: TCP
port: 80
targetPort: 80

View File

@ -1,10 +1,10 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: mirror-rockylinux
name: zfs-mirror-rockylinux
namespace: default
labels:
app: mirror-rockylinux
app: zfs-mirror-rockylinux
id: mirror-web
annotations:
operator.1password.io/auto-restart: "true"
@ -12,7 +12,7 @@ spec:
revisionHistoryLimit: 2
selector:
matchLabels:
app: mirror-rockylinux
app: zfs-mirror-rockylinux
replicas: 2
strategy:
rollingUpdate:
@ -22,11 +22,11 @@ spec:
template:
metadata:
labels:
app: mirror-rockylinux
app: zfs-mirror-rockylinux
id: mirror-web
spec:
containers:
- name: mirror-rockylinux
- name: zfs-mirror-rockylinux
image: 0xemma/nginx-autoindex:json-4
resources:
limits:
@ -56,4 +56,4 @@ spec:
volumes:
- name: mirror-pvc
persistentVolumeClaim:
claimName: mirror-rockylinux
claimName: zfs-mirror-rockylinux

View File

@ -0,0 +1,31 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: mirror-ingress-tls-torproject
spec:
entryPoints:
- websecure
routes:
- match: Host(`tor.0xem.ma`)
kind: Rule
services:
- name: mirror-torproject
kind: Service
port: 80
tls:
secretName: emma-tls
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: mirror-ingress-torproject
spec:
entryPoints:
- web
routes:
- match: Host(`tor.0xem.ma`)
kind: Rule
services:
- name: mirror-torproject
kind: Service
port: 80

View File

@ -0,0 +1,14 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mirror-torproject
namespace: default
labels:
app: torproject
backup: donot
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 40Gi

View File

@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: mirror-torproject
namespace: default
spec:
selector:
app: mirror-torproject
ports:
- name: mirror-torproject
protocol: TCP
port: 80
targetPort: 80

View File

@ -0,0 +1,59 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: mirror-torproject
namespace: default
labels:
app: mirror-torproject
id: mirror-web
annotations:
operator.1password.io/auto-restart: "true"
spec:
revisionHistoryLimit: 2
selector:
matchLabels:
app: mirror-torproject
replicas: 2
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: mirror-torproject
id: mirror-web
spec:
containers:
- name: mirror-torproject
image: 0xemma/nginx-autoindex:json-4
resources:
limits:
memory: 8000Mi
requests:
cpu: 100m
memory: 8000Mi
env:
- name: API_KEY
valueFrom:
secretKeyRef:
key: AMPLIFY_API_KEY
name: amplify-secret
- name: AMPLIFY_IMAGENAME
value: "torproject"
volumeMounts:
- mountPath: /var/lib/nginx/html
name: mirror-pvc
ports:
- containerPort: 80
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5
periodSeconds: 10
volumes:
- name: mirror-pvc
persistentVolumeClaim:
claimName: mirror-torproject