Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: coolguy1771/home-ops
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 9f490d2a26fe7afbca9777369b0051cf01692da9
Choose a base ref
..
head repository: coolguy1771/home-ops
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 4e1455b43b7102d21400fa0ad43b02a4cf38da01
Choose a head ref
33 changes: 33 additions & 0 deletions kubernetes/kyak/apps/media/bazarr/app/externalsecret.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/external-secrets.io/externalsecret_v1beta1.json
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: bazarr
spec:
secretStoreRef:
kind: ClusterSecretStore
name: onepassword-connect
target:
name: bazarr-secret
template:
engineVersion: v2
data:
JELLYFIN_TOKEN: "{{ .JELLYFIN_TOKEN }}"
POSTGRES_HOST: &dbHost postgres16-rw.database.svc.cluster.local
POSTGRES_PORT: "5432"
POSTGRES_DATABASE: &dbName bazarr
POSTGRES_USERNAME: &dbUser "{{ .BAZARR_POSTGRES_USER }}"
POSTGRES_PASSWORD: &dbPass "{{ .BAZARR_POSTGRES_PASSWORD }}"
INIT_POSTGRES_DBNAME: *dbName
INIT_POSTGRES_HOST: *dbHost
INIT_POSTGRES_USER: *dbUser
INIT_POSTGRES_PASS: *dbPass
INIT_POSTGRES_SUPER_PASS: "{{ .POSTGRES_SUPER_PASS }}"
dataFrom:
- extract:
key: cloudnative-pg
- extract:
key: jellyfin
- extract:
key: bazarr
146 changes: 146 additions & 0 deletions kubernetes/kyak/apps/media/bazarr/app/helmrelease.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
---
# 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: bazarr
spec:
interval: 30m
chart:
spec:
chart: app-template
version: 3.5.1
sourceRef:
kind: HelmRepository
name: bjw-s
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
dependsOn:
- name: rook-ceph-cluster
namespace: rook-ceph
values:
controllers:
bazarr:
annotations:
reloader.stakater.com/auto: "true"
initContainers:
init-db:
image:
repository: ghcr.io/onedr0p/postgres-init
tag: 16
envFrom: &envFrom
- secretRef:
name: bazarr-secret
containers:
app:
image:
repository: ghcr.io/onedr0p/bazarr
tag: 1.4.5@sha256:c0bf91443c32f3978777b4ddd2732908f51b157bbe00cd3259b23f7716bb4af7
env:
TZ: America/New_York
POSTGRES_ENABLED: "true"
envFrom:
- secretRef:
name: bazarr-secret

probes:
liveness: &probes
enabled: true
custom: true
spec:
httpGet:
path: /health
port: &port 6767
initialDelaySeconds: 0
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
readiness: *probes
securityContext: &securityContext
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities: { drop: ["ALL"] }
resources:
requests:
cpu: 10m
limits:
memory: 1Gi
# subcleaner:
# image:
# repository: registry.k8s.io/git-sync/git-sync
# tag: v4.3.0@sha256:5813a7da0ccd58f6dfb9d5e48480e2877355e6bb3d7d81c8908eb1adc3a23b6e
# env:
# GITSYNC_REPO: https://github.com/KBlixt/subcleaner
# GITSYNC_REF: master
# GITSYNC_PERIOD: 24h
# GITSYNC_ROOT: /add-ons
# resources:
# requests:
# cpu: 10m
# limits:
# memory: 128Mi
# securityContext: *securityContext
defaultPodOptions:
securityContext:
runAsNonRoot: true
runAsUser: 568
runAsGroup: 568
fsGroup: 568
fsGroupChangePolicy: OnRootMismatch
seccompProfile: { type: RuntimeDefault }
service:
app:
controller: bazarr
ports:
http:
port: *port
ingress:
app:
annotations:
external-dns.alpha.kubernetes.io/target: internal.${SECRET_PUBLIC_DOMAIN}
cert-manager.io/cluster-issuer: letsencrypt-production
className: internal
hosts:
- host: &host bazarr.${SECRET_PUBLIC_DOMAIN}
paths:
- path: /
service:
identifier: app
port: http
tls:
- hosts: [*host]
secretName: "{{ .Release.Name }}-tls"
persistence:
add-ons:
type: emptyDir
cache:
type: emptyDir
globalMounts:
- path: /config/cache
config:
existingClaim: bazarr
log:
type: emptyDir
globalMounts:
- path: /config/log
media:
type: nfs
server: osiris.286k.co
path: /pluto/media
globalMounts:
- path: /media
scripts:
type: configMap
name: bazarr-scripts
defaultMode: 0775
globalMounts:
- readOnly: true
tmp:
type: emptyDir
17 changes: 17 additions & 0 deletions kubernetes/kyak/apps/media/bazarr/app/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
# - ../../../../../shared/templates/gatus/guarded
- ../../../../templates/volsync
configMapGenerator:
- name: bazarr-scripts
files:
- subcleaner.sh=./resources/subcleaner.sh
generatorOptions:
disableNameSuffixHash: true
annotations:
kustomize.toolkit.fluxcd.io/substitute: disabled
18 changes: 18 additions & 0 deletions kubernetes/kyak/apps/media/bazarr/app/resources/subcleaner.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/usr/bin/env bash

printf "Cleaning subtitles for '%s' ...\n" "$1"
python3 /add-ons/subcleaner/subcleaner.py "$1" -s

case $1 in
*movies*) section="1";;
*shows*) section="2";;
esac

if [[ -n "$section" ]]; then
printf "Refreshing Jellyfin section '%s' for '%s' ...\n" "$section" "$(dirname "$1")"
/usr/bin/curl -I -X GET -G \
--data-urlencode "path=$(dirname "$1")" \
--data-urlencode "X-Plex-Token=${PLEX_TOKEN}" \
--no-progress-meter \
"http://jellyfin.media.svc.cluster.local:8096/library/sections/${section}/refresh"
fi
27 changes: 27 additions & 0 deletions kubernetes/kyak/apps/media/bazarr/ks.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
# 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 bazarr
namespace: flux-system
spec:
targetNamespace: media
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn:
- name: external-secrets-stores
- name: volsync
path: ./kubernetes/kyak/apps/media/bazarr/app
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: false
interval: 30m
timeout: 5m
postBuild:
substitute:
APP: *app
VOLSYNC_CAPACITY: 5Gi
1 change: 1 addition & 0 deletions kubernetes/kyak/apps/media/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -7,6 +7,7 @@ resources:
- ./namespace.yaml
# Flux-Kustomizations
# - ./autobrr/ks.yaml
- ./bazarr/ks.yaml
- ./jellyfin/ks.yaml
- ./jellyseerr/ks.yaml
- ./prowlarr/ks.yaml