-
Notifications
You must be signed in to change notification settings - Fork 35
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
Update Redis version to 7.0.4 #59
Conversation
Signed-off-by: Anand Sanmukhani <[email protected]>
0311240
to
191c438
Compare
Thanks for the PR @4n4nd! Are you still seeing the slots issue you mentioned in the ticket? I would assume there are several commands we need to ensure are working with this change. Also we need to determine the migration/upgrade path for our users to get to this new version. Do we want to support 6.x and 7.x for a time? I think we have to do it this way bc we can't guarantee users' clients/applications are ready for 7.x. |
I am not, the radix dependency update seems to have fixed it
I was successfully able to perform a rolling update from 6.2.x to 7.0.x just by updating the node container image in the RedisCluster CR.
I think we could do that. Once some initial tests are done on 7.0.x, I don't think it would be that difficult to maintain support for it. Are there any specific tests that you'd like me to perform on this? |
I think a good place to start would be ensuring all the commands sent through
Did you have data in the cluster? If not, we should definitely test that. |
Just added a bunch of keys manually and tested the update. All the keys successfully migrated to the updated cluster. Cluster configuration was: 3 primaries and 2 replication-factor. Updated from version 6.2.x to v7.0.4 |
I'll check the redis changelogs to see if any of the commands you listed were updated or not |
I just brought up a 7.x cluster for testing and so far things look good. I did see this warning in the logs though. Will investigate.
|
Changes in commands that might affect operator behavior: CLUSTER-
CONFIG-
@cin I couldn't find any other changes that would affect the operator's functionality. |
@cin any luck with this PR? |
Hey @4n4nd, sorry for the delay. I was out unexpectedly on Thursday and Friday. I actually did test this a bit last Wednesday. Things seem to work though I didn't get to dig into the warning noted above yet. I think the main thing that needs to change here is maintaining support for 6.x. I know at least for us internally, we need to support 6.x until apps are ready to upgrade to 7.x. I don't think this should be too hard to do luckily. We basically just copy the dockerfile and build two different images. I'm not sure how they should be named off-hand. Will need to think about that...open to suggestions... |
No worries! Please take your time. I hope everything is going well for you.
Yeah, since we are not making any changes to the operator, I think we could just add another Dockerfile (Dockerfile.node.6.2.x) which can be removed once Redis v6.2 is EOL in August 2023.
I had one suggestion. Since Redis Node images are essentially Redis images, we could just tag them as whatever Redis version they are. That way we could maintain builds for both. Example: Maybe we could also re-tag some older images to match this naming convention. wdyt? |
Actually the node image contains code (see pkg/redisnode). It's responsible for configuring and managing Redis (among other things). I've never actually looked at it closely. That said, we'll need to version the image w/the github tag as well. So I think we should do something like
I wouldn't worry about re-tagging any images bc they align with the helm charts. We'll definitely want to bump the minor version with this change though. |
I think this is a good idea. We would have unique images for any operator code changes as well as any redis updates. |
Signed-off-by: Anand Sanmukhani <[email protected]>
d4c17da
to
45797ce
Compare
@cin I updated the release workflow. Could you please give it a look? |
@4n4nd, I think this looks good from an automation standpoint. However I think we need to update the Makefile as well so it builds the proper images when Maybe something like this would work?
I also use skaffold locally to build images (especially if i'm pushing to a CR instead of local |
Signed-off-by: Anand Sanmukhani <[email protected]>
d3fc56a
to
77469b2
Compare
@cin tested and updated the Makefile with your suggestion. |
I just noticed the build info strings. build.go and the corresponding set call here. So the way this is being done now will not have the right REDIS_VERSION listed in the logs when it starts. Not the biggest deal but it'd be confusing. Should we maybe just allow the user to call the Makefile w/ We also need to update the image in the helm chart. Right now, we don't have a Redis version override; but in order to default the image properly, we'll need it. You can still get this to work now but simply specifying the Nitpicking here, but I think we should swap the github tag and redis version in the image tag name. I just looked at how we've done this in other projects, and we used the following format: |
taking a look 👀
Yeah, I think letting the users set REDIS_VERSION would be the simplest solution. For the default value, I would want to keep it to
What if we use the
No worries 👍 I can just make the changes. |
Fair enough.
I've never been a fan of using |
Signed-off-by: Anand Sanmukhani <[email protected]>
@cin The linter didn't seem to mind it. So, I updated the Makefile to make it consistent with the release.yaml. wdyt? Also, the whole |
@cin any luck with this PR? |
Hey @4n4nd. Sorry I got pulled into some other things and haven't had a chance to get back to this since last Thursday. There's one place that needs some cleanup that I know of offhand though and it's defaulting the chart image. As it stands right now, the user would always have to override the tag in order to set the node-for-redis image properly. I think it's good after that (but will need to test to make sure). |
@cin sorry for the delay. I couldn't really come up with a perfect solution. |
@4n4nd I'm sorry for the delay; I thought I responded to this. I think I'm okay with breaking out v6 into a separate workflow. This will simplify things a good bit especially as you mentioned when v6 is EOL. I think we should also look into fixing up the Makefile for this as well (not the biggest issue but will is nice to have it usable). There's probably a cleaner way to do this but something like this maybe could work. I'm no Makefile expert so there may be a better way to do this here.
|
Resolves #56