mirror of
https://github.com/TECHNOFAB11/zfs-localpv.git
synced 2025-12-12 14:30:12 +01:00
This commit adds support for Backup and Restore controller, which will be watching for
the events. The velero plugin will create a Backup CR to create a backup
with the remote location information, the controller will send the data
to that remote location.
In the same way, the velero plugin will create a Restore CR to restore the
volume from the the remote location and the restore controller will restore
the data.
Steps to use velero plugin for ZFS-LocalPV are :
1. install velero
2. add openebs plugin
velero plugin add openebs/velero-plugin:latest
3. Create the volumesnapshot location :
for full backup :-
```yaml
apiVersion: velero.io/v1
kind: VolumeSnapshotLocation
metadata:
name: default
namespace: velero
spec:
provider: openebs.io/zfspv-blockstore
config:
bucket: velero
prefix: zfs
namespace: openebs
provider: aws
region: minio
s3ForcePathStyle: "true"
s3Url: http://minio.velero.svc:9000
```
for incremental backup :-
```yaml
apiVersion: velero.io/v1
kind: VolumeSnapshotLocation
metadata:
name: default
namespace: velero
spec:
provider: openebs.io/zfspv-blockstore
config:
bucket: velero
prefix: zfs
backup: incremental
namespace: openebs
provider: aws
region: minio
s3ForcePathStyle: "true"
s3Url: http://minio.velero.svc:9000
```
4. Create backup
velero backup create my-backup --snapshot-volumes --include-namespaces=velero-ns --volume-snapshot-locations=aws-cloud-default --storage-location=default
5. Create Schedule
velero create schedule newschedule --schedule="*/1 * * * *" --snapshot-volumes --include-namespaces=velero-ns --volume-snapshot-locations=aws-local-default --storage-location=default
6. Restore from backup
velero restore create --from-backup my-backup --restore-volumes=true --namespace-mappings velero-ns:ns1
Signed-off-by: Pawan <pawan@mayadata.io>
85 lines
2.7 KiB
YAML
85 lines
2.7 KiB
YAML
|
|
|
|
##############################################
|
|
########### ############
|
|
########### ZFSRestore CRD ############
|
|
########### ############
|
|
##############################################
|
|
|
|
# ZFSRestores CRD is autogenerated via `make manifests` command.
|
|
# Do the modification in the code and run the `make manifests` command
|
|
# to generate the CRD definition
|
|
|
|
---
|
|
apiVersion: apiextensions.k8s.io/v1beta1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.2.8
|
|
creationTimestamp: null
|
|
name: zfsrestores.zfs.openebs.io
|
|
spec:
|
|
group: zfs.openebs.io
|
|
names:
|
|
kind: ZFSRestore
|
|
listKind: ZFSRestoreList
|
|
plural: zfsrestores
|
|
singular: zfsrestore
|
|
preserveUnknownFields: false
|
|
scope: Namespaced
|
|
validation:
|
|
openAPIV3Schema:
|
|
description: ZFSRestore describes a cstor restore resource created as a custom
|
|
resource
|
|
properties:
|
|
apiVersion:
|
|
description: 'APIVersion defines the versioned schema of this representation
|
|
of an object. Servers should convert recognized schemas to the latest
|
|
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
|
|
type: string
|
|
kind:
|
|
description: 'Kind is a string value representing the REST resource this
|
|
object represents. Servers may infer this from the endpoint the client
|
|
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
|
|
type: string
|
|
metadata:
|
|
type: object
|
|
spec:
|
|
description: ZFSRestoreSpec is the spec for a ZFSRestore resource
|
|
properties:
|
|
ownerNodeID:
|
|
description: owner node name where restore volume is present
|
|
minLength: 1
|
|
type: string
|
|
restoreSrc:
|
|
description: it can be ip:port in case of restore from remote or volumeName
|
|
in case of local restore
|
|
minLength: 1
|
|
type: string
|
|
volumeName:
|
|
description: volume name to where restore has to be performed
|
|
minLength: 1
|
|
type: string
|
|
required:
|
|
- ownerNodeID
|
|
- restoreSrc
|
|
- volumeName
|
|
type: object
|
|
status:
|
|
description: ZFSRestoreStatus is to hold result of action.
|
|
type: string
|
|
required:
|
|
- spec
|
|
- status
|
|
type: object
|
|
version: v1
|
|
versions:
|
|
- name: v1
|
|
served: true
|
|
storage: true
|
|
status:
|
|
acceptedNames:
|
|
kind: ""
|
|
plural: ""
|
|
conditions: []
|
|
storedVersions: []
|