mirror of
https://github.com/TECHNOFAB11/zfs-localpv.git
synced 2025-12-12 22:40:12 +01:00
Added a schema validation for backup and restore CR. Also validating the server address in the backup/restore controller. Validating the server address as : ^([0-9]+.[0-9]+.[0-9]+.[0-9]+:[0-9]+)$ which is : <any number>.<any number>.<any number>.<any number>:<any number> Here we are validating just the format of the IP, not validating that IP should be correct which will be little more complex. In any case if IP is not correct, the zfs send will fail, so no need to do complex validation to validate the correct IP and port. Signed-off-by: Pawan <pawan@mayadata.io>
116 lines
3.6 KiB
YAML
116 lines
3.6 KiB
YAML
|
|
|
|
##############################################
|
|
########### ############
|
|
########### ZFSBackup CRD ############
|
|
########### ############
|
|
##############################################
|
|
|
|
# ZFSBackups 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: zfsbackups.zfs.openebs.io
|
|
spec:
|
|
additionalPrinterColumns:
|
|
- JSONPath: .spec.prevSnapName
|
|
description: Previous snapshot for backup
|
|
name: PrevSnap
|
|
type: string
|
|
- JSONPath: .status
|
|
description: Backup status
|
|
name: Status
|
|
type: string
|
|
- JSONPath: .metadata.creationTimestamp
|
|
description: Age of the volume
|
|
name: Age
|
|
type: date
|
|
group: zfs.openebs.io
|
|
names:
|
|
kind: ZFSBackup
|
|
listKind: ZFSBackupList
|
|
plural: zfsbackups
|
|
shortNames:
|
|
- zb
|
|
singular: zfsbackup
|
|
preserveUnknownFields: false
|
|
scope: Namespaced
|
|
subresources: {}
|
|
validation:
|
|
openAPIV3Schema:
|
|
description: ZFSBackup describes a zfs backup 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: ZFSBackupSpec is the spec for a ZFSBackup resource
|
|
properties:
|
|
backupDest:
|
|
description: BackupDest is the remote address for backup transfer
|
|
minLength: 1
|
|
pattern: ^([0-9]+.[0-9]+.[0-9]+.[0-9]+:[0-9]+)$
|
|
type: string
|
|
ownerNodeID:
|
|
description: OwnerNodeID is a name of the nodes where the source volume
|
|
is
|
|
minLength: 1
|
|
type: string
|
|
prevSnapName:
|
|
description: PrevSnapName is the last completed-backup's snapshot name
|
|
type: string
|
|
snapName:
|
|
description: SnapName is the snapshot name for backup
|
|
minLength: 1
|
|
type: string
|
|
volumeName:
|
|
description: VolumeName is a name of the volume for which this backup
|
|
is destined
|
|
minLength: 1
|
|
type: string
|
|
required:
|
|
- backupDest
|
|
- ownerNodeID
|
|
- volumeName
|
|
type: object
|
|
status:
|
|
description: ZFSBackupStatus is to hold status of backup
|
|
enum:
|
|
- Init
|
|
- Done
|
|
- Failed
|
|
- Pending
|
|
- InProgress
|
|
- Invalid
|
|
type: string
|
|
required:
|
|
- spec
|
|
- status
|
|
type: object
|
|
version: v1
|
|
versions:
|
|
- name: v1
|
|
served: true
|
|
storage: true
|
|
status:
|
|
acceptedNames:
|
|
kind: ""
|
|
plural: ""
|
|
conditions: []
|
|
storedVersions: []
|