A fork of Rancher's local-path-provisioner at v0.0.36. The behaviour is unchanged and deliberately so — a directory on the node a pod lands on is the right thing for a disk. What changes is identity. The provisioner answers to hanzo.ai/volume rather than rancher.io/local-path. That is not branding: two provisioners sharing one name race for the same claims, and a stock k3s carries the upstream one, so a cluster running both would settle our storage by chance. Data lives at /var/lib/hanzo/volume, so reading a Hanzo cluster does not mean learning another vendor's directory. Apache-2.0 as published, unaltered, with Rancher's attribution in NOTICE. The README says what this is not: durability. A volume here dies with its node. That is hanzoai/replicate's question, one layer up, and keeping the two apart is what lets the disk stay this simple.
1.6 KiB
Volume
Node-local persistent volumes for a Hanzo cluster.
A PersistentVolumeClaim on one of these storage classes gets a directory on the node its pod lands on. That is the whole behaviour, and it is the right one for a disk: fast, no network in the path, nothing to operate.
provisioner hanzo.ai/volume
data /var/lib/hanzo/volume
config the hanzo-volume-config ConfigMap
What this is not
It is not durability. A volume here lives on exactly one node, and a node
that goes takes its volumes with it. Durability is a separate concern and has
its own answer: hanzoai/replicate streams a tenant's SQLite to object storage
and restores it on a miss, so a service can come back on another node with its
data. Disk and durability are different questions; keeping them apart is what
lets the disk stay simple.
A storage class named for network-attached block storage but provisioned by this is a lie an operator will eventually act on. Name a class for what it is.
Why it is ours
It is a fork of Rancher's local-path-provisioner (see NOTICE), and the fork is about identity rather than behaviour:
hanzo.ai/volume, so a stock k3srancher.io/local-pathon the same cluster cannot answer for our claims. Two provisioners sharing one name race for the same PVCs, and which one wins is not something a cluster should decide by chance./var/lib/hanzo, because an operator reading a Hanzo cluster should not have to learn another vendor's directory to find their data.
Build
make # binary
go test ./... # tests