Skip to content

Commit

Permalink
Add openebs.io schemas (#292)
Browse files Browse the repository at this point in the history
  • Loading branch information
marcolongol authored Jun 1, 2024
1 parent a86258c commit 247b4e0
Show file tree
Hide file tree
Showing 3 changed files with 496 additions and 0 deletions.
257 changes: 257 additions & 0 deletions openebs.io/blockdevice_v1alpha1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,257 @@
{
"description": "BlockDevice is the Schema for the blockdevices API",
"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/sig-architecture/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/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"type": "object"
},
"spec": {
"description": "DeviceSpec defines the properties and runtime status of a BlockDevice",
"properties": {
"aggregateDevice": {
"description": "AggregateDevice was intended to store the hierarchical information in cases of LVM. However this is currently not implemented and may need to be re-looked into for better design. To be deprecated",
"type": "string"
},
"capacity": {
"description": "Capacity",
"properties": {
"logicalSectorSize": {
"description": "LogicalSectorSize is blockdevice logical-sector size in bytes",
"format": "int32",
"type": "integer"
},
"physicalSectorSize": {
"description": "PhysicalSectorSize is blockdevice physical-Sector size in bytes",
"format": "int32",
"type": "integer"
},
"storage": {
"description": "Storage is the blockdevice capacity in bytes",
"format": "int64",
"type": "integer"
}
},
"required": [
"storage"
],
"type": "object",
"additionalProperties": false
},
"claimRef": {
"description": "ClaimRef is the reference to the BDC which has claimed this BD",
"properties": {
"apiVersion": {
"description": "API version of the referent.",
"type": "string"
},
"fieldPath": {
"description": "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.",
"type": "string"
},
"kind": {
"description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
"type": "string"
},
"namespace": {
"description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
"type": "string"
},
"resourceVersion": {
"description": "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency",
"type": "string"
},
"uid": {
"description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids",
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"details": {
"description": "Details contain static attributes of BD like model,serial, and so forth",
"properties": {
"compliance": {
"description": "Compliance is standards/specifications version implemented by device firmware such as SPC-1, SPC-2, etc",
"type": "string"
},
"deviceType": {
"description": "DeviceType represents the type of device like sparse, disk, partition, lvm, crypt",
"enum": [
"disk",
"partition",
"sparse",
"loop",
"lvm",
"crypt",
"dm",
"mpath"
],
"type": "string"
},
"driveType": {
"description": "DriveType is the type of backing drive, HDD/SSD",
"enum": [
"HDD",
"SSD",
"Unknown",
""
],
"type": "string"
},
"firmwareRevision": {
"description": "FirmwareRevision is the disk firmware revision",
"type": "string"
},
"hardwareSectorSize": {
"description": "HardwareSectorSize is the hardware sector size in bytes",
"format": "int32",
"type": "integer"
},
"logicalBlockSize": {
"description": "LogicalBlockSize is the logical block size in bytes reported by /sys/class/block/sda/queue/logical_block_size",
"format": "int32",
"type": "integer"
},
"model": {
"description": "Model is model of disk",
"type": "string"
},
"physicalBlockSize": {
"description": "PhysicalBlockSize is the physical block size in bytes reported by /sys/class/block/sda/queue/physical_block_size",
"format": "int32",
"type": "integer"
},
"serial": {
"description": "Serial is serial number of disk",
"type": "string"
},
"vendor": {
"description": "Vendor is vendor of disk",
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"devlinks": {
"description": "DevLinks contains soft links of a block device like /dev/by-id/... /dev/by-uuid/...",
"items": {
"description": "DeviceDevLink holds the mapping between type and links like by-id type or by-path type link",
"properties": {
"kind": {
"description": "Kind is the type of link like by-id or by-path.",
"enum": [
"by-id",
"by-path"
],
"type": "string"
},
"links": {
"description": "Links are the soft links",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object",
"additionalProperties": false
},
"type": "array"
},
"filesystem": {
"description": "FileSystem contains mountpoint and filesystem type",
"properties": {
"fsType": {
"description": "Type represents the FileSystem type of the block device",
"type": "string"
},
"mountPoint": {
"description": "MountPoint represents the mountpoint of the block device.",
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"nodeAttributes": {
"description": "NodeAttributes has the details of the node on which BD is attached",
"properties": {
"nodeName": {
"description": "NodeName is the name of the Kubernetes node resource on which the device is attached",
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"parentDevice": {
"description": "ParentDevice was intended to store the UUID of the parent Block Device as is the case for partitioned block devices. \n For example: /dev/sda is the parent for /dev/sda1 To be deprecated",
"type": "string"
},
"partitioned": {
"description": "Partitioned represents if BlockDevice has partitions or not (Yes/No) Currently always default to No. To be deprecated",
"enum": [
"Yes",
"No"
],
"type": "string"
},
"path": {
"description": "Path contain devpath (e.g. /dev/sdb)",
"type": "string"
}
},
"required": [
"capacity",
"devlinks",
"nodeAttributes",
"path"
],
"type": "object",
"additionalProperties": false
},
"status": {
"description": "DeviceStatus defines the observed state of BlockDevice",
"properties": {
"claimState": {
"description": "ClaimState represents the claim state of the block device",
"enum": [
"Claimed",
"Unclaimed",
"Released"
],
"type": "string"
},
"state": {
"description": "State is the current state of the blockdevice (Active/Inactive/Unknown)",
"enum": [
"Active",
"Inactive",
"Unknown"
],
"type": "string"
}
},
"required": [
"claimState",
"state"
],
"type": "object",
"additionalProperties": false
}
},
"type": "object"
}
Loading

0 comments on commit 247b4e0

Please sign in to comment.