-
Notifications
You must be signed in to change notification settings - Fork 5k
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
docs: Add ValKey proposal #17892 #17904
Draft
hairmare
wants to merge
1
commit into
argoproj:master
Choose a base branch
from
hairmare:docs/valkey-proposal
base: master
Could not load branches
Branch not found: {{ refName }}
Could not load tags
Nothing to show
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+82
−0
Draft
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
--- | ||
title: Replace Redis with ValKey | ||
authors: | ||
- "@hairmare" | ||
sponsors: | ||
- TBD # List all interested parties here. | ||
reviewers: | ||
- "@alexmt" | ||
- TBD | ||
approvers: | ||
- "@alexmt" | ||
- TBD | ||
|
||
creation-date: 2024-04-19 | ||
last-updated: 2024-04-19 | ||
--- | ||
|
||
# Replace ValKey with Redis | ||
|
||
## Summary | ||
|
||
Redis Inc announced that they are changing Redis' license to the source available BUSL license [here](https://redis.com/blog/redis-adopts-dual-source-available-licensing/) which is in violation of [CNCF policy](https://github.com/cncf/foundation/blob/main/allowed-third-party-license-policy.md) and does not align with the Argo Projects values. | ||
|
||
The BSD-3-Clause licensed Redis OSS code has now been forked as [ValKey](https://valkey.io/) in an effort hosted by the Linux Foundation. | ||
|
||
## Motivation | ||
|
||
Taking swift action when this kind of change happen in our supply chain is at the core of upholding the open source values of the Argo Project. | ||
|
||
### Goals | ||
|
||
* Redis is replaced with ValKey in the Argo CD project. | ||
* This afford downstream distributions of Argo CD the security the security that they can follow Argo CD's lead | ||
|
||
### Non-Goals | ||
|
||
Replacing the Redis wire-protocol or any fundamental architecture changes are out of scope for this proposal. | ||
It is assumed that ValKey will take over Redis' leading position and we are merely switch upstream with the community. | ||
|
||
## Proposal | ||
|
||
Given the nature of this change, fundamentally it should be as simple as replacing the container images in [manifests/base/redis](https://github.com/argoproj/argo-cd/tree/3a46e8c1c7dc20911cb5d87ade8ced26c766e273/manifests/base/redis). | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also see manifests/ha/base/redis-ha and manifests/ha/base/redis-ha/chart/requirements.yaml For HA install of ArgoCD, the redis-ha configuration is provided by a 3rd party helm chart: https://github.com/DandyDeveloper/charts/tree/master/charts/redis-ha |
||
|
||
Tracking ValKey's releases instead of Redis' and communicating the change to Argo CD's user base would also need to be taken care of. | ||
|
||
### Implementation Details/Notes/Constraints [optional] | ||
|
||
At the time of writing this proposal, a stable, generally available (GA) release of ValKey is available in the format needed update Argo CD's manifests. | ||
|
||
For downstream Argo CD distributions additional work might be required. For example: | ||
|
||
* There is no Bitnami Helm chart that the downstream Helm chart can use | ||
* The RPM packages for an EL distributions are still quite fresh in EPEL | ||
|
||
Given the documented non-goals above, this should be fine and help the ValKey project if anything. | ||
|
||
### Security Considerations | ||
|
||
This proposal aims to replace an important part of Argo CD's supply chain hence this change needs proper vetting and due diligence. | ||
|
||
Some early efforts in this area have been made in a (now closed as not planned) [CNCF License Exception Request for Redis](https://github.com/cncf/foundation/issues/750). | ||
The fact that the ValKey project is hosted by the Linux Foundation gives additional assurance. | ||
|
||
### Risks and Mitigations | ||
|
||
Even with it's history as Redis, the ValKey project is a young project that might not currently fulfill our maturity requirements to e.g. uphold Argo CD's SLSA status. | ||
|
||
This need and the resulting requirements can be communicated to the upstream ValKey community and the Linux Foundation as host will also be in favor of and support these efforts. | ||
|
||
### Upgrade / Downgrade Strategy | ||
|
||
Both Redis and ValKey are currently compatible at the wire protocol level. Other implementations of the same protocol have always existed and will continue to do so. This includies Redis Inc's implementation which provides us an some fallback possibilities given the Redis version currently in use by Argo CD is not affected by the license change. | ||
|
||
## Drawbacks | ||
|
||
Not implementing this proposal could give downstream projects more agency and allow for them to pick a Redis replacement that fits their specific needs or stick with Redis. | ||
|
||
## Alternatives | ||
|
||
Other compatible implementations of the Redis wire protocol exist. The fact that ValKey is hosted by the Linux Foundation is an indicator that that helps us delegate this decision to the CNCF's parent foundation thus skipping the processes of analyzing competing offers like Redict, Garnet, or others. | ||
|
||
The Argo CD project could also broaden the support matrix and implement support for several Redis wire protocol implementations. This option is not further explored in this proposal but could be considered for future work. The required effort is most likely prohibitive and this responsibilty could be taken over by a downstream project if needed. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 didn't change these when i copied the template
thanks for letting me me know how to proceed