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