add db, ingress, pvc, secrets, svc, and deployment for jellystat #4
46
clusters/ipv6/monitoring/jellystat/jellystat-db.yml
Normal file
46
clusters/ipv6/monitoring/jellystat/jellystat-db.yml
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: StatefulSet
|
||||||
|
metadata:
|
||||||
|
name: jellystat-db
|
||||||
|
namespace: monitoring
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: jellystat-db
|
||||||
|
serviceName: jellystat-db
|
||||||
|
replicas: 1
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: jellystat-db
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: jellystat-db
|
||||||
|
image: postgres:18-alpine
|
||||||
|
ports:
|
||||||
|
- containerPort: 5432
|
||||||
|
env:
|
||||||
|
- name: POSTGRES_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: jellystat-secret
|
||||||
|
key: password
|
||||||
|
- name: POSTGRES_DB
|
||||||
|
value: "jfstat"
|
||||||
|
- name: POSTGRES_USER
|
||||||
|
value: "postgres"
|
||||||
|
- name: PGDATA
|
||||||
|
value: /mnt/postgres/data
|
||||||
|
volumeMounts:
|
||||||
|
- name: postgres-data
|
||||||
|
mountPath: /mnt/postgres
|
||||||
|
volumeClaimTemplates:
|
||||||
|
- metadata:
|
||||||
|
name: postgres-data
|
||||||
|
spec:
|
||||||
|
accessModes: ["ReadWriteOnce"]
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 1Gi
|
||||||
|
storageClassName: longhorn
|
||||||
27
clusters/ipv6/monitoring/jellystat/jellystat-ingress.yml
Normal file
27
clusters/ipv6/monitoring/jellystat/jellystat-ingress.yml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: jellystat-ingress
|
||||||
|
namespace: monitoring
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt-cloudflare
|
||||||
|
traefik.ingress.kubernetes.io/router.middlewares: tools-authelia@kubernetescrd
|
||||||
|
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
||||||
|
spec:
|
||||||
|
ingressClassName: traefik
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- jellystat.akshun-lab.cc
|
||||||
|
secretName: jellystat-tls
|
||||||
|
rules:
|
||||||
|
- host: jellystat.akshun-lab.cc
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: jellystat-service
|
||||||
|
port:
|
||||||
|
number: 3000
|
||||||
14
clusters/ipv6/monitoring/jellystat/jellystat-pvc.yml
Normal file
14
clusters/ipv6/monitoring/jellystat/jellystat-pvc.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: jellystat-backups-longhorn
|
||||||
|
namespace: monitoring
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
volumeMode: Filesystem
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 1Gi
|
||||||
|
storageClassName: longhorn
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
apiVersion: bitnami.com/v1alpha1
|
||||||
|
kind: SealedSecret
|
||||||
|
metadata:
|
||||||
|
name: jellystat-secret
|
||||||
|
namespace: monitoring
|
||||||
|
spec:
|
||||||
|
encryptedData:
|
||||||
|
jwt: AgB+LTIiJS3cLByJI92bP4ZxODj4XdmjQrVjv9BKb3TWnGRI3A84rh2uIQbOP1o6g8FzEFpat4A//EPE3GFXKBNXI0LD4xn04rGAiaC+E3AfcraaTDroEwSblewbWPGPzTzC7pKhKztQtGVkUfy2I6JZUiAeyibweXoaR48fyYmySs+2Gc7rXKUnsgt999fOjrj9dGmsTqnLfCkiExspjH8D9q5xBsRY6N2KpHnQ9AX23Re4ZwzmSrxBfz6cTyEcSWApuYzToLJgyGeibR8VMO9hLAAIcOYunLzZ0MrYtt/STCmW0j7IgccrlhFPA6cpEUS7/hR3Z2Yj/SJSWL41a+rww8EhOodTY9T6PhFm+Z3YfwaEoSGlEjTfcW3KVUUpbv7S19Gy+HM6TeBLctlQzg5ondu8dC4hyKSjC5D2ugCTTyu2/gZHuRerzN0sV05H7E4rvYy/FPttRYoVnX3pPEMYAWn6Gan+fsWkEUItL5Z9v1rRBg7WgEjxKOVrpcDuf8AqRG7Oxv6f4SkWkmleOMH9/MLTtqsDMKq0JLhLgQmwHEwYIrf33AIb7GPiBDwyftlI/2LMAaiqCs0ak/Qery61UiuuzqLm4kfRhKh+rrHqgn4N2pO2rBxvRMzvSZ6pl3yeeKAeBx0cf8tGPTOVUTMAdvttqfiVf7th1a+WM0m0iBmqE0/unpFTXNklg1xfSdm8f6qJU6/AAxLaENq1LdDepXDjjSglQyKWEdXS6iZXegEtHDmV0wKyedPAfw==
|
||||||
|
password: AgAz/Zlbr66o5a0oZuGFXAMKZo9NdcqpSpF0DaTObCO+uUqROtrCv5d06zbyNrj6zaNLDJRp8xSGR3XwFTg8SCw0cUiWx/GbXWp1VCrzGRE5l1nC2i/lAsArOhTHxuAkvpGzjfvHzs/iXk+n0jC5GQyDUyxT/Wd46ARlY6qQvIl0QZ8xIl76GcL31QKpl1kT5NslwLwULJUfV/8U9FvDMQkQV7RGlwCSeGLEGtYNUNnAsRaviuvL5X8SLAZhOrB+P3Rm9M+M0jlmo42IeVDbu+15u1yBvXsDplcXK21+aN0DSsVA9aeKAHq6m4MrTJ5aGdr8qbg2rTlYZAvjBnjEcXxrONlm8kHR3PcDgZ6sXdb1k7DttpcQhIzynelm+4SoMXNJQW1o3EnJOu9DBec8cIBPGhwpo+QdLwgznI9vO2hOgTnp2amf1eGZIM4J959LRqiKKBNg02XZiE92orqmCaaxOfdUrVLho+JQQVsarx2qCN6lKU2Ev31OrTtUY0twS6P8W5/8iDVx1GeulUZZpVE1CMDuNSmlIi87sf8P844+hXr391gT6EiFXHLrcGG3JMHVePIbKGBda15Y7AlP/VEoJAZpmTrC6k8xbeRtAxZJIMLhl/NxGUXkQlpA3O9pUBY4XiJhlZIiQk6nCKg6YOQCTrZoB2/AkA1X1IOdGikyq+7OD0JtkrH9qwvY8dJfLLJc8kJXTR+e873MLQ==
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
name: jellystat-secret
|
||||||
|
namespace: monitoring
|
||||||
|
type: Opaque
|
||||||
27
clusters/ipv6/monitoring/jellystat/jellystat-svc.yml
Normal file
27
clusters/ipv6/monitoring/jellystat/jellystat-svc.yml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: jellystat-service
|
||||||
|
namespace: monitoring
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: jellystat
|
||||||
|
ports:
|
||||||
|
- port: 3000
|
||||||
|
targetPort: 3000
|
||||||
|
protocol: TCP
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: jellystat-db
|
||||||
|
namespace: monitoring
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: jellystat-db
|
||||||
|
ports:
|
||||||
|
- port: 5432
|
||||||
|
targetPort: 5432
|
||||||
|
clusterIP: None
|
||||||
55
clusters/ipv6/monitoring/jellystat/jellystat.yml
Normal file
55
clusters/ipv6/monitoring/jellystat/jellystat.yml
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: jellystat
|
||||||
|
namespace: monitoring
|
||||||
|
spec:
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: jellystat
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: jellystat
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: jellystat
|
||||||
|
image: cyfershepard/jellystat:1.1.7
|
||||||
|
readinessProbe:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- bash
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
(echo >/dev/tcp/jellystat-db.monitoring.svc.cluster.local/5432)
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 5
|
||||||
|
failureThreshold: 3
|
||||||
|
env:
|
||||||
|
- name: JWT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: jellystat-secret
|
||||||
|
key: jwt
|
||||||
|
- name: POSTGRES_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: jellystat-secret
|
||||||
|
key: password
|
||||||
|
- name: POSTGRES_IP
|
||||||
|
value: "jellystat-db.monitoring.svc.cluster.local"
|
||||||
|
- name: POSTGRES_PORT
|
||||||
|
value: "5432"
|
||||||
|
- name: POSTGRES_USER
|
||||||
|
value: "postgres"
|
||||||
|
volumeMounts:
|
||||||
|
- name: backups
|
||||||
|
mountPath: /app/backend/backup-data
|
||||||
|
volumes:
|
||||||
|
- name: backups
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: jellystat-backups-longhorn
|
||||||
Reference in New Issue
Block a user