This commit is contained in:
2024-05-22 12:49:28 -05:00
commit 35b77bb0df
219 changed files with 9997 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
apiVersion: v2
name: tubearchivist
version: 0.0.7
sources:
- https://github.com/tubearchivist/tubearchivist
- https://github.com/alexlebens/helm-charts/charts/tubearchivist
- https://github.com/tubearchivist/tubearchivist-jf
- https://github.com/alexlebens/helm-charts/charts/tubearchivist-to-jellyfin
dependencies:
- name: tubearchivist
version: 0.2.7
repository: http://alexlebens.github.io/helm-charts
appVersion: v0.4.6

View File

@@ -0,0 +1,83 @@
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: tubearchivist-config-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: ELASTIC_PASSWORD
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /tubearchivist/env
metadataPolicy: None
property: ELASTIC_PASSWORD
- secretKey: ES_URL
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /tubearchivist/env
metadataPolicy: None
property: ES_URL
- secretKey: REDIS_HOST
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /tubearchivist/env
metadataPolicy: None
property: REDIS_HOST
- secretKey: TA_HOST
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /tubearchivist/env
metadataPolicy: None
property: TA_HOST
- secretKey: TA_PASSWORD
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /tubearchivist/env
metadataPolicy: None
property: TA_PASSWORD
- secretKey: TA_USERNAME
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /tubearchivist/env
metadataPolicy: None
property: TA_USERNAME
---
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: tubearchivist-elasticsearch-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: ELASTIC_PASSWORD
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /tubearchivist/env
metadataPolicy: None
property: ELASTIC_PASSWORD

View File

@@ -0,0 +1,19 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: tubearchivist-nfs-storage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
volumeName: tubearchivist-nfs-storage
storageClassName: nfs-client
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi

View File

@@ -0,0 +1,25 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: tubearchivist-nfs-storage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-client
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
nfs:
path: {{ .Values.storage.youtube.nfsPath }}
server: {{ .Values.storage.youtube.nfsServer }}
mountOptions:
- vers=4
- minorversion=1
- noac

View File

@@ -0,0 +1,46 @@
tubearchivist:
deployment:
env:
TZ: US/Central
envFrom:
- secretRef:
name: tubearchivist-config-secret
resources:
limits:
memory: 2Gi
cpu: 1000m
ingress:
enabled: true
className: traefik
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
cert-manager.io/cluster-issuer: letsencrypt-issuer
host: tubearchivist.alexlebens.net
persistence:
cache:
enabled: true
storageClassName: ceph-block
storageSize: 80Gi
youtube:
claimName: tubearchivist-nfs-storage
elasticsearch:
global:
storageClass: ceph-block
extraEnvVarsSecret: tubearchivist-elasticsearch-secret
extraConfig:
path:
repo: /usr/share/elasticsearch/data/snapshot
extraVolumes:
- name: snapshot
nfs:
path: /volume2/Storage/TubeArchivist
server: synologybond.alexlebens.net
extraVolumeMounts:
- name: snapshot
mountPath: /usr/share/elasticsearch/data/snapshot
snapshotRepoPath: /usr/share/elasticsearch/data/snapshot
storage:
youtube:
nfsPath: /volume2/Storage/YouTube
nfsServer: synologybond.alexlebens.net