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

Migrate from version 1.X to 2.X #182

Closed
cpanato opened this issue Jul 21, 2020 · 13 comments
Closed

Migrate from version 1.X to 2.X #182

cpanato opened this issue Jul 21, 2020 · 13 comments

Comments

@cpanato
Copy link
Contributor

cpanato commented Jul 21, 2020

Hello

We are using the minio operator 1.x version but I saw there are an upgrade release and the API move to v1.
However, I did not find any documentation on how to upgrade existing deployments and how to upgrade from v1 to v2.

There is any guide?
thanks!

@kerneltime
Copy link
Contributor

@cpanato can you tell us more about your environment? You can reach out to us https://subnet.min.io/support if you need help with production deployments.

@nitisht
Copy link
Contributor

nitisht commented Jul 23, 2020

However, I did not find any documentation on how to upgrade existing deployments and how to upgrade from v1 to v2.

We are working on another major change and will be releasing v3.0.0 soon, if you want to migrate, it is probably better to wait for operator release v3.0.0

@cpanato
Copy link
Contributor Author

cpanato commented Jul 27, 2020

@kerneltime @nitisht thanks for the reply, usually when you deprecate the v1beta1 and move to v1 you have some time that you serve both in order to have the users to migrate to the new. My understanding to achieve that is we write some webhook conversion to make that transition and not just delete and recreate the API version including the crd.

We use minIO operator together with our operator but, now I don't know how we can upgrade to use the current one without breaking existing deployments.

Do you have any migration doc that we can transition from v1beta1 to v1? or this is not possible and we need to break and reinstall

thanks again!

@dvaldivia
Copy link
Collaborator

@cpanato do you have any multi zone deployments?

@cpanato
Copy link
Contributor Author

cpanato commented Jul 27, 2020

@dvaldivia we dont have in our side, but cannot say if other users have it.

@harshavardhana
Copy link
Member

@kerneltime @nitisht thanks for the reply, usually when you deprecate the v1beta1 and move to v1 you have some time that you serve both in order to have the users to migrate to the new. My understanding to achieve that is we write some webhook conversion to make that transition and not just delete and recreate the API version including the crd.

We use minIO operator together with our operator but, now I don't know how we can upgrade to use the current one without breaking existing deployments.

Do you have any migration doc that we can transition from v1beta1 to v1? or this is not possible and we need to break and reinstall

thanks again!

@cpanato what is the intention of upgrade here? is there anything specific you are looking to upgrade to?

@dvaldivia
Copy link
Collaborator

dvaldivia commented Jul 27, 2020

@cpanato for single zone deployments there may be an easy path to upgrade as long as the PVCs attached to the statefulset are not destroyed, however there may be a problem where you need to spread the tenants across multiple namespaces.

Are you running multiple MinIO instances in the same namespace?

@cpanato
Copy link
Contributor Author

cpanato commented Jul 27, 2020

@harshavardhana @dvaldivia No, each MinIO instance has his own namespace.

For me the major issue is the v1beta1 does not exist anymore and how do I smoothly transition to v1 without deleting the existing deployment. Also, the CRD changed, do we need to keep both during the transition?

@stale
Copy link

stale bot commented Oct 25, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed after 21 days if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Oct 25, 2020
@andrej-urvantsev
Copy link

Also would like to migrate from 1.x version to the latest. Is it even possible without re-creating MinIO cluster?

@stale stale bot removed the stale label Oct 28, 2020
@fabriciozubelli
Copy link

Also would like to migrate versions, but couldn't find any relevant information/documentation as well. Would anyone be able to point out the way to do that?

@blachniet
Copy link

blachniet commented Nov 7, 2020

I re-created the MinIO cluster in order to upgrade to the latest version of the operator.

When creating the new cluster, you must create new PersistentVolumes, since the old ones are already claimed. As long as the new Persistent Volumes have the same data in them as the old Persistent Volumes (e.g. manually by copying from the old to the new), you should be able to keep all the data. That said, you should always backup first 😄 .

For my scenario, we were using local persistent volumes with a persistentVolumeReclaimPolicy: Retain. When I created my new MinIO cluster, I simply deleted my old local persistent volumes (which were claimed by the old MinIO cluster) and then re-created them. Since the reclaim policy is Retain (and we aren't using the Local Persistence Volume Static Provisioner anyways) deleting the persistent volume leaves the underlying data intact.

apiVersion: v1
kind: PersistentVolume
metadata:
  name: minio-pv-0
spec:
  # ...
  persistentVolumeReclaimPolicy: Retain
  storageClassName: minio-local-storage
  local:
    path: /mnt/disks/ssd1

@nitisht
Copy link
Contributor

nitisht commented Feb 1, 2021

#423 adds a way to migrate. Closing this now

@nitisht nitisht closed this as completed Feb 1, 2021
jmontleon added a commit to jmontleon/operator that referenced this issue Jul 23, 2024
Signed-off-by: Jason Montleon <jmontleo@redhat.com>
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

8 participants