Releases: piraeusdatastore/linstor-csi
v0.19.0
Added
- Snapshots from S3 are now restored by preferred topology, if possible. Previously, all admissible nodes based
on the provided cluster topology were considered in random order. Now the order is fixed to be based on the
preferred topology instead.
Breaking
- An empty filesystem volume that was provisioned with 0.18.0, but never attached will not be attachable. It is missing
the filesystem, since LINSTOR CSI no longer creates it on attach. You have to recreate these volumes (by definition,
they hold no data).
Changed
- Use LINSTOR native properties to provision filesystem volumes. This might slightly alter the default options used
when runningmkfs
, LINSTOR choses defaults optimized for DRBD. Previously filesystem creation was part of the usual
mount process. This could run into timeouts for very large volumes: as the process would be restarted from scratch
on every timeout, it would never complete.
v0.18.0
This release finally introduces backups to S3 via kubernetes native VolumeSnapshot objects. Check the examples here.
Added
- A new parameter
usePvcName
was added. When "true", the driver will (try to) use the PVC name + namespace instead
of the generated PV name as ID. Because this might generate name conflicts in certain scenarios, it remains disabled
by default. - Create backups of volumes, stored on S3 compatible storage. See
examples/k8s/volume-snapshot-class.yaml
for how backups can be
configured. Note: restoring from such a backup to a new cluster requires some manual steps. Check the examples. - Include
linstor-wait-until
in the image, to make it easy to wait for the LINSTOR API before starting the driver.
Changed
- Snapshots are only restored on one node, then replicas are distributed using the usual scheduler logic. Previously
a volume restored from a snapshot would be deployed on exactly the same nodes as the original. - Require golang 1.17 for
go generate
, removing the binary dependencies from go.mod. - Update CSI Spec to 1.5.0
Fixed
- ControllerUnpublishVolume could fail if LINSTOR node was deleted before the detach operation was executed.
- LINSTOR CSI now expands a restored or cloned volume (if required) before deploying to multiple nodes. A single
resource should always be in sync, so it is always safe to expand them.
v0.18.0-beta.2
Added
- Include
linstor-wait-until
in the image, to make it easy to wait for the LINSTOR API before starting the driver.
v0.18.0-beta.1
This prerelease is intended to test the new release process for static binaries. It also includes some fixes made since 0.17.0 and one new feature. 0.18.0 will be released when S3 backup via CSI snapshotting is ready to be used.
Added
- A new parameter
usePvcName
was added. When "true", the driver will (try to) use the PVC name + namespace instead
of the generated PV name as ID. Because this might generate name conflicts in certain scenarios, it remains disabled
by default.
Changed
- Snapshots are only restored on one node, then replicas are distributed using the usual scheduler logic. Previously
a volume restored from a snapshot would be deployed on exactly the same nodes as the original. - Require golang 1.17 for
go generate
, removing the binary dependencies from go.mod. - Update CSI Spec to 1.5.0
Fixed
- ControllerUnpublishVolume could fail if LINSTOR node was deleted before the detach operation was executed.
v0.17.0
Added
allowRemoteVolumeAccess
supports new values, allowing a more fine-grained controlled on diskless access.
Fixed
- ControllerPublishVolume will attach a new volume on the selected node, even if it violates the
replicasOn...
parameters. This preventedallowRemoteVolumeAccess
from working as expected.
v0.16.0
Changed
- Previous versions of LINSTOR CSI passed parameters (as set in a storage class for example) via custom properties on
the LINSTOR resources. If those properties were not found, the volume could not be mounted. This made is hard to
use pre-provisioned volumes, for example those restored from off-site backups. Now the parameters are passed via
the CSI native "Volume Context", which makes it possible to use pre-provisioned volumes.
v0.15.1
Fixed
- A bug introduced in 0.14.0 meant that using the "FollowTopology" policy would not create the requested amount
of volume replicas. Instead, only a single replica was created. This bug is now fixed. Existing volumes can be
updated by usinglinstor rg adjust <resource group>
.
v0.15.0
Added
- New default volume scheduler
AutoPlaceTopology
. This new scheduler is a topology aware version of the old
AutoPlace
scheduler. Since it is topology aware, it can be used to optimize volume placement when using
WaitForFirstConsumer
volume binding or restricting placement viaallowedTopologies
, while still respecting
user-defined placement options such asreplicasOnSame
orreplicasOnDifferent
.
v0.14.1
v0.14.0
Added
-
Option to send a bearer token for authentication. This can be used when the API is secured by a project like
kube-rbac-proxy
. -
Add explicit namespace
linstor.csi.linbit.com
to volume parameters in storage class. This makes it easier to track
which parameter is handled by which component (for example:csi.storage.k8s.io/fstype
is handled by the CSI
infrastructure, not the plugin itself).Un-namespaced parameters are still supported, while explicitly namespaced
parameters with a foreign namespace are now ignored. These would produce "unknown parameter" errors previously.
Changed
- Calls to
GetCapacity
now take topology information (if any) into account.