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: volumes:
- name: mirror-pvc - name: mirror-pvc
persistentVolumeClaim: persistentVolumeClaim:
claimName: mirror-almalinux-zfs claimName: zfs-mirror-almalinux

View File

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

View File

@ -32,4 +32,4 @@ spec:
volumes: volumes:
- name: mirror-pvc - name: mirror-pvc
persistentVolumeClaim: 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 claimName: mirror-kali-images
- name: arch - name: arch
persistentVolumeClaim: persistentVolumeClaim:
claimName: mirror-arch claimName: zfs-mirror-arch
- name: alma - name: alma
persistentVolumeClaim: persistentVolumeClaim:
claimName: mirror-almalinux-zfs claimName: zfs-mirror-almalinux
- name: parrot - name: parrot
persistentVolumeClaim: persistentVolumeClaim:
claimName: mirror-parrot-zfs claimName: mirror-parrot-zfs
@ -88,5 +88,5 @@ spec:
claimName: mirror-blackarch-zfs claimName: mirror-blackarch-zfs
- name: rockylinux - name: rockylinux
persistentVolumeClaim: persistentVolumeClaim:
claimName: mirror-rockylinux claimName: zfs-mirror-rockylinux
restartPolicy: Always restartPolicy: Always

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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