Files
kubeconform/crdSchemas/master-standalone/volume-stable-v1beta2.json
T
2026-06-04 23:22:18 +01:00

453 lines
14 KiB
JSON

{
"description": "Volume is where Longhorn stores volume object.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"type": "object"
},
"spec": {
"description": "VolumeSpec defines the desired state of the Longhorn volume",
"properties": {
"Standby": {
"type": "boolean"
},
"accessMode": {
"enum": [
"rwo",
"rwop",
"rwx"
],
"type": "string"
},
"backingImage": {
"type": "string",
"x-kubernetes-validations": [
{
"message": "BackingImage is immutable",
"rule": "self == oldSelf"
}
]
},
"backupBlockSize": {
"description": "BackupBlockSize indicate the block size to create backups. The block size is immutable.",
"enum": [
"2097152",
"16777216"
],
"format": "int64",
"type": "string"
},
"backupCompressionMethod": {
"enum": [
"none",
"lz4",
"gzip"
],
"type": "string"
},
"backupTargetName": {
"description": "The backup target name that the volume will be backed up to or is synced.",
"type": "string"
},
"cloneMode": {
"enum": [
"",
"full-copy",
"linked-clone"
],
"type": "string"
},
"dataEngine": {
"enum": [
"v1",
"v2"
],
"type": "string"
},
"dataLocality": {
"enum": [
"disabled",
"best-effort",
"strict-local"
],
"type": "string"
},
"dataSource": {
"type": "string"
},
"disableFrontend": {
"type": "boolean"
},
"diskSelector": {
"items": {
"type": "string"
},
"type": "array"
},
"encrypted": {
"type": "boolean",
"x-kubernetes-validations": [
{
"message": "Encrypted is immutable",
"rule": "self == oldSelf"
}
]
},
"engineNodeID": {
"description": "engineNodeID defines the node where the backend engine (target) runs.\nIf empty, falls back to NodeID.",
"type": "string"
},
"freezeFilesystemForSnapshot": {
"description": "Setting that freezes the filesystem on the root partition before a snapshot is created.",
"enum": [
"ignored",
"enabled",
"disabled"
],
"type": "string"
},
"fromBackup": {
"type": "string"
},
"frontend": {
"enum": [
"blockdev",
"iscsi",
"nvmf",
"ublk",
""
],
"type": "string"
},
"image": {
"type": "string"
},
"lastAttachedBy": {
"type": "string"
},
"migratable": {
"type": "boolean"
},
"migrationNodeID": {
"type": "string"
},
"nodeID": {
"description": "nodeID defines the node where the volume is attached (where the frontend initiator runs).",
"type": "string"
},
"nodeSelector": {
"items": {
"type": "string"
},
"type": "array"
},
"numberOfReplicas": {
"type": "integer"
},
"offlineRebuilding": {
"description": "Specifies whether Longhorn should rebuild replicas while the detached volume is degraded.\n- ignored: Use the global setting for offline replica rebuilding.\n- enabled: Enable offline rebuilding for this volume, regardless of the global setting.\n- disabled: Disable offline rebuilding for this volume, regardless of the global setting",
"enum": [
"ignored",
"disabled",
"enabled"
],
"type": "string"
},
"rebuildConcurrentSyncLimit": {
"description": "RebuildConcurrentSyncLimit controls the maximum number of file synchronization operations that can run\nconcurrently during a single replica rebuild.\nWhen set to 0, it means following the global setting.",
"maximum": 5,
"minimum": 0,
"type": "integer"
},
"replicaAutoBalance": {
"enum": [
"ignored",
"disabled",
"least-effort",
"best-effort"
],
"type": "string"
},
"replicaDiskSoftAntiAffinity": {
"description": "Replica disk soft anti affinity of the volume. Set enabled to allow replicas to be scheduled in the same disk.",
"enum": [
"ignored",
"enabled",
"disabled"
],
"type": "string"
},
"replicaRebuildingBandwidthLimit": {
"description": "ReplicaRebuildingBandwidthLimit controls the maximum write bandwidth (in megabytes per second) allowed on the destination replica during the rebuilding process. Set this value to 0 to disable bandwidth limiting.",
"format": "int64",
"minimum": 0,
"type": "integer"
},
"replicaSoftAntiAffinity": {
"description": "Replica soft anti affinity of the volume. Set enabled to allow replicas to be scheduled on the same node.",
"enum": [
"ignored",
"enabled",
"disabled"
],
"type": "string"
},
"replicaZoneSoftAntiAffinity": {
"description": "Replica zone soft anti affinity of the volume. Set enabled to allow replicas to be scheduled in the same zone.",
"enum": [
"ignored",
"enabled",
"disabled"
],
"type": "string"
},
"restoreVolumeRecurringJob": {
"enum": [
"ignored",
"enabled",
"disabled"
],
"type": "string"
},
"revisionCounterDisabled": {
"type": "boolean"
},
"size": {
"format": "int64",
"type": "string"
},
"snapshotDataIntegrity": {
"enum": [
"ignored",
"disabled",
"enabled",
"fast-check"
],
"type": "string"
},
"snapshotHashingRequestedAt": {
"description": "SnapshotHashingRequestedAt is the RFC3339 timestamp (e.g., \"2026-03-16T10:30:00Z\") when an on-demand snapshot checksum calculation is requested.\nWhen this value is set and is later than LastOnDemandSnapshotHashingCompleteAt, the system will calculate checksums\nfor all user snapshots.\n\nIf SnapshotHashingRequestedAt differs from LastOnDemandSnapshotHashingCompleteAt, it indicates that a hashing request\nis still in progress, and a new request will be rejected.",
"type": "string"
},
"snapshotMaxCount": {
"type": "integer"
},
"snapshotMaxSize": {
"format": "int64",
"type": "string"
},
"staleReplicaTimeout": {
"type": "integer"
},
"ublkNumberOfQueue": {
"description": "ublkNumberOfQueue controls the number of queues for ublk frontend.",
"type": "integer"
},
"ublkQueueDepth": {
"description": "ublkQueueDepth controls the depth of each queue for ublk frontend.",
"type": "integer"
},
"unmapMarkSnapChainRemoved": {
"enum": [
"ignored",
"disabled",
"enabled"
],
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"status": {
"description": "VolumeStatus defines the observed state of the Longhorn volume",
"properties": {
"actualSize": {
"format": "int64",
"type": "integer"
},
"cloneStatus": {
"properties": {
"attemptCount": {
"type": "integer"
},
"nextAllowedAttemptAt": {
"type": "string"
},
"snapshot": {
"type": "string"
},
"sourceVolume": {
"type": "string"
},
"state": {
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"conditions": {
"items": {
"properties": {
"lastProbeTime": {
"description": "Last time we probed the condition.",
"type": "string"
},
"lastTransitionTime": {
"description": "Last time the condition transitioned from one status to another.",
"type": "string"
},
"message": {
"description": "Human-readable message indicating details about last transition.",
"type": "string"
},
"reason": {
"description": "Unique, one-word, CamelCase reason for the condition's last transition.",
"type": "string"
},
"status": {
"description": "Status is the status of the condition.\nCan be True, False, Unknown.",
"type": "string"
},
"type": {
"description": "Type is the type of the condition.",
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"nullable": true,
"type": "array"
},
"currentEngineNodeID": {
"description": "the node that the engine (target) is currently running on.",
"type": "string"
},
"currentImage": {
"type": "string"
},
"currentMigrationNodeID": {
"description": "the node that this volume is currently migrating to",
"type": "string"
},
"currentNodeID": {
"type": "string"
},
"expansionRequired": {
"type": "boolean"
},
"frontendDisabled": {
"type": "boolean"
},
"isStandby": {
"type": "boolean"
},
"kubernetesStatus": {
"properties": {
"lastPVCRefAt": {
"type": "string"
},
"lastPodRefAt": {
"type": "string"
},
"namespace": {
"description": "determine if PVC/Namespace is history or not",
"type": "string"
},
"pvName": {
"type": "string"
},
"pvStatus": {
"type": "string"
},
"pvcName": {
"type": "string"
},
"workloadsStatus": {
"description": "determine if Pod/Workload is history or not",
"items": {
"properties": {
"podName": {
"type": "string"
},
"podStatus": {
"type": "string"
},
"workloadName": {
"type": "string"
},
"workloadType": {
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"nullable": true,
"type": "array"
}
},
"type": "object",
"additionalProperties": false
},
"lastAutoSalvagedAt": {
"type": "string"
},
"lastBackup": {
"type": "string"
},
"lastBackupAt": {
"type": "string"
},
"lastDegradedAt": {
"type": "string"
},
"lastOnDemandSnapshotHashingCompleteAt": {
"description": "LastOnDemandSnapshotHashingCompleteAt is the RFC3339 timestamp (e.g., \"2026-03-16T10:30:00Z\") when the\nmost recent on-demand snapshot checksum calculation completed.\nWhen this value matches SnapshotHashingRequestedAt, the requested on-demand checksum calculation is considered complete.",
"type": "string"
},
"ownerID": {
"type": "string"
},
"remountRequestedAt": {
"type": "string"
},
"restoreInitiated": {
"type": "boolean"
},
"restoreRequired": {
"type": "boolean"
},
"robustness": {
"type": "string"
},
"shareEndpoint": {
"type": "string"
},
"shareState": {
"type": "string"
},
"state": {
"type": "string"
},
"switchoverState": {
"description": "SwitchoverState describes the current progress of a v2 engine live switchover.\nEmpty when no switchover is in progress.",
"type": "string"
}
},
"type": "object",
"additionalProperties": false
}
},
"type": "object"
}