-
Notifications
You must be signed in to change notification settings - Fork 71
Valkey helm #419
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Valkey helm #419
Conversation
Signed-off-by: cherukum-amazon <[email protected]>
Signed-off-by: Silvio Gissi <[email protected]>
|
@cherukum-Amazon @stockholmux Can you take a look at this update please? It has a dependency on a new release of valkey-helm supporting replicas (valkey-io/valkey-helm#84) which I'm merging shortly. |
| If you run into issues use the chart repo issues at https://github.com/valkey-io/valkey-helm/issues. | ||
| The chart [milestones](https://github.com/valkey-io/valkey-helm/milestones) 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. | ||
|
|
||
| ## Next steps |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there an issue link we can add which is tracking these updates?.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also can we add more information on the maintenance and support model for the Valkey helm chart, such as who is responsible for maintaining it and how often updates are expected.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there an issue link we can add which is tracking these updates?
We track the roadmap via Milestones, I'll link the issues against the two main upcoming items (Sentinel and Cluster support).
Also can we add more information on the maintenance and support model for the Valkey helm chart, such as who is responsible for maintaining it and how often updates are expected.
Maintenance/support is essentially the same as the rest of Valkey: users can submit issues and PRs, the maintainers (me and @mk-raven) will merge and release once we have enough significant changes. There is no release cadence per se. Support is mostly via issues or Slack. I listed these in the last paragraph.
|
|
||
| * **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). | ||
| * **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. | ||
| * **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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to keep this?. - "Simple durability". Do we support turning on PVCs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it is mentioned that persistence can be enabled or not for Standalone deployments. For Replicated, PVC support is mandatory (otherwise primary pod being rescheduled might come up without data and wipe out the replicas).
| * **TLS encryption** - Enable TLS for encrypted client-server and replica-primary communication, protecting data in transit. | ||
|
|
||
| ### Essential capabilities in the Valkey Helm Chart. | ||
| * **Metrics** - Monitor Valkey instances using the Prometheus exporter sidecar. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this come out of the box, do we need any configuration in the yaml file which we should call out?.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point, it is in the chart, but needs to be enabled.
| Review the [official chart documentation](https://github.com/valkey-io/valkey-helm/tree/main/valkey) to understand configuration options and match your current Bitnami settings. Bitnami's default configuration deploys one primary with three replicas, protected by a randomly-generated password and without TLS. The migration steps below will configure the official chart the same way — adjust the chart parameters to match your current deployment. | ||
|
|
||
| ### 1) Find your release and namespace | ||
| Make sure to use Bitnami's Valkey chart version 2.0.0 or higher as service name and label have changed from `master` to `primary`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you check the grammar on this sentence.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will do
| ``` | ||
| helm history valkey-prod -n acme-valkey | ||
| helm rollback valkey-prod <REVISION> -n acme-valkey --wait | ||
| Pause all clients connecting to Valkey. Wait a few seconds to ensure all data is replicated and reconfigure the new instance as primary: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pause all clients connecting to Valkey - i am assuming you mean the valkey-bitnami here, can we clarify?.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct, I'll rephrase
| OK | ||
| $ $NEW_VALKEY_CLI info | grep '^\(role\|master_host\|master_link_status\)' | ||
| role:slave | ||
| master_host:valkey-bitnami-primary |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this the instance name, can we map to an existing environment variable?.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also keep environment variables in one place with comments, so its easy to back track.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The shell variable here is misleading. I'll update to create a shell alias instead.
|
|
||
| Update all clients to use the new Valkey read-write and read-only endpoints which are exposed as services (`SERVICE.NAMESPACE.svc.cluster.local`). In the example above: | ||
|
|
||
| * Read-Write (primary): `valkey.apps-test.svc.cluster.local` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we tag the endpoints to environment variables?.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How are these end points generated?. - may be add a inline comment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated it to a shell that will output the endpoints based on env variables.
| Update all clients to use the new Valkey read-write and read-only endpoints which are exposed as services (`SERVICE.NAMESPACE.svc.cluster.local`). In the example above: | ||
|
|
||
| * Read-Write (primary): `valkey.apps-test.svc.cluster.local` | ||
| * Read-Only (all instances): `valkey-read.apps-test.svc.cluster.local` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we tag the endpoints to environment variables?.
|
|
||
| ```shell | ||
| $ kubectl get pods --all-namespaces -l app.kubernetes.io/name=valkey -o custom-columns=Pod:.metadata.name,Namespace:.metadata.namespace,Instance:.metadata.labels.app\\.kubernetes\\.io\\/instance | ||
| Pod Namespace Instance |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is 53 to 57 sample outcome from the command?. can we call it out explicitly with a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I updated all shells where output is shown with # * Sample Output *, not sure it is clearer or not. By default if a shell command is listed with a $ in front, it means to show the shell command and output.
| $ $NEW_VALKEY_CLI replicaof $SVCPRIMARY 6379 | ||
| OK | ||
| $ $NEW_VALKEY_CLI info | grep '^\(role\|master_host\|master_link_status\)' | ||
| role:slave |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what does this statement do?.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Adding comments might help.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
| ```shell | ||
| $ $NEW_VALKEY_CLI config set primaryauth $PASS | ||
| OK | ||
| $ $NEW_VALKEY_CLI replicaof $SVCPRIMARY 6379 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this make the primary of the newly created valkey-helm cluster as replica of the valkey-bitnami primary cluster?. Adding a comment will help.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct, added
stockholmux
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix the author bio then I can review :)
| title = "Valkey Helm: The new way to deploy Valkey on Kubernetes" | ||
| date = 2025-11-05 | ||
| description = "A guide on why the new Valkey Helm chart exists, how it helps, and how to migrate from Bitnami." | ||
| authors = ["sgissi","maheshcherukumilli"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is a missing author for sgissi.md @sgissi please add your bio to authors/sgissi.md
This is preventing the site from rendering, so you need to resolve it before I can do a final review.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oops, good point :) Added in the next commit
Signed-off-by: Silvio Gissi <[email protected]>
Description
This PR supersedes #408, to add a new blog post about the new official Valkey Helm Chart, including reasons for the chart creation and migration steps from the existing chart.
Issues Resolved
Closes #408
Check List
--signoffBy submitting this pull request, I confirm that my contribution is made under the terms of the BSD-3-Clause License.