diff --git a/apps/plex/base/deployment.yaml b/apps/plex/base/deployment.yaml new file mode 100644 index 0000000..151fd19 --- /dev/null +++ b/apps/plex/base/deployment.yaml @@ -0,0 +1,67 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: plex + namespace: plex + labels: + app.kubernetes.io/name: plex +spec: + selector: + matchLabels: + app.kubernetes.io/name: plex + template: + metadata: + labels: + app.kubernetes.io/name: plex + spec: + hostNetwork: true + securityContext: + runAsUser: 1000 + runAsGroup: 1000 + containers: + - name: plex + image: lscr.io/linuxserver/plex:latest + securityContext: + allowPrivilegeEscalation: false + env: + - name: PUID + value: "1000" + - name: PGID + value: "1000" + - name: TZ + value: "Australia/Sydney" + - name: VERSION + value: docker + - name: PLEX_CLAIM + value: "0" + ports: + - protocol: TCP + containerPort: 80 + name: http + volumeMounts: + - name: plex-config + mountPath: /config + - name: plex-tv + mountPath: /tv + - name: plex-movie + mountPath: /movie + - name: plex-music + mountPath: /music + - name: plex-gv + mountPath: /gv + volumes: + - name: plex-config + hostPath: + path: /mnt/nfs/AppData/plex/config + - name: plex-tv + hostPath: + path: /mnt/nfs/AppData/plex/tv + - name: plex-movie + hostPath: + path: /mnt/nfs/AppData/plex/movie + - name: plex-music + hostPath: + path: /mnt/nfs/AppData/plex/music + - name: plex-gv + hostPath: + path: /mnt/nfs/AppData/plex/gv diff --git a/apps/plex/base/kustomization.yaml b/apps/plex/base/kustomization.yaml new file mode 100644 index 0000000..87b09a3 --- /dev/null +++ b/apps/plex/base/kustomization.yaml @@ -0,0 +1,5 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./deployment.yaml + - ./service.yaml \ No newline at end of file diff --git a/apps/plex/base/service.yaml b/apps/plex/base/service.yaml new file mode 100644 index 0000000..1431eb7 --- /dev/null +++ b/apps/plex/base/service.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + name: plex + namespace: plex + labels: + app.kubernetes.io/name: plex +spec: + selector: + app.kubernetes.io/name: plex + type: ClusterIP + internalTrafficPolicy: Cluster + ports: + - protocol: TCP + port: 8899 + targetPort: 80 + name: http diff --git a/apps/plex/env/k3s-cluster/config.json b/apps/plex/env/k3s-cluster/config.json new file mode 100644 index 0000000..cfba03e --- /dev/null +++ b/apps/plex/env/k3s-cluster/config.json @@ -0,0 +1,12 @@ +{ + "appName": "plex", + "userGivenName": "plex", + "namespace": "plex", + "destNamespace": "plex", + "destServer": "https://kubernetes.default.svc", + "srcPath": "apps/plex/env/k3s-cluster", + "srcRepoURL": "https://github.com/3dwardch3ng/home-cluster-ops.git", + "srcTargetRevision": "", + "labels": null, + "annotations": null +} \ No newline at end of file diff --git a/apps/plex/env/k3s-cluster/ingress.yaml b/apps/plex/env/k3s-cluster/ingress.yaml new file mode 100644 index 0000000..a38a68b --- /dev/null +++ b/apps/plex/env/k3s-cluster/ingress.yaml @@ -0,0 +1,21 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: plex-ingress + namespace: plex + annotations: + nginx.ingress.kubernetes.io/ssl-redirect: "false" + nginx.ingress.kubernetes.io/use-regex: "true" +spec: + ingressClassName: nginx + rules: + - host: "plex.cluster.edward.sydney" + http: + paths: + - pathType: Prefix + path: "/" + backend: + service: + name: plex + port: + number: 8899 \ No newline at end of file diff --git a/apps/plex/env/k3s-cluster/kustomization.yaml b/apps/plex/env/k3s-cluster/kustomization.yaml new file mode 100644 index 0000000..3ea3085 --- /dev/null +++ b/apps/plex/env/k3s-cluster/kustomization.yaml @@ -0,0 +1,5 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ../../base + - ./ingress.yaml \ No newline at end of file diff --git a/resources/namespaces/base/kustomization.yaml b/resources/namespaces/base/kustomization.yaml index f33cb14..2418622 100644 --- a/resources/namespaces/base/kustomization.yaml +++ b/resources/namespaces/base/kustomization.yaml @@ -23,6 +23,7 @@ resources: - ./new-relic.yaml - ./nextcloud.yaml - ./nexus.yaml + - ./plex.yaml - ./postgresql.yaml - ./prometheus.yaml - ./prometheus-operator.yaml diff --git a/resources/namespaces/base/plex.yaml b/resources/namespaces/base/plex.yaml new file mode 100644 index 0000000..4b1f5d7 --- /dev/null +++ b/resources/namespaces/base/plex.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Namespace +metadata: + annotations: + argocd.argoproj.io/sync-options: Prune=false + creationTimestamp: null + name: plex +spec: {} +status: {}