mirror of
https://github.com/TECHNOFAB11/zfs-localpv.git
synced 2025-12-11 22:10:11 +01:00
feat(crd): scripts to help migrating to new CRDs (#73)
The CRDs have changed from being under openebs.io to zfs.openebs.io.
The scripts in this commit and the following steps will help users migrate existing CRDs to new CRDs and clean up older CRDs.
# upgrade to new CRD
1. apply the crd yaml
`$ kubectl apply -f upgrade/crd.yaml`
2. run upgrade.sh
`$ upgrade/upgrade.sh`
3. upgrade the driver to v0.6
`$ kubectl apply -f https://github.com/openebs/zfs-localpv/blob/v0.6.x/deploy/zfs-operator.yaml`
4. if everything looks good run the cleanup.sh, it will clean old CRs and delete the CRD
`$ upgrade/cleanup.sh`
Signed-off-by: Pawan <pawan@mayadata.io>
This commit is contained in:
parent
c4c2278d2f
commit
8a9ac43ab5
3 changed files with 124 additions and 0 deletions
28
upgrade/cleanup.sh
Normal file
28
upgrade/cleanup.sh
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
kubectl get zfsvolumes.openebs.io -n openebs -oyaml > volumes.yaml
|
||||
|
||||
# remove the finalizer from the old CR
|
||||
sed -i "/zfs.openebs.io\/finalizer/d" volumes.yaml
|
||||
kubectl apply -f volumes.yaml
|
||||
|
||||
# delete the old CR
|
||||
kubectl delete -f volumes.yaml
|
||||
|
||||
# delete the CRD definition
|
||||
kubectl delete crd zfsvolumes.openebs.io
|
||||
|
||||
|
||||
kubectl get zfssnapshots.openebs.io -n openebs -oyaml > snapshots.yaml
|
||||
|
||||
# remove the finalizer from the old CR
|
||||
sed -i "/zfs.openebs.io\/finalizer/d" snapshots.yaml
|
||||
kubectl apply -f snapshots.yaml
|
||||
|
||||
# delete the old CR
|
||||
kubectl delete -f snapshots.yaml
|
||||
|
||||
# delete the CRD definition
|
||||
kubectl delete crd zfssnapshots.openebs.io
|
||||
68
upgrade/crd.yaml
Normal file
68
upgrade/crd.yaml
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
##############################################
|
||||
########### ############
|
||||
########### ZFSVolume CRD ############
|
||||
########### ############
|
||||
##############################################
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: zfsvolumes.zfs.openebs.io
|
||||
spec:
|
||||
group: zfs.openebs.io
|
||||
version: v1alpha1
|
||||
scope: Namespaced
|
||||
names:
|
||||
plural: zfsvolumes
|
||||
singular: zfsvolume
|
||||
kind: ZFSVolume
|
||||
shortNames:
|
||||
- zfsvol
|
||||
- zv
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .spec.poolName
|
||||
name: ZPool
|
||||
description: ZFS Pool where the volume is created
|
||||
type: string
|
||||
- JSONPath: .spec.ownerNodeID
|
||||
name: Node
|
||||
description: Node where the volume is created
|
||||
type: string
|
||||
- JSONPath: .spec.capacity
|
||||
name: Size
|
||||
description: Size of the volume
|
||||
type: string
|
||||
- JSONPath: .spec.volblocksize
|
||||
name: volblocksize
|
||||
description: volblocksize for the created zvol
|
||||
type: string
|
||||
- JSONPath: .spec.recordsize
|
||||
name: recordsize
|
||||
description: recordsize for the created zfs dataset
|
||||
type: string
|
||||
- JSONPath: .spec.fsType
|
||||
name: Filesystem
|
||||
description: filesystem created on the volume
|
||||
type: string
|
||||
---
|
||||
##############################################
|
||||
########### ############
|
||||
########### Snapshot CRD ############
|
||||
########### ############
|
||||
##############################################
|
||||
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: zfssnapshots.zfs.openebs.io
|
||||
spec:
|
||||
group: zfs.openebs.io
|
||||
version: v1alpha1
|
||||
scope: Namespaced
|
||||
names:
|
||||
plural: zfssnapshots
|
||||
singular: zfssnapshot
|
||||
kind: ZFSSnapshot
|
||||
shortNames:
|
||||
- zfssnapshot
|
||||
- zfssnap
|
||||
---
|
||||
28
upgrade/upgrade.sh
Normal file
28
upgrade/upgrade.sh
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# ZFSVolumes: create the new CR with apiVersion as zfs.openebs.io and kind as Volume
|
||||
|
||||
kubectl get zfsvolumes.openebs.io -n openebs -oyaml > volumes.yaml
|
||||
|
||||
|
||||
# update the group name to zfs.openebs.io
|
||||
sed -i "s/apiVersion: openebs.io/apiVersion: zfs.openebs.io/g" volumes.yaml
|
||||
# create the new CR
|
||||
kubectl apply -f volumes.yaml
|
||||
|
||||
rm volumes.yaml
|
||||
|
||||
|
||||
# ZFSSnapshots: create the new CR with apiVersion as zfs.openebs.io and kind as Snapshot
|
||||
|
||||
kubectl get zfssnapshots.openebs.io -n openebs -oyaml > snapshots.yaml
|
||||
|
||||
|
||||
# update the group name to zfs.openebs.io
|
||||
sed -i "s/apiVersion: openebs.io/apiVersion: zfs.openebs.io/g" snapshots.yaml
|
||||
# create the new CR
|
||||
kubectl apply -f snapshots.yaml
|
||||
|
||||
rm snapshots.yaml
|
||||
Loading…
Add table
Add a link
Reference in a new issue