0cd5446d6b
Rebuild the adult media instance as 'fafflix' following the same HA pattern
as the kids instance (cheeztv): Postgres-backed jellyfin-ha fork, Valkey
transcode-lease store, shared-RWX transcode, CNPG + k8up/restic backups,
static CephFS media PVs.
- Add apps/base/fafflix (namespace/labels/secrets/buckets/Vault path fafflix-*)
- fafflix mounts the shared movies/tv subvolumes' adult subtree at
/media/{movies,tv} plus the kids subtree at /media/{movies,tv}-kids so it can
resume kids content started on cheeztv; new unique static PV volumeHandles
- Keep serving the legacy hostname jellyfin.k8s.syd1.au.unkin.net (fafflix-tls);
dedicated fafflix domain deferred, no new public host
- config PVC on cephfs-raid5-delete
- Remove apps/base/jellyfin + overlay; swap jellyfin->fafflix in the media
ApplicationSet glob and AppProject namespace destination
- No data currently on the adult instance, so the wipe/replace is sanctioned
37 lines
954 B
YAML
37 lines
954 B
YAML
---
|
|
# PgBouncer pooler in front of the fafflix-postgres cluster. Jellyfin connects
|
|
# here (fafflix-postgres-pooler:5432) rather than the -rw service so EF Core's
|
|
# connection churn is absorbed by the pool.
|
|
apiVersion: postgresql.cnpg.io/v1
|
|
kind: Pooler
|
|
metadata:
|
|
name: fafflix-postgres-pooler
|
|
namespace: fafflix
|
|
spec:
|
|
cluster:
|
|
name: fafflix-postgres
|
|
instances: 2
|
|
pgbouncer:
|
|
parameters:
|
|
default_pool_size: "50"
|
|
max_client_conn: "200"
|
|
paused: false
|
|
poolMode: session
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: fafflix-pooler
|
|
spec:
|
|
affinity:
|
|
podAntiAffinity:
|
|
requiredDuringSchedulingIgnoredDuringExecution:
|
|
- labelSelector:
|
|
matchExpressions:
|
|
- key: app
|
|
operator: In
|
|
values:
|
|
- fafflix-pooler
|
|
topologyKey: kubernetes.io/hostname
|
|
containers: []
|
|
type: rw
|