All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- new
placementPolicy
:Balanced
provisions remote volumes in the samefailure-domain.beta.kubernetes.io/zone
, picks least utilizedStoragePool
, node andPrefNic
calculated as(total_capacity - free_capacity) / total_capacity
linstor-skip-tls-verification
argument for csi-plugin. Set to"true"
to disable tls verification- csi-plugin will read
LS_USERNAME
andLS_PASSWORD
environment variables for https auth credentials
- Upgrade to golinstor v0.16.1 from v0.16.2
- better logging for Mount calls.
- csi-plugin base imagine is now debian:buster was alpine
- filesystem options no longer ignored. Introduced in v0.6.0
placementPolicy
parameter to control where volumes are physically placed on storage with the following (case sensitive!) options:AutoPlace
uses LINSTOR autoplaceManual
usesclientList
andnodeList
FollowTopology
attempts to provision volumes according to volume topology preferencesplacementCount
number of times.
allowRemoteVolumeAccess
parameter which allow volumes to be remotely attached to nodes (diskless). Defaults to"true"
placementCount
parameter to determine how many replicas to create. Alias to theautoPlace
parameter
- localStoragePolicy parameter
- Upgrade to golinstor v0.16.1 from v0.15.0
- attach diskless resources, rather than diskful. introduced in 0.6.3
localStoragePolicy
now acceptsprefer
andrequire
These are now the preferred (but not required) way to specify these options.
- multivolume resources were potentially broken, but this plugin only makes single volume resources, so this was a corner case.
- getting volume names was broken if there were non-csi-annotated resource definitions
- disklessly attached volumes report volume topology based off of
disklessStoragePool
parameter. By default, they are available on all LINSTOR nodes. Creating new diskless storage pools on a subset of nodes can be used to control from where diskless volumes can be accessed. - support for raw block volumes
linstor-api-requests-per-second
plugin argumentlinstor-api-burst
plugin argument
- NodeStageVolume and NodeUnstageVolume, everything can be done via NodePublishVolume and NodeUnpublishVolume
- ListVolumes now working
- Updated dependency versions
localStoragePolicy
parameter now case insensitive when reporting volume topology, previously needed to be lowercase
- log-level argument for csi-plugin. it takes strings of levels: info, debug, error, etc. The help text lists all of them, but those are the only three you need. Defaults to info.
- support for diskless on remaining is added as a storage class parameter
example
disklessOnRemaining: true
defaults to false - minimal node health checking during relevant CSI calls
- ListVolumes call implemented
- GetCapacity call implemented
- publishing READONLY supported
- LINSTOR api calls are now subject to csi sidecar container timeouts. Timeout argument values of these containers may need to be lengthened, see example deployment
- CHANGELOG.md (so meta!)
- debug-logging argument for csi-plugin
- force and blocksize parameters: use fsOpts for these
- resource definitions should be cleaned up in all cases where CreateVolume calls fail
- mounting now checks for plugin's ability to do an exclusive open on the resources backing device, addresses piraeusdatastore#15
- controllers argument for csi-plugin is now linstor-endpoint and must be a url with a protocol (http://...) this now points to the linstor rest api work for LINSTOR controller 0.9.11 or better.
- endpoint argument for csi-plugin is now csi-endpoint
- examples/k8s/deploy/linstor-csi.yaml updated
- csi-plugin base imagine is now alpine: was linstor-client
- golinstor is bumped to version v0.15.0 and uses the rest api exclusively
- storagePool now defaults to "", rather than DfltStorPool allowing LINSTOR
to choose storage pools on pure autoPlace calls. This is not supported
in conjunction with localStoragePolicies
required
orpreferred
- encryption parameter takes boolean values, like
disklessOnRemaining
:- 1, t, T, TRUE, true, and True
- 0, f, F, FALSE, false, and False
- all storageClass parameters options are now case insenstive
- non-debug logging is less verbose in general