Where we left off, we had documented our gitea deployment with a kubernetes manifest. That works, but it’s a manual and (honestly) painful process. Instead, we will start deploying workloads using helm charts.
Creating helm charts is a lengthy and complex process, which we will not go into for this section. Instead, we will show how to deploy a helm chart.
Now let’s start diving into the real purpose of a homelab: a streaming media server!
In this article (and the final one of this first series!) we will:
k8s@home are a group of people who maintain helm charts for the more… homelabby projects. They are the kubernetes equivalent of linuxserver.io. We will use their charts to deploy jellyfin.
Another webservice, another dns entry! I am using tv.mydomain.com.au
If you are using Let’s Encrypt with HTTP, instead of DNS, you will want to go generate another certificate for this subdomain in rancher.
If you are following along with this guide, you may be using an intel CPU on your host. If so, you can enable hardware acceleration when transcoding video!
If you are using an AMD CPU, you can perform the task using an (unrelated) helm chart here
Easy!
If you are wanting jellyfin to be your media server, you probably have some media stored on a NAS. In my case, it’s a shared folder on my synology NAS, with NFS permissions mapped to my rancher host’s IP.
The capacity for NFS just specifies minimum capacity. You can use as much as you need
Next step is installing Jellyfin.
Change the following:
enabled: true
hosts:
- host: tv.mydomain.com.au
paths:
- path: /
pathType: Prefix
tls:
- secretName: mydomain-production
hosts:
- tv.mydomain.com.au
config:
enabled: true
type: pvc
storageClass: longhorn
size: 10Gi
media:
enabled: true
mountPath: /media
existingClaim: jellyfin-media
resources:
requests:
gpu.intel.com/i915: 1
limits:
gpu.intel.com/i915: 1
You can see the changes here:
These settings are referred to as the values.yaml section of the helm chart. For k8s@home helm charts, there are two separate areas to check for documentation: The “common” values.yaml, and the app specific values.yaml
If you also installed the intel gpu plugin, you can use this opportunity to enable VAAPI encoding at the same time (under profile→dashboard→playback):
With the demonstration of helm installs, the first saga of kubernetes is done! You now have the tools you need to recreate a fully functional kubernetes environment and run all of your favourite web services.
If all goes well this will not be the end of the guide. There’s still so much to cover in a full deployment! The future roadmap aims to cover the following:
Stay tuned for more guides in the future