Add Plex GitOps application for automatic image updates
- Create organized directory structure (applications/, helm-values/) - Add ArgoCD Application manifest for Plex with image auto-updater - Configure automatic upgrade detection from current 1.41.8 to latest - Enable Git write-back for GitOps workflow - Use existing kube-plex chart with LinuxServer Plex image 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,54 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: plex
|
||||||
|
namespace: argocd
|
||||||
|
annotations:
|
||||||
|
# Enable automatic image updates for Plex
|
||||||
|
argocd-image-updater.argoproj.io/image-list: plex=linuxserver/plex
|
||||||
|
# Use newest-build strategy to detect newer versions than 1.41.8
|
||||||
|
argocd-image-updater.argoproj.io/plex.update-strategy: newest-build
|
||||||
|
# Write changes back to Git repository (GitOps workflow)
|
||||||
|
argocd-image-updater.argoproj.io/write-back-method: git
|
||||||
|
# Git configuration for write-back
|
||||||
|
argocd-image-updater.argoproj.io/git-branch: master
|
||||||
|
argocd-image-updater.argoproj.io/git-commit-user: argocd-image-updater
|
||||||
|
argocd-image-updater.argoproj.io/git-commit-email: argocd@turing.lan
|
||||||
|
argocd-image-updater.argoproj.io/git-commit-message: "chore: update Plex image to {{.NewTag}}"
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
# Use the kube-plex chart repository
|
||||||
|
repoURL: https://github.com/munnerz/kube-plex
|
||||||
|
path: charts/kube-plex
|
||||||
|
targetRevision: HEAD
|
||||||
|
helm:
|
||||||
|
releaseName: plex
|
||||||
|
# Override with values from our Gitea repository
|
||||||
|
parameters:
|
||||||
|
- name: image.repository
|
||||||
|
value: linuxserver/plex
|
||||||
|
- name: image.tag
|
||||||
|
value: "1.41.8"
|
||||||
|
- name: claimToken
|
||||||
|
value: "claim-Ku2YYmJzDB1mpyG6YD7x"
|
||||||
|
- name: timezone
|
||||||
|
value: "Europe/Amsterdam"
|
||||||
|
- name: service.type
|
||||||
|
value: "LoadBalancer"
|
||||||
|
- name: service.port
|
||||||
|
value: "32400"
|
||||||
|
- name: rbac.create
|
||||||
|
value: "true"
|
||||||
|
- name: kubePlex.enabled
|
||||||
|
value: "false"
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: plex
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
- ServerSideApply=true
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
claimToken: "claim-Ku2YYmJzDB1mpyG6YD7x"
|
||||||
|
|
||||||
|
image:
|
||||||
|
repository: linuxserver/plex
|
||||||
|
tag: 1.41.8
|
||||||
|
pullPolicy: Always
|
||||||
|
|
||||||
|
|
||||||
|
kubePlex:
|
||||||
|
enabled: false # kubePlex (transcoder job) is disabled because not available on ARM. The transcoding will be performed by the main Plex instance instead of a separate Job.
|
||||||
|
|
||||||
|
timezone: Europe/Amsterdam
|
||||||
|
|
||||||
|
service:
|
||||||
|
type: LoadBalancer # We will use a LoadBalancer to obtain a virtual IP that can be exposed to Plex Media via our router
|
||||||
|
port: 32400 # Port to expose Plex
|
||||||
|
|
||||||
|
rbac:
|
||||||
|
create: true
|
||||||
|
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/arch: amd64
|
||||||
|
|
||||||
|
persistence:
|
||||||
|
transcode:
|
||||||
|
claimName: "plex-transcode"
|
||||||
|
data:
|
||||||
|
claimName: "plex-data"
|
||||||
|
config:
|
||||||
|
claimName: "plex-config"
|
||||||
|
|
||||||
|
# GPU support for hardware-accelerated transcoding
|
||||||
|
gpu:
|
||||||
|
enabled: true
|
||||||
|
hostPath: "/dev/dri"
|
||||||
|
mountPath: "/dev/dri"
|
||||||
|
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: "2Gi"
|
||||||
|
cpu: "1"
|
||||||
|
ephemeral-storage: "50Mi"
|
||||||
|
limits:
|
||||||
|
memory: "10Gi"
|
||||||
|
cpu: "3"
|
||||||
|
ephemeral-storage: "1Gi"
|
||||||
|
podAnnotations: {}
|
||||||
|
proxy:
|
||||||
|
enable: false
|
||||||
Reference in New Issue
Block a user