Lesson 13: Storage and packaging — PVC, Helm and GitOps
Until now our Pods have been "disposable": when they are deleted or restarted, any files written inside them vanish. That is fine for an app that stores nothing, but a problem for a database. In this lesson we meet three tools that complete the picture. First — a PersistentVolumeClaim (PVC for short
A Pod is like a whiteboard that wipes clean every time it is switched off; a PVC is a USB drive that stays full. Helm is a flat-pack furniture box, and GitOps says: "whatever is written in the notebook — that is reality".
- PersistentVolumeClaim
- An object that requests durable storage of a given size. A Pod attaches to it, and the data survives even after the Pod is deleted or restarted — like an external hard drive.
- Helm
- The package manager for Kubernetes. It bundles a set of YAML files into one template (a "chart") with a values file you can tune, so the same package installs the app across several environments.
- GitOps
- A way of working where the Git repo is the single source of truth for the cluster's state. A controller (for example ArgoCD or Flux) continuously compares the cluster to the repo and reconciles it to match automatically.
- Access Mode
- A PVC setting that decides how the volume may be attached. ReadWriteOnce means only one node can write to it at a time — the most common mode for a single app's disk.
- Chart Values
- A file (values.yaml) that supplies the changeable values to a Helm chart — for example an image name, replica count, or storage size — so the same template is tailored per environment without duplicating YAML.