topolvm-node provides a CSI node service. It also works as a custom
Kubernetes controller to implement dynamic volume provisioning.
topolvm-node implements following optional features:
topolvm-node watches LogicalVolume and creates
or deletes LVM logical volumes by sending requests to LVMd.
If logicalvolume.status.volumeID is empty,
it means that the logical volume correspond to LogicalVolume is not provisioned with LVMd.
So in that case, topolvm-node sends CreateLV request to LVMd.
If its response is succeeded, topolvm-node set logicalvolume.status.volumeID.
When a LogicalVolume resource is being deleted, topolvm-node sends
a RemoveLV request to LVMd.
topolvm_volumegroup_available_bytes is a Gauge that indicates the available
free space in the LVM volume group in bytes.
| Label | Description |
|---|---|
node |
The node resource name |
device_class |
The device class name. |
topolvm_volumegroup_size_bytes is a Gauge that indicates the size of the LVM volume group in bytes.
| Label | Description |
|---|---|
node |
The node resource name |
device_class |
The device class name. |
topolvm_thinpool_data_percent is a Gauge that indicates the data space percentage used in the LVM thinpool.
| Label | Description |
|---|---|
node |
The node resource name |
device_class |
The device class name. |
topolvm_thinpool_metadata_percent is a Gauge that indicates the metadata space percentage used of the LVM thinpool.
| Label | Description |
|---|---|
node |
The node resource name |
device_class |
The device class name. |
topolvm_thinpool_size_bytes is a Gauge that indicates the size of the LVM thin pool in bytes.
| Label | Description |
|---|---|
node |
The node resource name |
device_class |
The device class name. |
topolvm_thinpool_overprovisioned_available is a Gauge that indicates the available overprovisioned size of the LVM thin pool in bytes.
| Label | Description |
|---|---|
node |
The node resource name |
device_class |
The device class name. |
topolvm-node adds capacity.topolvm.io/<device-class> annotations
for each device-class and capacity.topolvm.io/00default annotation
for the default device-class to the corresponding Node resource of the running node.
The value is the free storage capacity reported by LVMd in bytes.
It also adds topolvm.io/node finalizer to the Node.
The finalizer will be processed by topolvm-controller
to clean up PVCs and associated Pods bound to the node.
| Name | Type | Default | Description |
|---|---|---|---|
csi-socket |
string | /run/topolvm/csi-topolvm.sock |
UNIX domain socket of topolvm-node. |
lvmd-socket |
string | /run/topolvm/lvmd.sock |
UNIX domain socket of LVMd service. |
metrics-bind-address |
string | :8080 |
Bind address for the metrics endpoint. |
secure-metrics-server |
bool | false |
Secures the metrics server. |
nodename |
string | Node resource name. |
NODE_NAME:Noderesource name.
If both NODE_NAME and nodename flag are given, nodename flag is preceded.