Skip to content

Commit 411403f

Browse files
Add blog post: Introduction to Valkey helm chart
Signed-off-by: cherukum-amazon <[email protected]>
1 parent 2614881 commit 411403f

File tree

2 files changed

+137
-0
lines changed

2 files changed

+137
-0
lines changed
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
+++
2+
title = "Valkey Helm: The new way to deploy Valkey on Kubernetes"
3+
date = 2025-11-05
4+
description = "A guide on why the new Valkey Helm chart exists, how it helps, and how to migrate from Bitnami."
5+
authors = ["maheshcherukumilli"]
6+
[extra]
7+
featured = true
8+
featured_image = "/assets/media/featured/valkey-helm.webp"
9+
+++
10+
11+
Bitnami is changing how it publishes and supports many container images and Helm charts (see [charts issue #35164](https://github.com/bitnami/charts/issues/35164), [charts issue #36215](https://github.com/bitnami/charts/issues/36215), and the [Bitnami Secure Images announcement](https://news.broadcom.com/app-dev/broadcom-introduces-bitnami-secure-images-for-production-ready-containerized-applications)). Some images move behind new terms, and older tags may not be available as before. If your pipelines pull Bitnami charts or images during deploys, you can see rollouts fail (`ImagePullBackOff`, auth/404), clusters drift (staging keeps old cached bits while prod can’t pull or resolves a different tag), and “invisible” upgrades when a moved tag points to a new digest. During incidents, rollbacks slow down or fail because the old image isn’t fetchable. Compliance can break, security patches can stall behind limits or paywalls, and you may face surprise licensing or mirroring costs. Net effect: slower releases, harder debugging, inconsistent environments, and higher operational and business risk.
12+
13+
To reduce the impact on Valkey deployments, the community created an official, project-maintained Helm chart (request: [issue #2371](https://github.com/valkey-io/valkey/issues/2371), chart: [valkey-helm](https://github.com/valkey-io/valkey-helm)). With the official chart, you can pin chart and image versions, keep `values.yaml` in code, and upgrade on your schedule without depending on vendor policy changes.
14+
15+
### Why a Valkey maintained chart helps
16+
17+
With the official chart, you run what you intend, not what a third party changes. Pin a chart release from the Valkey repo (for example `--version 0.7.7` from [https://github.com/valkey-io/valkey-helm](https://github.com/valkey-io/valkey-helm)) and lock the Valkey image tag in your `values.yaml`. Because the chart follows Valkey releases and docs, you can bump versions in a pull request, test in staging, then promote the same versions to production. If something breaks, use Helm history to roll back with `helm rollback <release> <revision>`. Keep your values in source control, often per environment (`values.staging.yaml`, `values.prod.yaml`), and you get a clean GitOps flow. For details and examples, see the [README](https://github.com/valkey-io/valkey-helm#readme).
18+
19+
20+
### Essential capabilities in the Valkey Helm Chart.
21+
22+
This chart focuses on the basics. It gives you a clean default and a few knobs you actually need.
23+
24+
* **Small cache for one service.** One Valkey pod, no persistence, ClusterIP service. Fast to start. Good for stateless caches. See the install steps in the [README](https://github.com/valkey-io/valkey-helm#readme).
25+
* **Read-heavy traffic.** One primary with two replicas. Point reads at a separate service if you prefer. Writes still go to the primary. Configure replicas in `values.yaml` and upgrade with Helm.
26+
* **Simple durability.** Turn on PVCs. Pick a storage class your cluster supports. Back up PVCs with your platform’s snapshot tools while chart-level hooks are being designed.
27+
* **Safe deploys.** Pin your chart version and Valkey image tag in `values.yaml`. Use `helm diff` in CI. If probes fail after an upgrade, roll back immediately with Helm.
28+
29+
## How to migrate from Bitnami to the Valkey Helm chart (in-place).
30+
31+
**This path has downtime.** Plan a short **maintenance window** and pause writers during the swap.
32+
33+
### 1) Find your release and namespace
34+
35+
```
36+
helm list --all-namespaces# Example: NAME=valkey-prod NAMESPACE=acme-valkey
37+
kubectl get pods,svc,sts,pvc -n acme-valkey
38+
39+
```
40+
41+
### 1) Back up and capture current values
42+
43+
```
44+
helm get values valkey-prod -n acme-valkey -o yaml > current-values.yaml# Also take an AOF/RDB or storage snapshot
45+
46+
```
47+
48+
### 2) Add the Valkey-helm repo
49+
50+
```
51+
helm repo add valkey https://valkey.io/valkey-helm/
52+
helm repo update
53+
```
54+
55+
### 3) Prepare migration overrides
56+
57+
Match names so the new chart **reuses the same PVCs and Services**. Create `migrate-values.yaml`:
58+
59+
```
60+
# Set to the names your Bitnami release created
61+
nameOverride: "<bitnami-short-name>" # e.g., "valkey"
62+
fullnameOverride: "<bitnami-full-name>" # e.g., "valkey-master"
63+
service:
64+
name: "<existing-service-name>" # e.g., "valkey"
65+
port: 6379
66+
persistence:
67+
enabled: true
68+
size: "<existing-pvc-size>" # e.g., "8Gi"
69+
storageClass: "<existing-class-or-null>"
70+
71+
```
72+
73+
Tip: confirm with
74+
75+
```
76+
kubectl get sts,svc,pvc -n acme-valkey -o wide
77+
```
78+
79+
### 4) Dry run (recommended)
80+
81+
```
82+
helm upgrade valkey-prod valkey/valkey \
83+
-n acme-valkey \
84+
-f current-values.yaml \
85+
-f migrate-values.yaml \
86+
--dry-run
87+
```
88+
89+
### 5) Enter maintenance window (pause writes)
90+
91+
### 6) Perform the in-place swap
92+
93+
```
94+
helm upgrade valkey-prod valkey/valkey \
95+
-n acme-valkey \
96+
-f current-values.yaml \
97+
-f migrate-values.yaml \
98+
--atomic --wait --timeout 10m
99+
```
100+
101+
`--atomic` will auto-rollback if health checks fail.
102+
103+
### 7) Verify and reopen traffic
104+
105+
```
106+
helm status valkey-prod -n acme-valkey
107+
kubectl get pods,svc,sts,pvc -n acme-valkey
108+
```
109+
110+
### Rollback (if needed)
111+
112+
```
113+
helm history valkey-prod -n acme-valkey
114+
helm rollback valkey-prod <REVISION> -n acme-valkey --wait
115+
116+
```
117+
118+
**Notes**
119+
120+
* PVC reuse depends on matching names; `fullnameOverride` is key.
121+
* Keep ports and Service names the same to avoid app changes.
122+
* Copy auth/TLS settings into the new chart before the swap.
123+
124+
If you run into issues use the chart repo issues at https://github.com/valkey-io/valkey-helm/issues.
125+
126+
## Next steps
127+
128+
The [issue](https://github.com/bitnami/charts/issues/36215) outlines the planned improvements for the official Valkey Helm chart, which is being actively developed in the open at the [valkey-io/valkey-helm](https://github.com/valkey-io/valkey-helm) repository.
129+
130+
* **Cluster mode.** Make it easy to run primaries and replicas across slots with sane defaults.
131+
* **Security.** Expose TLS, auth, and Secrets cleanly in values, with copy-paste examples.
132+
* **Observability.** Add a metrics toggle (Prometheus exporter and sample dashboards).
133+
* **Backups.** Provide a simple path to schedule snapshots and store them in S3 or GCS.
134+
* **Upgrades.** Publish notes tied to Valkey releases. Add hooks and checks so failures are obvious and quick to revert.
135+
* **Docs.** Keep them short. Add clear examples. Link to deeper guides only when needed.
136+
137+
If you currently rely on Bitnami, test this chart in a dev cluster and try your normal workflows. If something is missing, open an issue at [valkey-io/valkey-helm](https://github.com/valkey-io/valkey-helm/issues). Once you try out the official Valkey helm chart please share feedback so the chart grows in the right direction.
1.38 MB
Loading

0 commit comments

Comments
 (0)