Skip to content

Commit f26372d

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

File tree

2 files changed

+141
-0
lines changed

2 files changed

+141
-0
lines changed
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
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+
author = ["maheshcherukumilli"]
6+
[extra]
7+
featured = true
8+
featured_image = "/assets/media/featured/valkey-helm.webp"
9+
+++
10+
11+
## Bitnami changes and why it matters
12+
13+
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.
14+
15+
To reduce the impact on Valkey deployments, the community created an official, project-owned 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.
16+
17+
### Why a Valkey maintained chart helps
18+
19+
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.
20+
21+
22+
### Essential capabilities in the Valkey Helm Chart.
23+
24+
This chart focuses on the basics. It gives you a clean default and a few knobs you actually need.
25+
26+
* **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](https://github.com/valkey-io/valkey-helm).
27+
* **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.
28+
* **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.
29+
* **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.
30+
31+
## How to migrate from Bitnami to the Valkey Helm chart (in-place).
32+
33+
**This path has downtime.** Plan a short **maintenance window** and pause writers during the swap.
34+
35+
### 1) Find your release and namespace
36+
37+
```
38+
helm list --all-namespaces# Example: NAME=valkey-prod NAMESPACE=acme-valkey
39+
kubectl get pods,svc,sts,pvc -n acme-valkey
40+
41+
```
42+
43+
### 1) Back up and capture current values
44+
45+
```
46+
helm get values valkey-prod -n acme-valkey -o yaml > current-values.yaml# Also take an AOF/RDB or storage snapshot
47+
48+
```
49+
50+
### 2) Add the Valkey-helm repo
51+
52+
```
53+
helm repo add valkey https://valkey.io/valkey-helm/
54+
helm repo update
55+
```
56+
57+
### 3) Prepare migration overrides
58+
59+
Match names so the new chart **reuses the same PVCs and Services**. Create `migrate-values.yaml`:
60+
61+
```
62+
# Set to the names your Bitnami release created
63+
nameOverride: "<bitnami-short-name>" # e.g., "valkey"
64+
fullnameOverride: "<bitnami-full-name>" # e.g., "valkey-master"
65+
service:
66+
name: "<existing-service-name>" # e.g., "valkey"
67+
port: 6379
68+
persistence:
69+
enabled: true
70+
size: "<existing-pvc-size>" # e.g., "8Gi"
71+
storageClass: "<existing-class-or-null>"
72+
73+
```
74+
75+
Tip: confirm with
76+
77+
```
78+
kubectl get sts,svc,pvc -n acme-valkey -o wide
79+
```
80+
81+
### 4) Dry run (recommended)
82+
83+
```
84+
helm upgrade valkey-prod valkey/valkey \
85+
-n acme-valkey \
86+
-f current-values.yaml \
87+
-f migrate-values.yaml \
88+
--dry-run
89+
```
90+
91+
### 5) Enter maintenance window (pause writes)
92+
93+
### 6) Perform the in-place swap
94+
95+
```
96+
helm upgrade valkey-prod valkey/valkey \
97+
-n acme-valkey \
98+
-f current-values.yaml \
99+
-f migrate-values.yaml \
100+
--atomic --wait --timeout 10m
101+
```
102+
103+
`--atomic` will auto-rollback if health checks fail.
104+
105+
### 7) Verify and reopen traffic
106+
107+
```
108+
helm status valkey-prod -n acme-valkey
109+
kubectl get pods,svc,sts,pvc -n acme-valkey
110+
```
111+
112+
### Rollback (if needed)
113+
114+
```
115+
helm history valkey-prod -n acme-valkey
116+
helm rollback valkey-prod <REVISION> -n acme-valkey --wait
117+
118+
```
119+
120+
**Notes**
121+
122+
* PVC reuse depends on matching names; `fullnameOverride` is key.
123+
* Keep ports and Service names the same to avoid app changes.
124+
* Copy auth/TLS settings into the new chart before the swap.
125+
126+
If you run into issues use the chart repo issues at https://github.com/valkey-io/valkey-helm/issues.
127+
128+
## Next steps
129+
130+
This is the rough plan. We will keep the work visible in the repo at [https://github.com/valkey-io/valkey-helm](https://github.com/valkey-io/valkey-helm).
131+
132+
* **Cluster mode.** Make it easy to run primaries and replicas across slots with sane defaults.
133+
* **Security.** Expose TLS, auth, and Secrets cleanly in values, with copy-paste examples.
134+
* **Observability.** Add a metrics toggle (Prometheus exporter and sample dashboards).
135+
* **Backups.** Provide a simple path to schedule snapshots and store them in S3 or GCS.
136+
* **Upgrades.** Publish notes tied to Valkey releases. Add hooks and checks so failures are obvious and quick to revert.
137+
* **Docs.** Keep them short. Add clear examples. Link to deeper guides only when needed.
138+
139+
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 [https://github.com/valkey-io/valkey-helm/issues](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.
140+
141+
16.4 KB
Loading

0 commit comments

Comments
 (0)