feat(plex): initial commit of plex
This commit is contained in:
parent
e8c2cdca94
commit
91f64320f9
17 changed files with 934 additions and 0 deletions
10
apps/plex/overlays/media/audiobooks-pvc.yaml
Normal file
10
apps/plex/overlays/media/audiobooks-pvc.yaml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: plex-data-audiobooks
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 20Gi
|
||||
20
apps/plex/overlays/media/cert.sops.pem
Normal file
20
apps/plex/overlays/media/cert.sops.pem
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"data": "ENC[AES256_GCM,data:uVfizKnFIFJStCPtdNEJBe4apghX/DbJim4kM75KtuL/TQJ/WJ8Cas5o2Q1cwMggkpuSLCyo6BUwWQoYjSvTonVkFU26O8n2m1Y62Lukg7fOY2ZYvzj79c+YlWPDGstdh1CtGMPdgmZfmC/YlJDyXxx/it4jiCvK2ADF4s+HECfwgOyN5YMwrliPgj3J3maVQAMjnDcs540k1uh3l8bWA+keLE9bqSIEZSQ/e/RkaZ02JDYssFEhCTWBY9RYzaQ5DvXvN8UjdeCz5EtfSeZICxitvkYPjEfLZ9CNAhVnnGTM8/6p1xWNiEnnSwrNqpJ+zK3cixkQNlTgcDA8tcOtTzqU8POtj5itOrJV0mCwpyArK2DfungDR4P0nVlBBuqPxiWjufpDxUfg+IPFhxFKHHGZaOvDZfiXwT/mZFwp31wUbdaKLQkqWAHcAyUN/pabjWzOhSdCWEFh/VlPX4a1CW/yl8YYPEqGz4gzJ9SUM29cUH4GoyLksC/bFf5J92sZ50dj5QD12duuVqYmJGLqTphSjsnRv7AO4EdpFSvO69WoxzkcGzx92dK5mw4RcuW5SCEfu4XaZWCVLCBpnp9Rl3R6BPUdckh5nbDp6L99++swgReZ4z4wWgeUZ60yTgcO+wH5FBGIWBTNlA8Z+C/d3ZGboU4zGqIr6X3ohDu/jKjgA0+2OBcEXPm/zHp2QfqQmUk48AlDUnxcX7wGEB4l48ErBNjhyreNWkmuoZtLwdQUeQc+vstnLOdx3sbMEUVEvyvZVzTfLMhJvkCfFjZyIF7fynNtvMn8wnUSumPkGQ5FqVh1uNnX,iv:zsUQSb6qkBpr5TLYy0FCV4X6b4exTYxmlp+q5wCZoCw=,tag:EIPkQItZvaLUkm9HoQdILw==,type:str]",
|
||||
"sops": {
|
||||
"kms": null,
|
||||
"gcp_kms": null,
|
||||
"azure_kv": null,
|
||||
"hc_vault": null,
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1y26vr5qt6th3wu92rnsgkqcpxxah3pqkqa4khcjjycm3kg40aqyqjgfzx9",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByYnVhODBJV091cXFTbk13\nWUhWREgvMTlGSUtxRUptazA3OUlONjZMV0g0CmhwTFJiZk1zZjA2a2RncHNmdmZX\nckRyNVpPWVJsTlp5ZDlaWWhHcG5TQzgKLS0tIC9EUEFJOFlBWVBVc285RzdYVXlq\nc0RBRW5SNy9wL2s2Q0Fpa21JREVwVlkKIHnlUKipzptrJUyzQumGiSRVm+hsEuq8\n+o7772jG0rwsLt0xQ3cKaQP2Rfeiul3QQXde7bEuT8T/iN6fBZPYkg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2024-05-25T13:09:08Z",
|
||||
"mac": "ENC[AES256_GCM,data:c84fztj6EhtZtm9IdIy3qEq0EFjl4Id5IG1B8kaZChnScTNFLTKb8Hlbc6GMVFM11FfOjscfe6/oa1eZAk6bM4V0LNFi5ysXIbByPcUy5ZaA1agUtSKOlQOD0lIaONhzaAVuQWD7W7m7vz1nYVoUEBNvFplkoZqVgllenJiq4Jo=,iv:CeOKU8Vfls5Bc//n/uTKNJlz6ZwtNskPVj7Da3otw0U=,tag:wkh25T/s1p+oRRuAlYQdZw==,type:str]",
|
||||
"pgp": null,
|
||||
"unencrypted_suffix": "_unencrypted",
|
||||
"version": "3.8.1"
|
||||
}
|
||||
}
|
||||
20
apps/plex/overlays/media/claim-token.sops
Normal file
20
apps/plex/overlays/media/claim-token.sops
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"data": "ENC[AES256_GCM,data:1ng8X1bX139ZqGl+eDddCW13jA6y,iv:/ND91I5kHCbywZKI790D65k9bAPLnuVVH8PQUrTsscM=,tag:Q/dxzOYuegd+W+5MXMeLHA==,type:str]",
|
||||
"sops": {
|
||||
"kms": null,
|
||||
"gcp_kms": null,
|
||||
"azure_kv": null,
|
||||
"hc_vault": null,
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1y26vr5qt6th3wu92rnsgkqcpxxah3pqkqa4khcjjycm3kg40aqyqjgfzx9",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwd3BYZjJkZ3hBaU4weEQ3\nWEhOYVk1Snl5NXg4ZGlVT0lQYTJzck9IYjNzCnQzOVNTenA4T1J0dldiNFMwMmkz\neG1TWndYcVRiaHFublYwdHFpdzE1K0EKLS0tIHppVXI3T24wdzZDNXdqUFBvZURv\nMG5oSVZVYWVTTXQ2VEE1RGpwK2tDN3cKgGRUwjU4xm+hlWuPFKlsZ0d45bsf17lE\naf7VXqgYCHNPiAODVYUobVNuMYuJya132Cmu8kB6Ku+L1odgQ7Fofw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2024-05-27T20:05:44Z",
|
||||
"mac": "ENC[AES256_GCM,data:Aq6ijTj9RL11hpnEhr8/MJeLa37s662FUAVVPdF7pOOs120X9yINNLIPtThd2qI0A7N56HwFHjAt5N9yLYkMc/vzDgtTJXCDPmS0/OPmy+RRN6uWiUq6Rct21l1oHwZ6Ce3bnkwQhuXb13m6rlUZfAjLG1DYJWFKPsayyM6FPMk=,iv:MpkMTuWvolQlZAZX+ettEVMQw08kmOa+uqSl6gOsL9M=,tag:aFw56/V3ltBO3nF5FKUFUw==,type:str]",
|
||||
"pgp": null,
|
||||
"unencrypted_suffix": "_unencrypted",
|
||||
"version": "3.8.1"
|
||||
}
|
||||
}
|
||||
11
apps/plex/overlays/media/config.json
Normal file
11
apps/plex/overlays/media/config.json
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"appName": "plex",
|
||||
"userGivenName": "plex",
|
||||
"destNamespace": "media",
|
||||
"destServer": "https://kubernetes.default.svc",
|
||||
"srcPath": "apps/plex/overlays/media",
|
||||
"srcRepoURL": "ssh://git@gitea-ssh.gitops.svc.cluster.local:2222/davad/argo.git",
|
||||
"srcTargetRevision": "",
|
||||
"labels": null,
|
||||
"annotations": null
|
||||
}
|
||||
42
apps/plex/overlays/media/deployment-patch.yaml
Normal file
42
apps/plex/overlays/media/deployment-patch.yaml
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: plex
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
volumes:
|
||||
- name: plex-data-audiobooks
|
||||
nfs:
|
||||
server: 192.168.1.215
|
||||
path: /export/audiobooks
|
||||
- name: plex-data-music
|
||||
nfs:
|
||||
server: 192.168.1.215
|
||||
path: /export/music
|
||||
- name: plex-data-videos
|
||||
nfs:
|
||||
server: 192.168.1.215
|
||||
path: /export/videos
|
||||
containers:
|
||||
- name: plex
|
||||
env:
|
||||
- name: PLEX_CLAIM
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: plex-claim
|
||||
key: claim-token
|
||||
|
||||
- name: ADVERTISE_IP
|
||||
value: https://plex.nc.landry.land
|
||||
- name: HOSTNAME
|
||||
value: plex.nc.landry.land
|
||||
- name: ALLOWED_NETWORKS
|
||||
value: 192.168.1.1/16
|
||||
volumeMounts:
|
||||
- mountPath: /audiobooks
|
||||
name: plex-data-audiobooks
|
||||
- mountPath: /music
|
||||
name: plex-data-music
|
||||
- mountPath: /media
|
||||
name: plex-data-videos
|
||||
30
apps/plex/overlays/media/ingress.yaml
Normal file
30
apps/plex/overlays/media/ingress.yaml
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: plex
|
||||
labels:
|
||||
app.kubernetes.io/name: plex
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt-issuer
|
||||
|
||||
gethomepage.dev/enabled: "true"
|
||||
gethomepage.dev/name: plex
|
||||
gethomepage.dev/group: Files
|
||||
gethomepage.dev/href: https://plex.nc.landry.land
|
||||
gethomepage.dev/description: Movies, Music, TV shows, and Audiobooks
|
||||
gethomepage.dev/icon: plex
|
||||
spec:
|
||||
tls:
|
||||
- hosts:
|
||||
- "plex.nc.landry.land"
|
||||
rules:
|
||||
- host: "plex.nc.landry.land"
|
||||
http:
|
||||
paths:
|
||||
- path: "/"
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: plex-tcp
|
||||
port:
|
||||
name: http
|
||||
15
apps/plex/overlays/media/kustomization.yaml
Normal file
15
apps/plex/overlays/media/kustomization.yaml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../../base
|
||||
- ingress.yaml
|
||||
- audiobooks-pvc.yaml
|
||||
- music-pvc.yaml
|
||||
- photos-pvc.yaml
|
||||
- videos-pvc.yaml
|
||||
|
||||
patches:
|
||||
- path: deployment-patch.yaml
|
||||
|
||||
generators:
|
||||
- secrets.yaml
|
||||
10
apps/plex/overlays/media/music-pvc.yaml
Normal file
10
apps/plex/overlays/media/music-pvc.yaml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: plex-data-music
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 20Gi
|
||||
10
apps/plex/overlays/media/photos-pvc.yaml
Normal file
10
apps/plex/overlays/media/photos-pvc.yaml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: plex-data-photos
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 20Gi
|
||||
14
apps/plex/overlays/media/secrets.yaml
Normal file
14
apps/plex/overlays/media/secrets.yaml
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
apiVersion: viaduct.ai/v1
|
||||
kind: ksops
|
||||
metadata:
|
||||
name: ksops-generator
|
||||
annotations:
|
||||
config.kubernetes.io/function: |
|
||||
exec:
|
||||
path: ksops
|
||||
secretFrom:
|
||||
- metadata:
|
||||
name: plex-claim
|
||||
type: Opaque
|
||||
binaryFiles:
|
||||
- claim-token=./claim-token.sops
|
||||
10
apps/plex/overlays/media/videos-pvc.yaml
Normal file
10
apps/plex/overlays/media/videos-pvc.yaml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: plex-data-videos
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 20Gi
|
||||
Loading…
Add table
Add a link
Reference in a new issue