clusterplex icon indicating copy to clipboard operation
clusterplex copied to clipboard

Kubernetes Helm Chart

Open AngellusMortis opened this issue 2 years ago • 9 comments

Is your feature request related to a problem? Please describe.

No.

Describe the solution you'd like

It would be great to have a Helm Chart to be able to install the cluster on a Kubernetes cluster.

Describe alternatives you've considered

There could be raw docs on how to install on a Kubernetes cluster as a starting point, but Docker Swarm is not really a viable alternative when you are running a cluster.

AngellusMortis avatar Jul 18 '22 23:07 AngellusMortis

Just a note for this one, setting this up in my Kubernetes cluster is on my todo. When I get around to it, I will probably make a PR with docs on how to do it (raw without Helm, using k8s manifests). I may try to figure out Helm and make a chart as well.

AngellusMortis avatar Jul 19 '22 21:07 AngellusMortis

That would be awesome!! I don't have a k8s cluster at hand at the moment to create working deployment examples or a Helm Chart and test it out. It would be very cool if some of the others users already running it in k8s could provide some samples, either within this repo or on their own github repos.

pabloromeo avatar Jul 25 '22 19:07 pabloromeo

This issue is stale because it has been open for 30 days with no activity.

github-actions[bot] avatar Aug 25 '22 03:08 github-actions[bot]

FYI, I finally got around to setting up a k3s cluster, so I'll soon be sharing example k8s manifests for setting it all up.

pabloromeo avatar Sep 01 '22 02:09 pabloromeo

I have consolidated the manifests I use to deploy my instance of ClusterPlex into a single file with some commented section and notes on deployment. As of this comment it is configured to use the latest 1.3.17 release that includes the support for the EAE workers. Please read my comment in the GIST if you are going to use this for more information. This should help people who want to get started while something more official is created.

https://gist.github.com/brandan-schmitz/7f775e30c17022caf62e3cccb5c07606

@pabloromeo I have lots of experience with K8s and creating helm charts if you would like me to take a stab at it I sure can. PS your suggestion of the PMS_IP was the solution. I did not realize Plex did not like that and I was not actually seeing any logs in PMS about it dropping connections.

brandan-schmitz avatar Sep 04 '22 04:09 brandan-schmitz

@brandan-schmitz oh, help with the creation of a helm chart would be amazing! I've mostly just used Helm as end user, never attempted to create something elaborate or highly configurable for others. Yeah, feel free to take a stab at it, I'm sure it'll be useful to everyone!

Regarding the PMS_IP issue, yeah, it's kind of annoying that plex isn't too happy with progressUrl calls coming from nodes others than itself. I've been thinking of alternatives around this, to avoid the need for the configuration or subnets or allowing access without auth in Plex. Maybe a tiny proxy deployed as a sidecar on PMS or something like that. Gotta do a few tests to see what's viable.

pabloromeo avatar Sep 05 '22 00:09 pabloromeo

FYI the new v1.4.0 release just added some very interesting stuff I think.

The new local relay means there is no longer a need for setting up the subnet or ips of workers to be allowed without Auth, it also allows us to use plex's service name instead of using the PMS_IP and simplifies config for secured connections, and there's no need now to be sharing /tmp, just /transcode.

I've also reorganized the documentation and provided an example manifest of running it on k8s (this one is a mix between @brandan-schmitz and my own setup which uses a replicaSet instead of a deployment for workers).

Documentation is now a bit more clear about data sharing and the readwritemany volumes.

pabloromeo avatar Sep 19 '22 11:09 pabloromeo

Nice work @pabloromeo the proxy is a great idea to solve the issue with the service names. I was going to look at working on a helm chart sometime this week so this timing is perfect.

brandan-schmitz avatar Sep 19 '22 11:09 brandan-schmitz

Thanks! :) yeah, it also simplified the config in general, around secure connections, https, and auth. Beware that it's a new env variable to use in place of PMS_IP. A helm chart would be a great way to set it up too. I don't mind doing yaml manifests directly but it might be a bit too verbose for users who want to just tweak a few settings and define the PVCs in values.yaml and call it a day.

pabloromeo avatar Sep 19 '22 12:09 pabloromeo

This issue is stale because it has been open for 30 days with no activity.

github-actions[bot] avatar Oct 20 '22 03:10 github-actions[bot]

This issue was closed because it has been inactive for 14 days since being marked as stale.

github-actions[bot] avatar Nov 04 '22 03:11 github-actions[bot]

@pabloromeo I know it has been some time since this was closed as stale, but I managed to finally get around to creating a helm chart for ClusterPlex that I use in my cluster. It is very configurable with appropriate stuff for each component as well as easily allowing the creation of the proper shared storage volumes. Please see pull request #222

brandan-schmitz avatar Jun 08 '23 06:06 brandan-schmitz

That's awesome @brandan-schmitz!! I'll take a look and merge, I'm sure it will be useful to others.

pabloromeo avatar Jun 08 '23 14:06 pabloromeo