In-cluster Redis
What does zop.dev create for In-cluster Redis?
zop.dev deploys Redis in-cluster via the redis/local Helm release, attached through a namespace's local_redis input or the inclusterredis datastore kind, with 4 knobs: min and max CPU and memory, storage_class, and disk_size. There is no cloud service bill; the cost is node capacity and the persistent volume.
| Field | Value |
|---|---|
| Cloud | cross-provider |
For dev environments and light workloads, a managed cache can be overkill. zop.dev deploys Redis as an in-cluster StatefulSet on any cloud, giving teams a cache endpoint without a cloud service bill.
redis/local attached through local_redis
In-cluster Redis Helm release (redis/local), attached through the namespace’s local_redis input or the inclusterredis datastore kind.
CPU, memory, storage class, and disk size
min/max CPU and memory; storage_class; disk_size.Available as the inclusterredis datastore kind
Available on any provider as the inclusterredis datastore kind in the application catalog (not on OCI namespaces via Terraform).
The bill moves; it does not vanish
No managed-cache invoice appears, but the cache is not free. It occupies node CPU and memory between the min and max you set, and its persistent volume bills as an ordinary cloud disk. For a dev environment, that marginal cost rounds to nothing on nodes you already run, which is the point. The accounting difference matters at review time: managed caches show up as their own line item, while this one hides inside “cluster compute,” so right-sizing it is a resource limits exercise rather than a SKU choice.
storage_class is decided at bind time
disk_size and storage_class shape the PVC, and a volume’s class is fixed once bound, so
changing it later means a new volume and a data move. Whether the disk can grow at all
depends on the class allowing expansion, and no class allows shrinking. For a pure cache this
is barely a concern; it becomes one the moment the instance quietly accumulates state someone
minds losing, which is exactly how dev-grade Redis instances tend to drift.
Where it stops being enough
A single in-cluster instance has no replica and no managed failover: a node drain or pod
eviction is a cache flush, and recovery time is however long repopulation takes. That is the
honest trade against Memorystore, ElastiCache, or Azure Cache: those bill continuously but
survive maintenance. The platform makes the upgrade path deliberate: the same application
attachment concept covers both, so promoting an environment from inclusterredis to a managed
cache kind is a datastore swap, not an application rewrite. Use this one where a cold cache
is an inconvenience; use a managed tier where it is an outage.