{ "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" } ] }, "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": { "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" }, "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" }, "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 }, "lastBackup": { "type": "string" }, "lastBackupAt": { "type": "string" }, "lastDegradedAt": { "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" } }, "type": "object", "additionalProperties": false } }, "type": "object" }