In this post, we’ll install Helm, explore the essential Helm commands, and deploy a real application: Stirling‑PDF, a powerful self‑hosted PDF toolkit.
Installing Helm on Ubuntu
Helm is the package manager for Kubernetes just like apt is for ubuntu and Helm is the best way to find, share, and use software built for Kubernetes
https://helm.sh/docs/intro/install
Check version
awk k3s-cp-01 ~ ❯ helm version
version.BuildInfo{Version:”v3.20.1″, GitCommit:”a2369ca71c0ef633bf6e4fccd66d634eb379b371″, GitTreeState:”clean”, GoVersion:”go1.25.8″}
Here are the core Helm commands every Kubernetes admin should know:
- helm repo add — add a chart repository
- helm repo update — refresh the repo cache
- helm search repo — search for charts
- helm install — install a chart
- helm list — list installed releases
- helm uninstall — remove a release
- helm upgrade — upgrade an existing release
- helm show values — view configurable options for a chart
All Helm charts are published on ArtifactHub: https://artifacthub.io
Deploying Stirling‑PDF on Kubernetes
Stirling‑PDF is a locally hosted web application for performing PDF operations — merge, split, convert, compress, rotate, OCR, and more.
Pull the Helm Chart
helm pull stirling-pdf/stirling-pdf-chartThis downloads a .tgz package:
stirling-pdf-chart-3.1.0.tgzExtract the Chart
tar -xzvf stirling-pdf-chart-3.1.0.tgzInside the folder:
Chart.yaml
README.md
templates/
values.yamlThe values.yaml file is where you add your custom configuration.
Below is a typical configuration for a homelab setup:
| Setting | Value | Why |
|---|---|---|
| service.type | NodePort | Direct node access, no LoadBalancer needed |
| service.nodePort | 30081 | Fixed port for easy access |
| persistence.enabled | true | Keeps data between restarts |
| persistence.storageClass | local-path | Works with K3s local-path provisioner |
| persistence.size | 1Gi | Enough for temporary PDF storage |
| ingress.enabled | false | Using NodePort instead |
| probes.initialDelaySeconds | 90 | App takes time to start |
Install Stirling‑PDF
helm install stirling-pdf stirling-pdf/stirling-pdf-chart \
--namespace stirling --create-namespace \
-f values.yamlCheck Logs & Resources
Follow logs
kubectl logs -n stirling -l app.kubernetes.io/name=stirling-pdf -fList all resources:
kubectl get all -n stirlingDescribe pod status
kubectl describe pod -l app.kubernetes.io/name=stirling-pdf
kubectl get pvcCheck logs:
kubectl logs -l app.kubernetes.io/name=stirling-pdf --previousUpgrade the Helm Chart
Its very easy to upgrade
helm upgrade stirling-pdf . -n stirlingHelm Rollback
Its very easy to rollback
helm history stirling-pdf
Roll back by version number
helm rollback stirling-pdf 2

