Skip to content

Releases: piraeusdatastore/linstor-csi

v0.19.0

09 May 12:02
v0.19.0
Compare
Choose a tag to compare

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 running mkfs, 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

24 Feb 10:47
v0.18.0
Compare
Choose a tag to compare

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

15 Feb 15:33
v0.18.0-beta.2
Compare
Choose a tag to compare
v0.18.0-beta.2 Pre-release
Pre-release

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

25 Jan 15:40
v0.18.0-beta.1
Compare
Choose a tag to compare
v0.18.0-beta.1 Pre-release
Pre-release

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

09 Dec 14:30
v0.17.0
Compare
Choose a tag to compare

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 prevented allowRemoteVolumeAccess from working as expected.

v0.16.0

15 Oct 08:10
v0.16.0
Compare
Choose a tag to compare

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

06 Oct 12:01
v0.15.1
Compare
Choose a tag to compare

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 using linstor rg adjust <resource group>.

v0.15.0

23 Sep 10:31
v0.15.0
Compare
Choose a tag to compare

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 via allowedTopologies, while still respecting
    user-defined placement options such as replicasOnSame or replicasOnDifferent.

v0.14.1

02 Sep 09:35
v0.14.1
Compare
Choose a tag to compare

Added

  • Build image for arm64

v0.14.0

18 Aug 12:51
v0.14.0
Compare
Choose a tag to compare

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.