Skip to content
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

Guide Request: Transition Nexus Deployment to StatefulSet Using Helm Chart 5.0.0 #1061

Open
ksh-t-z opened this issue Oct 15, 2024 · 8 comments

Comments

@ksh-t-z
Copy link

ksh-t-z commented Oct 15, 2024

Description

With the release of stevehipwell/nexus3 Helm chart 5.0.0, Deployments are no longer supported, and only StatefulSets are available. This change impacts our existing setup, where we rely on a custom PVC to store Nexus data.

We are seeking guidance on how to:

  • Integrate our existing PVC with the new StatefulSet-based deployment.
  • Ensure the Nexus pod mounts the required volume path (/nexus-data) correctly with the new chart configuration.

Could you provide recommended approaches or workarounds for this transition? If mounting existing PVCs is not supported, please suggest alternative strategies to ensure data persistence during the migration.


Version Details

  • Chart Version: 4.45.1 → 5.0.0
  • Application Version: 3.70.2 → 3.72.0

Thank you for your support!

@EugenMayer
Copy link
Contributor

@ksh-t-z be aware, forcing this update without proper PVC migrating will / can result in data loss. AFAIU if you use a custom PVC which you did not create via the helm chart but rather feeding the created PVC reference to the chart, you should be on a good path.

You seem unsure, imho you should deploy a second 4.45.1 chart using deployments, put some data into it and then try to get your upgrade working. I cannot imagine you will get any definite answers here, this is way to hot to anybody to advice. You should test drive it in a sandbox IMHO.

Also, be sure to understand that 3.70.2->3.72.0 needs a database migrate to h2 if you are running OSS (see nexus release notes).

@stevehipwell
Copy link
Owner

@ksh-t-z this is a case of "it depends" and as @EugenMayer suggests you're going to want to test the process first. I'm happy to take contributions of a guide or guidance but I don't have the time to cover this nor do I want the responsibility.

@stevehipwell
Copy link
Owner

Just to extend my previous answer, if I was looking to do this today I'd take a look at snapshotting the deployment PV and restoring it to create the stateful set PV before upgrading.

@stevehipwell
Copy link
Owner

@ksh-t-z I'd hold off migrating until the 5.2.0 chart is released shortly.

@ksh-t-z
Copy link
Author

ksh-t-z commented Oct 24, 2024

Thank you for the update and suggestions @EugenMayer and @stevehipwell .

We have kept the version upgrade on hold for now and will continue with it after the 5.2.0 release. Your advice on testing the upgrade in a sandbox environment and the note about database migration are greatly appreciated.

We'll also explore snapshotting the deployment PV to restore it for the StatefulSet PV, as you suggested.

Thanks again for your insights!

@stevehipwell
Copy link
Owner

@ksh-t-z the 5.2.0 release is out.

@mfisch04
Copy link

Just to extend my previous answer, if I was looking to do this today I'd take a look at snapshotting the deployment PV and restoring it to create the stateful set PV before upgrading.

@stevehipwell we are beginning this migration. Just to clarify, are you suggesting we snapshot the deployment PV, redeploy the Deployment at the same chart version (4.45.0 in our case) as a StatefulSet, restore to snapshot to the StatefulSet PV, then upgrade? We plan on attempting this on a test deployment first, but any additional guidance would be greatly appreciated.

And thank you for providing this chart!

@stevehipwell
Copy link
Owner

@mfisch04 after further thought you might be able to scale down your current deployment and then detatch the PV from the PVC. If not creating a new PV from a snapshot would also work. You can then manually create the PVC described in the StatefulSet volume template using the PV so when you modify the chart to use a StatefulSet it picks up the PVC you've just created.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants