Auto-Upgrade services with keel. Clean up kompose junk. Break out pvcs from deployments
This commit is contained in:
parent
e3d1bcde17
commit
40edb4cf47
59 changed files with 437 additions and 522 deletions
72
keel/keel.yaml
Normal file
72
keel/keel.yaml
Normal file
|
|
@ -0,0 +1,72 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: keel
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: keel
|
||||||
|
namespace: keel
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
name: keel
|
||||||
|
rules:
|
||||||
|
- apiGroups: ["", "apps", "batch", "extensions"]
|
||||||
|
resources:
|
||||||
|
- namespaces
|
||||||
|
- deployments
|
||||||
|
- daemonsets
|
||||||
|
- statefulsets
|
||||||
|
- cronjobs
|
||||||
|
- pods
|
||||||
|
- replicationcontrollers
|
||||||
|
verbs: ["get", "list", "watch", "update", "patch"]
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: keel
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: keel
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: keel
|
||||||
|
namespace: keel
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: keel
|
||||||
|
namespace: keel
|
||||||
|
labels:
|
||||||
|
app: keel
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: keel
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: keel
|
||||||
|
spec:
|
||||||
|
serviceAccountName: keel
|
||||||
|
containers:
|
||||||
|
- name: keel
|
||||||
|
image: keelhq/keel:latest
|
||||||
|
imagePullPolicy: Always
|
||||||
|
env:
|
||||||
|
- name: POLL
|
||||||
|
value: "true"
|
||||||
|
- name: SCHEDULER_FREQUENCY
|
||||||
|
value: "1h"
|
||||||
|
- name: AUTO_UPDATE_EVERYTHING
|
||||||
|
value: "false"
|
||||||
|
ports:
|
||||||
|
- containerPort: 9300
|
||||||
|
name: keel
|
||||||
|
|
@ -1,26 +1,22 @@
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-abs.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: audiobookshelf
|
|
||||||
name: audiobookshelf
|
name: audiobookshelf
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
io.kompose.service: audiobookshelf
|
app: audiobookshelf
|
||||||
strategy:
|
strategy:
|
||||||
type: Recreate
|
type: Recreate
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-abs.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
labels:
|
||||||
io.kompose.service: audiobookshelf
|
app: audiobookshelf
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- env:
|
- env:
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-abs.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: audiobookshelf
|
|
||||||
name: audiobookshelf
|
name: audiobookshelf
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
|
@ -14,4 +9,4 @@ spec:
|
||||||
port: 80
|
port: 80
|
||||||
targetPort: web-ui
|
targetPort: web-ui
|
||||||
selector:
|
selector:
|
||||||
io.kompose.service: audiobookshelf
|
app: audiobookshelf
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,22 @@
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: bazarr-anime
|
|
||||||
name: bazarr-anime
|
name: bazarr-anime
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
io.kompose.service: bazarr-anime
|
app: bazarr-anime
|
||||||
strategy:
|
strategy:
|
||||||
type: Recreate
|
type: Recreate
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
labels:
|
||||||
io.kompose.service: bazarr-anime
|
app: bazarr-anime
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- env:
|
- env:
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: bazarr-anime
|
|
||||||
name: bazarr-anime
|
name: bazarr-anime
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
|
@ -14,4 +9,4 @@ spec:
|
||||||
port: 80
|
port: 80
|
||||||
targetPort: web-ui
|
targetPort: web-ui
|
||||||
selector:
|
selector:
|
||||||
io.kompose.service: bazarr-anime
|
app: bazarr-anime
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,22 @@
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: bazarr
|
|
||||||
name: bazarr
|
name: bazarr
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
io.kompose.service: bazarr
|
app: bazarr
|
||||||
strategy:
|
strategy:
|
||||||
type: Recreate
|
type: Recreate
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
labels:
|
||||||
io.kompose.service: bazarr
|
app: bazarr
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- env:
|
- env:
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: bazarr
|
|
||||||
name: bazarr
|
name: bazarr
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
|
@ -14,4 +9,4 @@ spec:
|
||||||
port: 80
|
port: 80
|
||||||
targetPort: web-ui
|
targetPort: web-ui
|
||||||
selector:
|
selector:
|
||||||
io.kompose.service: bazarr
|
app: bazarr
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -1,23 +1,22 @@
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
|
||||||
io.kompose.service: calibre-web
|
|
||||||
name: calibre-web
|
name: calibre-web
|
||||||
annotations:
|
annotations:
|
||||||
reloader.stakater.com/auto: "true"
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
io.kompose.service: calibre-web
|
app: calibre-web
|
||||||
strategy:
|
strategy:
|
||||||
type: Recreate
|
type: Recreate
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
io.kompose.service: calibre-web
|
app: calibre-web
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: calibre-web
|
- name: calibre-web
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
|
||||||
io.kompose.service: calibre-web
|
|
||||||
name: calibre-web
|
name: calibre-web
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
|
@ -11,4 +9,4 @@ spec:
|
||||||
port: 80
|
port: 80
|
||||||
targetPort: web-ui
|
targetPort: web-ui
|
||||||
selector:
|
selector:
|
||||||
io.kompose.service: calibre-web
|
app: calibre-web
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,22 @@
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: deluge
|
|
||||||
name: deluge
|
name: deluge
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
io.kompose.service: deluge
|
app: deluge
|
||||||
strategy:
|
strategy:
|
||||||
type: Recreate
|
type: Recreate
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
labels:
|
||||||
io.kompose.service: deluge
|
app: deluge
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- env:
|
- env:
|
||||||
|
|
@ -61,18 +57,3 @@ spec:
|
||||||
nfs:
|
nfs:
|
||||||
server: robin.home.nest
|
server: robin.home.nest
|
||||||
path: /yarr/downloads
|
path: /yarr/downloads
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: deluge-config-pvc
|
|
||||||
labels:
|
|
||||||
recurring-job.longhorn.io/source: "enabled"
|
|
||||||
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
storageClassName: longhorn
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 20Mi
|
|
||||||
|
|
|
||||||
14
services/deluge/deluge-pvcs.yaml
Normal file
14
services/deluge/deluge-pvcs.yaml
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: deluge-config-pvc
|
||||||
|
labels:
|
||||||
|
recurring-job.longhorn.io/source: "enabled"
|
||||||
|
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
storageClassName: longhorn
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 20Mi
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: deluge
|
|
||||||
name: deluge
|
name: deluge
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
|
@ -24,4 +19,4 @@ spec:
|
||||||
port: 82
|
port: 82
|
||||||
targetPort: daemon
|
targetPort: daemon
|
||||||
selector:
|
selector:
|
||||||
io.kompose.service: deluge
|
app: deluge
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
|
||||||
app: droppedneedle
|
|
||||||
name: droppedneedle
|
name: droppedneedle
|
||||||
namespace: default
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
|
|
|
||||||
22
services/droppedneedle/droppedneedle-external-secret.yaml
Normal file
22
services/droppedneedle/droppedneedle-external-secret.yaml
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
apiVersion: external-secrets.io/v1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: droppedneedle-secret
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
refreshInterval: "1h"
|
||||||
|
secretStoreRef:
|
||||||
|
name: vault-external-secrets-store
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
target:
|
||||||
|
name: droppedneedle-secret
|
||||||
|
creationPolicy: Owner
|
||||||
|
data:
|
||||||
|
- secretKey: SERVICE_USER
|
||||||
|
remoteRef:
|
||||||
|
key: dropped-needle
|
||||||
|
property: service-user
|
||||||
|
- secretKey: SERVICE_PASS
|
||||||
|
remoteRef:
|
||||||
|
key: dropped-needle
|
||||||
|
property: service-password
|
||||||
66
services/droppedneedle/droppedneedle-pvcs.yaml
Normal file
66
services/droppedneedle/droppedneedle-pvcs.yaml
Normal file
|
|
@ -0,0 +1,66 @@
|
||||||
|
# Note: This service changed name from musicseerr to droppedneedle
|
||||||
|
# PVC names are immutable, so just keeping the old names
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: musicseerr-config-pvc
|
||||||
|
labels:
|
||||||
|
recurring-job.longhorn.io/source: "enabled"
|
||||||
|
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
storageClassName: longhorn
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 3Gi
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: musicseerr-cache-pvc
|
||||||
|
labels:
|
||||||
|
recurring-job.longhorn.io/source: "enabled"
|
||||||
|
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
storageClassName: longhorn
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 3Gi
|
||||||
|
---
|
||||||
|
# For use by the transcoding service
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
name: droppedneedle-transcode-pv
|
||||||
|
spec:
|
||||||
|
capacity:
|
||||||
|
storage: 3Ti
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
persistentVolumeReclaimPolicy: Retain
|
||||||
|
storageClassName: local-raid
|
||||||
|
local:
|
||||||
|
path: /mnt/raid/yarr/media/music
|
||||||
|
nodeAffinity:
|
||||||
|
required:
|
||||||
|
nodeSelectorTerms:
|
||||||
|
- matchExpressions:
|
||||||
|
- key: kubernetes.io/hostname
|
||||||
|
operator: In
|
||||||
|
values:
|
||||||
|
- robin
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: droppedneedle-transcode-pvc
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
storageClassName: local-raid
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 3Ti
|
||||||
|
|
@ -6,27 +6,34 @@ metadata:
|
||||||
data:
|
data:
|
||||||
transcode.sh: |
|
transcode.sh: |
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
WATCH_DIR="/yarr/media/music"
|
WATCH_DIR="/music"
|
||||||
echo "Starting transcoder watch on $WATCH_DIR..."
|
echo "Starting transcoder watch on $WATCH_DIR..."
|
||||||
|
|
||||||
# Listen for files moved into the directory (atomic renames) and direct writes
|
|
||||||
inotifywait -m -r -e moved_to,close_write --format '%w%f' "$WATCH_DIR" | while read FILE
|
inotifywait -m -r -e moved_to,close_write --format '%w%f' "$WATCH_DIR" | while read FILE
|
||||||
do
|
do
|
||||||
# Case-insensitive check for .flac extension
|
|
||||||
if [[ "${FILE,,}" == *.flac ]]; then
|
if [[ "${FILE,,}" == *.flac ]]; then
|
||||||
echo "Detected new FLAC via import: $FILE"
|
echo "Detected new FLAC via import: $FILE"
|
||||||
OPUS_FILE="${FILE%.*}.opus"
|
OPUS_FILE="${FILE%.*}.opus"
|
||||||
|
|
||||||
# Transcode (preserves tags natively in newer ffmpeg versions)
|
|
||||||
ffmpeg -y -i "$FILE" -acodec libopus -ac 2 -ab 160k "$OPUS_FILE"
|
ffmpeg -y -i "$FILE" -acodec libopus -ac 2 -ab 160k "$OPUS_FILE"
|
||||||
|
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
echo "Transcode successful. Removing original FLAC..."
|
echo "Transcode successful. Removing original FLAC..."
|
||||||
rm "$FILE"
|
rm "$FILE"
|
||||||
|
|
||||||
echo "Triggering DroppedNeedle library scan..."
|
echo "Triggering authenticated DroppedNeedle library scan..."
|
||||||
# Calls the DroppedNeedle service using internal Kubernetes DNS
|
# 1. Authenticate and save the session cookie to a temporary jar
|
||||||
curl -X POST http://droppedneedle.default.svc.cluster.local:8688/api/v1/library/scan/start
|
curl -s -X POST http://droppedneedle.default.svc.cluster.local:80/api/v1/auth/login \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d "{\"username\": \"$SERVICE_USER\", \"password\": \"$SERVICE_PASS\"}" \
|
||||||
|
-c /tmp/dn_cookies.txt
|
||||||
|
|
||||||
|
# 2. Trigger the scan using the saved session cookie
|
||||||
|
curl -s -X POST http://droppedneedle.default.svc.cluster.local:80/api/v1/library/scan/start \
|
||||||
|
-b /tmp/dn_cookies.txt
|
||||||
|
|
||||||
|
# 3. Clean up the cookie jar
|
||||||
|
rm /tmp/dn_cookies.txt
|
||||||
else
|
else
|
||||||
echo "Error: FFmpeg transcode failed for $FILE"
|
echo "Error: FFmpeg transcode failed for $FILE"
|
||||||
fi
|
fi
|
||||||
|
|
@ -36,10 +43,11 @@ data:
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
|
||||||
app: droppedneedle-transcoder
|
|
||||||
name: droppedneedle-transcoder
|
name: droppedneedle-transcoder
|
||||||
namespace: default
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
|
|
@ -50,23 +58,27 @@ spec:
|
||||||
labels:
|
labels:
|
||||||
app: droppedneedle-transcoder
|
app: droppedneedle-transcoder
|
||||||
spec:
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/hostname: robin
|
||||||
containers:
|
containers:
|
||||||
- name: transcoder
|
- name: transcoder
|
||||||
image: alpine:latest
|
image: alpine:latest
|
||||||
command: ["/bin/sh", "-c"]
|
command: ["/bin/sh", "-c"]
|
||||||
args:
|
args:
|
||||||
- "apk add --no-cache bash inotify-tools ffmpeg curl && bash /scripts/transcode.sh"
|
- "apk add --no-cache bash inotify-tools ffmpeg curl && bash /scripts/transcode.sh"
|
||||||
|
envFrom:
|
||||||
|
- secretRef:
|
||||||
|
name: droppedneedle-secret
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- mountPath: /yarr
|
- mountPath: /music
|
||||||
name: yarr
|
name: yarr
|
||||||
- mountPath: /scripts
|
- mountPath: /scripts
|
||||||
name: script-volume
|
name: script-volume
|
||||||
restartPolicy: Always
|
restartPolicy: Always
|
||||||
volumes:
|
volumes:
|
||||||
- name: yarr
|
- name: yarr
|
||||||
nfs:
|
persistentVolumeClaim:
|
||||||
server: robin.home.nest
|
claimName: droppedneedle-transcode-pvc
|
||||||
path: /yarr
|
|
||||||
- name: script-volume
|
- name: script-volume
|
||||||
configMap:
|
configMap:
|
||||||
name: droppedneedle-transcoder-script
|
name: droppedneedle-transcoder-script
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,20 @@
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: flaresolverr
|
|
||||||
name: flaresolverr
|
name: flaresolverr
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
io.kompose.service: flaresolverr
|
app: flaresolverr
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
labels:
|
||||||
io.kompose.service: flaresolverr
|
app: flaresolverr
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- env:
|
- env:
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: flaresolverr
|
|
||||||
name: flaresolverr
|
name: flaresolverr
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
|
@ -14,4 +9,4 @@ spec:
|
||||||
port: 80
|
port: 80
|
||||||
targetPort: flaresolverr
|
targetPort: flaresolverr
|
||||||
selector:
|
selector:
|
||||||
io.kompose.service: flaresolverr
|
app: flaresolverr
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,10 @@ apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
name: foundry-vtt
|
name: foundry-vtt
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
|
|
@ -41,18 +45,3 @@ spec:
|
||||||
- name: foundry-vtt-volume
|
- name: foundry-vtt-volume
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: foundry-vtt-data-pvc
|
claimName: foundry-vtt-data-pvc
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: foundry-vtt-data-pvc
|
|
||||||
labels:
|
|
||||||
recurring-job.longhorn.io/source: "enabled"
|
|
||||||
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
storageClassName: longhorn
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 10Gi
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ metadata:
|
||||||
annotations:
|
annotations:
|
||||||
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
||||||
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
||||||
traefik.ingress.kubernetes.io/router.middlewares: security-auth-foundryvtt@kubernetescrd
|
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: traefik
|
ingressClassName: traefik
|
||||||
tls:
|
tls:
|
||||||
|
|
@ -24,29 +23,3 @@ spec:
|
||||||
name: foundry-vtt
|
name: foundry-vtt
|
||||||
port:
|
port:
|
||||||
name: http-web
|
name: http-web
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: foundry-auth-ingress
|
|
||||||
namespace: security # MOVED TO SECURITY NAMESPACE
|
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
|
||||||
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
|
||||||
spec:
|
|
||||||
ingressClassName: traefik
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- foundry.mynest.love
|
|
||||||
secretName: foundry-vtt-tls
|
|
||||||
rules:
|
|
||||||
- host: foundry.mynest.love
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /oauth2
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: oauth2-proxy-foundryvtt
|
|
||||||
port:
|
|
||||||
number: 4180
|
|
||||||
|
|
|
||||||
|
|
@ -1,86 +0,0 @@
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: foundryvtt-proxy-foundryvtt
|
|
||||||
namespace: security
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: oauth2-proxy-foundryvtt
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: oauth2-proxy-foundryvtt
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: oauth2-proxy
|
|
||||||
image: quay.io/oauth2-proxy/oauth2-proxy:v7.6.0
|
|
||||||
envFrom:
|
|
||||||
- secretRef:
|
|
||||||
name: foundry-oauth-secrets
|
|
||||||
args:
|
|
||||||
- "--provider=oidc"
|
|
||||||
- "--oidc-issuer-url=https://sso.mynest.love/realms/nest"
|
|
||||||
- "--oidc-groups-claim=groups"
|
|
||||||
- "--redirect-url=https://foundry.mynest.love/oauth2/callback"
|
|
||||||
- "--email-domain=*"
|
|
||||||
- "--allowed-group=foundryvtt"
|
|
||||||
- "--skip-provider-button=true"
|
|
||||||
- "--cookie-secure=true"
|
|
||||||
- "--cookie-domain=foundry.mynest.love"
|
|
||||||
- "--http-address=0.0.0.0:4180"
|
|
||||||
- "--reverse-proxy=true"
|
|
||||||
- "--upstream=static://200"
|
|
||||||
- "--whitelist-domain=foundry.mynest.love"
|
|
||||||
ports:
|
|
||||||
- containerPort: 4180
|
|
||||||
---
|
|
||||||
apiVersion: external-secrets.io/v1
|
|
||||||
kind: ExternalSecret
|
|
||||||
metadata:
|
|
||||||
name: foundry-oauth-secrets
|
|
||||||
namespace: security
|
|
||||||
spec:
|
|
||||||
refreshInterval: "1h"
|
|
||||||
secretStoreRef:
|
|
||||||
name: vault-external-secrets-store
|
|
||||||
kind: ClusterSecretStore
|
|
||||||
target:
|
|
||||||
name: foundry-oauth-secrets
|
|
||||||
creationPolicy: Owner
|
|
||||||
data:
|
|
||||||
- secretKey: OAUTH2_PROXY_CLIENT_ID
|
|
||||||
remoteRef:
|
|
||||||
key: oauth2-proxy/foundryvtt
|
|
||||||
property: client-id
|
|
||||||
- secretKey: OAUTH2_PROXY_CLIENT_SECRET
|
|
||||||
remoteRef:
|
|
||||||
key: oauth2-proxy/foundryvtt
|
|
||||||
property: client-secret
|
|
||||||
- secretKey: OAUTH2_PROXY_COOKIE_SECRET
|
|
||||||
remoteRef:
|
|
||||||
key: oauth2-proxy/foundryvtt
|
|
||||||
property: cookie-secret
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: oauth2-proxy-foundryvtt
|
|
||||||
namespace: security
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- port: 4180
|
|
||||||
targetPort: 4180
|
|
||||||
selector:
|
|
||||||
app: oauth2-proxy-foundryvtt
|
|
||||||
---
|
|
||||||
apiVersion: traefik.io/v1alpha1
|
|
||||||
kind: Middleware
|
|
||||||
metadata:
|
|
||||||
name: auth-foundryvtt
|
|
||||||
namespace: security
|
|
||||||
spec:
|
|
||||||
forwardAuth:
|
|
||||||
address: "http://oauth2-proxy-foundryvtt.security.svc.cluster.local:4180"
|
|
||||||
trustForwardHeader: true
|
|
||||||
14
services/foundryvtt/foundry-vtt-pvcs.yaml
Normal file
14
services/foundryvtt/foundry-vtt-pvcs.yaml
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: foundry-vtt-data-pvc
|
||||||
|
labels:
|
||||||
|
recurring-job.longhorn.io/source: "enabled"
|
||||||
|
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
storageClassName: longhorn
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 10Gi
|
||||||
|
|
@ -1,26 +1,22 @@
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-jellyfin.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: jellyfin
|
|
||||||
name: jellyfin
|
name: jellyfin
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
io.kompose.service: jellyfin
|
app: jellyfin
|
||||||
strategy:
|
strategy:
|
||||||
type: Recreate
|
type: Recreate
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-jellyfin.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
labels:
|
||||||
io.kompose.service: jellyfin
|
app: jellyfin
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- env:
|
- env:
|
||||||
|
|
@ -53,33 +49,3 @@ spec:
|
||||||
nfs:
|
nfs:
|
||||||
server: robin.home.nest
|
server: robin.home.nest
|
||||||
path: /yarr/media
|
path: /yarr/media
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: jellyfin-config-pvc
|
|
||||||
labels:
|
|
||||||
recurring-job.longhorn.io/source: "enabled"
|
|
||||||
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
storageClassName: longhorn
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 3Gi
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: jellyfin-cache-pvc
|
|
||||||
labels:
|
|
||||||
recurring-job.longhorn.io/source: "enabled"
|
|
||||||
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
storageClassName: longhorn
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 3Gi
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,7 @@
|
||||||
# Note: This service changed name from musicseerr to droppedneedle
|
|
||||||
# PVC names are immutable, so just keeping the old names
|
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: PersistentVolumeClaim
|
kind: PersistentVolumeClaim
|
||||||
metadata:
|
metadata:
|
||||||
name: musicseerr-config-pvc
|
name: jellyfin-config-pvc
|
||||||
labels:
|
labels:
|
||||||
recurring-job.longhorn.io/source: "enabled"
|
recurring-job.longhorn.io/source: "enabled"
|
||||||
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
||||||
|
|
@ -18,7 +16,7 @@ spec:
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: PersistentVolumeClaim
|
kind: PersistentVolumeClaim
|
||||||
metadata:
|
metadata:
|
||||||
name: musicseerr-cache-pvc
|
name: jellyfin-cache-pvc
|
||||||
labels:
|
labels:
|
||||||
recurring-job.longhorn.io/source: "enabled"
|
recurring-job.longhorn.io/source: "enabled"
|
||||||
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-jellyfin.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: jellyfin
|
|
||||||
name: jellyfin
|
name: jellyfin
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
|
@ -14,4 +9,4 @@ spec:
|
||||||
port: 80
|
port: 80
|
||||||
targetPort: web-ui
|
targetPort: web-ui
|
||||||
selector:
|
selector:
|
||||||
io.kompose.service: jellyfin
|
app: jellyfin
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ metadata:
|
||||||
namespace: security
|
namespace: security
|
||||||
labels:
|
labels:
|
||||||
recurring-job.longhorn.io/source: "enabled"
|
recurring-job.longhorn.io/source: "enabled"
|
||||||
recurring-job-group.longhorn.io/critical-data: "enabled"
|
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
||||||
spec:
|
spec:
|
||||||
accessModes: ["ReadWriteOnce"]
|
accessModes: ["ReadWriteOnce"]
|
||||||
storageClassName: "longhorn"
|
storageClassName: "longhorn"
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,22 @@
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: prowlarr
|
|
||||||
name: prowlarr
|
name: prowlarr
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
io.kompose.service: prowlarr
|
app: prowlarr
|
||||||
strategy:
|
strategy:
|
||||||
type: Recreate
|
type: Recreate
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
labels:
|
||||||
io.kompose.service: prowlarr
|
app: prowlarr
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- env:
|
- env:
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: prowlarr
|
|
||||||
name: prowlarr
|
name: prowlarr
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
|
@ -14,4 +9,4 @@ spec:
|
||||||
port: 80
|
port: 80
|
||||||
targetPort: web-ui
|
targetPort: web-ui
|
||||||
selector:
|
selector:
|
||||||
io.kompose.service: prowlarr
|
app: prowlarr
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,22 @@
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: radarr-anime
|
|
||||||
name: radarr-anime
|
name: radarr-anime
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
io.kompose.service: radarr-anime
|
app: radarr-anime
|
||||||
strategy:
|
strategy:
|
||||||
type: Recreate
|
type: Recreate
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
labels:
|
||||||
io.kompose.service: radarr-anime
|
app: radarr-anime
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- env:
|
- env:
|
||||||
|
|
@ -56,18 +52,3 @@ spec:
|
||||||
nfs:
|
nfs:
|
||||||
server: robin.home.nest
|
server: robin.home.nest
|
||||||
path: /yarr/downloads
|
path: /yarr/downloads
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: radarr-anime-config-pvc
|
|
||||||
labels:
|
|
||||||
recurring-job.longhorn.io/source: "enabled"
|
|
||||||
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
storageClassName: longhorn
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 150Mi
|
|
||||||
|
|
|
||||||
14
services/radarr-anime/radarr-anime-pvcs.yaml
Normal file
14
services/radarr-anime/radarr-anime-pvcs.yaml
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: radarr-anime-config-pvc
|
||||||
|
labels:
|
||||||
|
recurring-job.longhorn.io/source: "enabled"
|
||||||
|
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
storageClassName: longhorn
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 150Mi
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: radarr-anime
|
|
||||||
name: radarr-anime
|
name: radarr-anime
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
|
@ -14,4 +9,4 @@ spec:
|
||||||
port: 80
|
port: 80
|
||||||
targetPort: web-ui
|
targetPort: web-ui
|
||||||
selector:
|
selector:
|
||||||
io.kompose.service: radarr-anime
|
app: radarr-anime
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,22 @@
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: radarr
|
|
||||||
name: radarr
|
name: radarr
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
io.kompose.service: radarr
|
app: radarr
|
||||||
strategy:
|
strategy:
|
||||||
type: Recreate
|
type: Recreate
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
labels:
|
||||||
io.kompose.service: radarr
|
app: radarr
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- env:
|
- env:
|
||||||
|
|
@ -56,18 +52,3 @@ spec:
|
||||||
nfs:
|
nfs:
|
||||||
server: robin.home.nest
|
server: robin.home.nest
|
||||||
path: /yarr/downloads
|
path: /yarr/downloads
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: radarr-config-pvc
|
|
||||||
labels:
|
|
||||||
recurring-job.longhorn.io/source: "enabled"
|
|
||||||
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
storageClassName: longhorn
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 150Mi
|
|
||||||
|
|
|
||||||
14
services/radarr/radarr-pvcs.yaml
Normal file
14
services/radarr/radarr-pvcs.yaml
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: radarr-config-pvc
|
||||||
|
labels:
|
||||||
|
recurring-job.longhorn.io/source: "enabled"
|
||||||
|
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
storageClassName: longhorn
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 150Mi
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: radarr
|
|
||||||
name: radarr
|
name: radarr
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
|
@ -14,4 +9,4 @@ spec:
|
||||||
port: 80
|
port: 80
|
||||||
targetPort: web-ui
|
targetPort: web-ui
|
||||||
selector:
|
selector:
|
||||||
io.kompose.service: radarr
|
app: radarr
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,22 @@
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: sabnzbd
|
|
||||||
name: sabnzbd
|
name: sabnzbd
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
io.kompose.service: sabnzbd
|
app: sabnzbd
|
||||||
strategy:
|
strategy:
|
||||||
type: Recreate
|
type: Recreate
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
labels:
|
||||||
io.kompose.service: sabnzbd
|
app: sabnzbd
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- env:
|
- env:
|
||||||
|
|
@ -50,18 +46,3 @@ spec:
|
||||||
nfs:
|
nfs:
|
||||||
server: robin.home.nest
|
server: robin.home.nest
|
||||||
path: /yarr/downloads
|
path: /yarr/downloads
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: sabnzbd-config-pvc
|
|
||||||
labels:
|
|
||||||
recurring-job.longhorn.io/source: "enabled"
|
|
||||||
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
storageClassName: longhorn
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 50Mi
|
|
||||||
|
|
|
||||||
14
services/sabnzbd/sabnzbd-pvcs.yaml
Normal file
14
services/sabnzbd/sabnzbd-pvcs.yaml
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: sabnzbd-config-pvc
|
||||||
|
labels:
|
||||||
|
recurring-job.longhorn.io/source: "enabled"
|
||||||
|
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
storageClassName: longhorn
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 50Mi
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: sabnzbd
|
|
||||||
name: sabnzbd
|
name: sabnzbd
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
|
@ -14,4 +9,4 @@ spec:
|
||||||
port: 80
|
port: 80
|
||||||
targetPort: web-ui
|
targetPort: web-ui
|
||||||
selector:
|
selector:
|
||||||
io.kompose.service: sabnzbd
|
app: sabnzbd
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
|
||||||
app: seerr
|
|
||||||
name: seerr
|
name: seerr
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,10 @@ apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
name: shelfmark
|
name: shelfmark
|
||||||
namespace: default
|
|
||||||
annotations:
|
annotations:
|
||||||
reloader.stakater.com/auto: "true"
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
strategy:
|
strategy:
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,22 @@
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: slskd
|
|
||||||
name: slskd
|
name: slskd
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
io.kompose.service: slskd
|
app: slskd
|
||||||
strategy:
|
strategy:
|
||||||
type: Recreate
|
type: Recreate
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
labels:
|
||||||
io.kompose.service: slskd
|
app: slskd
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- env:
|
- env:
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: slskd
|
|
||||||
name: slskd
|
name: slskd
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
|
@ -17,4 +12,4 @@ spec:
|
||||||
port: 81
|
port: 81
|
||||||
targetPort: slskd-listen
|
targetPort: slskd-listen
|
||||||
selector:
|
selector:
|
||||||
io.kompose.service: slskd
|
app: slskd
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,22 @@
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: sonarr-anime
|
|
||||||
name: sonarr-anime
|
name: sonarr-anime
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
io.kompose.service: sonarr-anime
|
app: sonarr-anime
|
||||||
strategy:
|
strategy:
|
||||||
type: Recreate
|
type: Recreate
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
labels:
|
||||||
io.kompose.service: sonarr-anime
|
app: sonarr-anime
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- env:
|
- env:
|
||||||
|
|
@ -56,18 +52,3 @@ spec:
|
||||||
nfs:
|
nfs:
|
||||||
server: robin.home.nest
|
server: robin.home.nest
|
||||||
path: /yarr/downloads
|
path: /yarr/downloads
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: sonarr-anime-config-pvc
|
|
||||||
labels:
|
|
||||||
recurring-job.longhorn.io/source: "enabled"
|
|
||||||
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
storageClassName: longhorn
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 200Mi
|
|
||||||
|
|
|
||||||
14
services/sonarr-anime/sonarr-anime-pvcs.yaml
Normal file
14
services/sonarr-anime/sonarr-anime-pvcs.yaml
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: sonarr-anime-config-pvc
|
||||||
|
labels:
|
||||||
|
recurring-job.longhorn.io/source: "enabled"
|
||||||
|
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
storageClassName: longhorn
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 200Mi
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: sonarr-anime
|
|
||||||
name: sonarr-anime
|
name: sonarr-anime
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
|
@ -14,4 +9,4 @@ spec:
|
||||||
port: 80
|
port: 80
|
||||||
targetPort: web-ui
|
targetPort: web-ui
|
||||||
selector:
|
selector:
|
||||||
io.kompose.service: sonarr-anime
|
app: sonarr-anime
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,22 @@
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: sonarr
|
|
||||||
name: sonarr
|
name: sonarr
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
io.kompose.service: sonarr
|
app: sonarr
|
||||||
strategy:
|
strategy:
|
||||||
type: Recreate
|
type: Recreate
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
labels:
|
||||||
io.kompose.service: sonarr
|
app: sonarr
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- env:
|
- env:
|
||||||
|
|
@ -56,18 +52,3 @@ spec:
|
||||||
nfs:
|
nfs:
|
||||||
server: robin.home.nest
|
server: robin.home.nest
|
||||||
path: /yarr/downloads
|
path: /yarr/downloads
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: sonarr-config-pvc
|
|
||||||
labels:
|
|
||||||
recurring-job.longhorn.io/source: "enabled"
|
|
||||||
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
storageClassName: longhorn
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 150Mi
|
|
||||||
|
|
|
||||||
14
services/sonarr/sonarr-pvcs.yaml
Normal file
14
services/sonarr/sonarr-pvcs.yaml
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: sonarr-config-pvc
|
||||||
|
labels:
|
||||||
|
recurring-job.longhorn.io/source: "enabled"
|
||||||
|
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
storageClassName: longhorn
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 150Mi
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose-yarr.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: sonarr
|
|
||||||
name: sonarr
|
name: sonarr
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
|
@ -14,4 +9,4 @@ spec:
|
||||||
port: 80
|
port: 80
|
||||||
targetPort: web-ui
|
targetPort: web-ui
|
||||||
selector:
|
selector:
|
||||||
io.kompose.service: sonarr
|
app: sonarr
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,10 @@ apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
name: tdarr-server
|
name: tdarr-server
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
|
|
@ -62,6 +66,10 @@ apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
name: tdarr-node-cpu
|
name: tdarr-node-cpu
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,9 @@ apiVersion: v1
|
||||||
kind: PersistentVolumeClaim
|
kind: PersistentVolumeClaim
|
||||||
metadata:
|
metadata:
|
||||||
name: tdarr-config-pvc
|
name: tdarr-config-pvc
|
||||||
|
labels:
|
||||||
|
recurring-job.longhorn.io/source: "enabled"
|
||||||
|
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
||||||
spec:
|
spec:
|
||||||
accessModes:
|
accessModes:
|
||||||
- ReadWriteOnce
|
- ReadWriteOnce
|
||||||
|
|
@ -14,6 +17,9 @@ apiVersion: v1
|
||||||
kind: PersistentVolumeClaim
|
kind: PersistentVolumeClaim
|
||||||
metadata:
|
metadata:
|
||||||
name: tdarr-cache-rwx
|
name: tdarr-cache-rwx
|
||||||
|
labels:
|
||||||
|
recurring-job.longhorn.io/source: "enabled"
|
||||||
|
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
||||||
spec:
|
spec:
|
||||||
accessModes:
|
accessModes:
|
||||||
- ReadWriteMany
|
- ReadWriteMany
|
||||||
|
|
@ -26,6 +32,9 @@ apiVersion: v1
|
||||||
kind: PersistentVolumeClaim
|
kind: PersistentVolumeClaim
|
||||||
metadata:
|
metadata:
|
||||||
name: tdarr-db-pvc
|
name: tdarr-db-pvc
|
||||||
|
labels:
|
||||||
|
recurring-job.longhorn.io/source: "enabled"
|
||||||
|
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
||||||
spec:
|
spec:
|
||||||
accessModes:
|
accessModes:
|
||||||
- ReadWriteOnce
|
- ReadWriteOnce
|
||||||
|
|
|
||||||
|
|
@ -1,25 +1,21 @@
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: vaultwarden
|
|
||||||
name: vaultwarden
|
name: vaultwarden
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: "all"
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/schedule: "0 3 * * *"
|
||||||
spec:
|
spec:
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
io.kompose.service: vaultwarden
|
app: vaultwarden
|
||||||
strategy:
|
strategy:
|
||||||
type: Recreate
|
type: Recreate
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
labels:
|
||||||
io.kompose.service: vaultwarden
|
app: vaultwarden
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- env:
|
- env:
|
||||||
|
|
@ -44,18 +40,3 @@ spec:
|
||||||
- name: vaultwarden-volume
|
- name: vaultwarden-volume
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: vaultwarden-data-pvc
|
claimName: vaultwarden-data-pvc
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: vaultwarden-data-pvc
|
|
||||||
labels:
|
|
||||||
recurring-job.longhorn.io/source: "enabled"
|
|
||||||
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
storageClassName: longhorn
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 40Mi
|
|
||||||
|
|
|
||||||
14
services/vaultwarden/vaultwarden-pvcs.yaml
Normal file
14
services/vaultwarden/vaultwarden-pvcs.yaml
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: vaultwarden-data-pvc
|
||||||
|
labels:
|
||||||
|
recurring-job.longhorn.io/source: "enabled"
|
||||||
|
recurring-job-group.longhorn.io/app-config-group: "enabled"
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
storageClassName: longhorn
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 40Mi
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
kompose.cmd: kompose convert -f compose.yaml
|
|
||||||
kompose.version: 1.38.0 (HEAD)
|
|
||||||
labels:
|
|
||||||
io.kompose.service: vaultwarden
|
|
||||||
name: vaultwarden
|
name: vaultwarden
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
|
@ -14,4 +9,4 @@ spec:
|
||||||
port: 80
|
port: 80
|
||||||
targetPort: http
|
targetPort: http
|
||||||
selector:
|
selector:
|
||||||
io.kompose.service: vaultwarden
|
app: vaultwarden
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue