feat: jellyseer

This commit is contained in:
auricom
2025-03-24 13:53:57 +01:00
parent bcffaeda37
commit 0a77c1a790
9 changed files with 198 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/external-secrets.io/externalsecret_v1beta1.json
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: jellyseerr
spec:
secretStoreRef:
kind: ClusterSecretStore
name: onepassword
target:
name: jellyseerr-secret
template:
data:
API_KEY: "{{ .JELLYSEERR_API_KEY }}"
dataFrom:
- extract:
key: jellyseerr

View File

@@ -0,0 +1,105 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2.schema.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: &app jellyseerr
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: app-template
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
values:
controllers:
jellyseerr:
annotations:
reloader.stakater.com/auto: "true"
containers:
app:
image:
repository: ghcr.io/fallenbagel/jellyseerr
tag: 2.5.1@sha256:52ca0b18c58ec4e769b8acae9beaae37a520a365c7ead52b7fc3ba1c3352d1f0
env:
TZ: ${TIMEZONE}
LOG_LEVEL: "info"
PORT: &port 8080
# envFrom:
# - secretRef:
# name: jellyseerr-secret
probes:
liveness: &probes
enabled: true
custom: true
spec:
httpGet:
path: /api/v1/status
port: *port
initialDelaySeconds: 0
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
readiness: *probes
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities: { drop: ["ALL"] }
resources:
requests:
cpu: 10m
limits:
memory: 2Gi
defaultPodOptions:
securityContext:
runAsNonRoot: true
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch
service:
app:
controller: *app
ports:
http:
port: *port
ingress:
app:
enabled: true
className: external
annotations:
hajimari.io/icon: simple-icons:jellyfish-outline
hosts:
- host: &host1 "{{ .Release.Name }}.${SECRET_EXTERNAL_DOMAIN}"
paths: &paths
- path: /
service:
identifier: app
port: http
- host: &host2 requests.${SECRET_EXTERNAL_DOMAIN}
paths: *paths
tls:
- hosts:
- *host1
- *host2
persistence:
config:
existingClaim: *app
globalMounts:
- path: /app/config
config-cache:
existingClaim: jellyseerr-cache
globalMounts:
- path: /app/config/cache
config-logs:
type: emptyDir
globalMounts:
- path: /app/config/logs
tmp:
type: emptyDir

View File

@@ -0,0 +1,11 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/kustomization.json
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: default
resources:
# - ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../templates/gatus/external
- ../../../../templates/volsync
- ./pvc.yaml

View File

@@ -0,0 +1,11 @@
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jellyseerr-cache
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 15Gi
storageClassName: rook-ceph-block

View File

@@ -0,0 +1,29 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app jellyseerr
namespace: flux-system
spec:
targetNamespace: default
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn:
- name: rook-ceph-cluster
- name: external-secrets-stores
- name: volsync
path: ./kubernetes/apps/default/jellyseerr/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m
postBuild:
substitute:
APP: *app
VOLSYNC_CAPACITY: 5Gi

View File

@@ -22,6 +22,7 @@ resources:
- ./homelab/ks.yaml
- ./homepage/ks.yaml
- ./jellyfin/ks.yaml
- ./jellyseerr/ks.yaml
- ./joplin/ks.yaml
- ./komf/ks.yaml
- ./komga/ks.yaml

View File

@@ -4,3 +4,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helm
- ./oci

View File

@@ -0,0 +1,16 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/source.toolkit.fluxcd.io/ocirepository_v1beta2.json
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: OCIRepository
metadata:
name: app-template
spec:
interval: 1h
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 3.7.3
url: oci://ghcr.io/bjw-s/helm/app-template
verify:
provider: cosign

View File

@@ -0,0 +1,6 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./app-template.yaml