Skip to content

Releases: piraeusdatastore/piraeus-operator

v2.0.0

23 Feb 13:54
v2.0.0
Compare
Choose a tag to compare

After yesterdays release candidate, this is the final release for the new Operator v2. It's been in development for some time, and now we feel it is ready to be released. This release represents a complete re-imagination of the Operator.

One of the main changes concerns deploying the operator itself: it is now easier than ever to get started. Running the following three commands will create a working cluster:

$ kubectl apply --server-side -f https://github.com/cert-manager/cert-manager/releases/latest/download/cert-manager.yaml
$ kubectl apply --server-side -k "https://github.com/piraeusdatastore/piraeus-operator//config/default?ref=v2.0.0"
$ kubectl apply --server-side -f - <<EOF
apiVersion: piraeus.io/v1
kind: LinstorCluster
metadata:
  name: linstorcluster
spec: {}
EOF

Along the same lines, we also vastly improved the available documentation for getting started and more advanced tasks.

Thanks to net namespace support in DRBD 9.2, we can now run our satellite Pods in the normal container network. This enables the use of all the networking tools available in Kubernetes for DRBD.

If there is a Pod or workload feature our default deployment by the Piraeus Operator did not cover, you can now simply write a kustomization for just that resource. For example: you might want to deploy on a system without kernel headers installed, in which case you need to inject the headers via a patched Pod

Further development

While we feel that Operator v2 is ready to be used, there is always room for improvement. You can check out our tracking issue for additional features, and weigh in with your desired feature.

Upgrades

At this time, there is no direct upgrade path from v1 to v2. We recommend v2 for new users. Existing users should continue to use Piraeus Operator v1, which will continue to be supported until we have an upgrade path ready. Click here to go to v1.


Breaking

  • Removed existing CRD LinstorController, LinstorSatelliteSet and LinstorCSIDriver.
  • Helm chart deprecated in favor of new kustomize deployment.
  • Helm chart changed to only deploy the Operator. The LinstorCluster resource to create the storage cluster needs to be created separately.

Added

  • New CRDs to control storage cluster: LinstorCluster and LinstorSatelliteConfiguration.
  • Tutorials on how to get started.
  • Automatic selection of loader images based on operating system of node.
  • Customization of single nodes or groups of nodes.
  • Possibility to run DRBD replication using the container network.
  • Support for file system backed storage pools.
  • Default deployment for HA Controller. Since we switch to defaulting to suspend-io for lost quorum, we should include a way for Pods to get unstuck.

v2.0.0-rc.1

22 Feb 12:23
v2.0.0-rc.1
Compare
Choose a tag to compare

This is the first (any only) release candidate for the new Operator v2. It's been in development for some time, and now we feel it is ready to be released. This release represents a complete re-imagination of the Operator.

One of the main changes concerns deploying the operator itself: it is now easier than ever to get started. Running the following three commands will create a working cluster:

$ kubectl apply --server-side -f https://github.com/cert-manager/cert-manager/releases/latest/download/cert-manager.yaml
$ kubectl apply --server-side -k "https://github.com/piraeusdatastore/piraeus-operator//config/default?ref=v2"
$ kubectl apply --server-side -f - <<EOF
apiVersion: piraeus.io/v1
kind: LinstorCluster
metadata:
  name: linstorcluster
spec: {}
EOF

Along the same lines, we also vastly improved the available documentation for getting started and more advanced tasks.

Thanks to net namespace support in DRBD 9.2, we can now run our satellite Pods in the normal container network. This enables the use of all the networking tools available in Kubernetes for DRBD.

If there is a Pod or workload feature our default deployment by the Piraeus Operator did not cover, you can now simply write a kustomization for just that resource. For example: you might want to deploy on a system without kernel headers installed, in which case you need to inject the headers via a patched Pod

Upgrades

At this time, there is no direct upgrade path from v1 to v2. We recommend v2 for new users. Existing users should continue to use Piraeus Operator v1, which will continue to be supported until we have an upgrade path ready.


Breaking

  • Removed existing CRD LinstorController, LinstorSatelliteSet and LinstorCSIDriver.
  • Helm chart deprecated in favor of new kustomize deployment.
  • Helm chart changed to only deploy the Operator. The LinstorCluster resource to create the storage cluster needs to be created separately.

Added

  • New CRDs to control storage cluster: LinstorCluster and LinstorSatelliteConfiguration.
  • Tutorials on how to get started.
  • Automatic selection of loader images based on operating system of node.
  • Customization of single nodes or groups of nodes.
  • Possibility to run DRBD replication using the container network.
  • Support for file system backed storage pools

v1.10.2

01 Feb 10:12
v1.10.2
Compare
Choose a tag to compare

This release brings a new LINSTOR and DRBD release, with other small fixes along the way.

Notable changes include:

  • A new controllerStrategy option on the LinstorCSIDriver resource allows fine tuning the deployment strategy.
  • DRBD 9.1.13 fixes some issue related to quorum with diskless node.

Added

  • Option controllerStrategy to describe how to replace existing pods with new ones for csi-controller

Changed

  • Default images:
    • LINSTOR 1.20.3
    • LINSTOR CSI 0.22.1
    • DRBD 9.1.13
    • DRBD Reactor 1.0.0
    • external CSI images upgraded to latest versions

v1.10.1

15 Dec 12:31
v1.10.1
Compare
Choose a tag to compare

This release brings a new LINSTOR version and an updated CSI driver. There are no substantial changes in the operator itself, the changes are all part of the updated images:

  • LINSTOR 1.20.2 fixes an issue with restoring snapshots that were also shipped to S3. The restored resources no longer stay inconsistent.
  • LINSTOR CSI 0.22.0 fixes an issue where the wrong snapshot was downloaded from S3
  • DRBD Reactor 0.10.2 no longer enforces a strict DRBD version requirement just for exporting metrics. This caused some users issues with crashing satellite pods with any indication in the logs.

Changed

  • Creating LVM thinpools no longer limits the ability to choose a VolumeGroup name.
  • Default images:
    • LINSTOR 1.20.2
    • LINSTOR CSI 0.22.0
    • DRBD 9.1.12
    • DRBD Reactor 0.10.2
    • external CSI images upgraded to latest versions
    • changed k8s.gcr.io to registry.k8s.io

v1.10.0

19 Oct 10:52
v1.10.0
Compare
Choose a tag to compare

This is the final release of 1.10.0. In the long phase between RC.1 and this released, a lot of work was happening on the LINSTOR side.

Other than that, this release contains a few small improvements with regards to IPv6 based setups, as well as an option to share DRBD configuration between host and container.


Added

  • Can set the variable mountDrbdResourceDirectoriesFromHost in the Helm chart to create hostPath Volumes for DRBD and LINSTOR configuration directories for the satellite set.

Changed

  • Change default bind address for satellite monitoring to use IPv6 anylocal [::]. This will still to work on IPv4
    only systems with IPv6 disabled via sysctl.
  • Default images:
    • LINSTOR 1.20.0
    • DRBD 9.1.11
    • DRBD Reactor 0.9.0
    • external CSI images upgraded to latest versions

Fixed

  • Comparing IP addresses for registered components uses golang's built-in net.IP type.
  • Restoring satellites after eviction only happens if the node is ready.

v1.10.0-rc.1

21 Sep 09:44
v1.10.0-rc.1
Compare
Choose a tag to compare
v1.10.0-rc.1 Pre-release
Pre-release

This release brings the usual updates to container images, notably the new LINSTOR 1.20.0 RC. Other than that, there is a small fix to restoring evicted nodes.


Fixed

  • Restoring satellites after eviction only happens if the node is ready.

Changed

  • Default images:
    • LINSTOR 1.20.0-rc.1
    • DRBD 9.1.11
    • external CSI images upgraded to latest versions

v1.9.1

27 Jul 12:34
v1.9.1
Compare
Choose a tag to compare

Right after releasing 1.9.0, we noticed that some resources were not cleanly upgraded. There was an issue in the way certain resources were patched on upgrade. So now it's already time for 1.9.1, which fixes this issue and allows for a clean upgrade.


Fixed

  • ServiceMonitor resources can't be patched, instead we recreate them.

v1.9.0

27 Jul 10:52
v1.9.0
Compare
Choose a tag to compare

In this release we focused on general imrovements, including the usual round of version updates.

We'd also like to announce two additions to the Piraeus Project in general that might be of interest to the community:

  • The Piraeus HA Controller was updated, should be much more reliable after a complete rewrite. In short, it will reduce fail-over times for stateful workloads when using Piraeus volumes.
  • The LINSTOR Affinity Controller is now also available from the Piraeus chart repository. In short, it keeps affinity of volumes in sync between LINSTOR and Kubernetes.

Added

  • Support for custom labels and annotations with added options to values.yaml.
  • Instructions for deploying the affinity controller.

Changed

  • Satellite operator now reports basic satellite status even if controller is not reachable
  • Query single satellite devices to receive errors when the satellite is offline instead of assuming
    devices are already configured.
  • Disabled the legacy HA Controller deployment by default. It has been replaced a separate chart.
  • Default images:
    • LINSTOR 1.19.1
    • LINSTOR CSI 0.20.0
    • DRBD 9.1.8
    • DRBD Reactor 0.8.0
    • external CSI images to latest versions

Fixed

  • last-applied-configuration annotation was never updated, so updating of some fields was not performed correctly.

v1.8.2

24 May 11:12
v1.8.2
Compare
Choose a tag to compare

Another small update, since LINSTOR released another bug-fix release.

Apart from updated images, this release features initial support for extending existing pods with custom sidecar containers. Examples include configurating kube-rbac-proxy for the metrics endpoints.


Added

  • Option to disable creating monitoring resources (Services and ServiceMonitors)
  • Add options csi.controllerSidecars, csi.controllerExtraVolumes, csi.nodeSidecars, csi.nodeExtraVolumes,
    operator.controller.sidecars, operator.controller.extraVolumes, operator.satelliteSet.sidecars,
    operator.satelliteSet.extraVolumes to allow specifying extra sidecar containers.
  • Add options operator.controller.httpBindAddress, operator.controller.httpsBindAddress,
    operator.satelliteSet.monitoringBindAddress to allow specifying bind address.
  • Add example values and doc reference to run piraeus-operator with rbac-proxy.

Changed

  • Default images:
    • LINSTOR 1.18.2
    • LINSTOR CSI 0.19.1
    • DRBD Reactor 0.7.0

Removed

  • Get rid of operator-sdk binary, use native controller-gen instead

v1.8.1

12 May 14:24
v1.8.1
Compare
Choose a tag to compare

This patch release mainly brings updated LINSTOR and DRBD images, as well as removal of the "backup nag" when upgrading the k8s backend. Please note that for upgrades from before 1.8.0, a manual backup of the k8s database is still needed.

We have also upgraded some internal dependencies that lead to frequent crashing of the operator, as well as upgrading some default tolerations to get them ready for Kubernetes 1.24.

Changed

  • Default images:
    • LINSTOR 1.18.1
    • LINSTOR CSI 0.19.0
    • DRBD 9.1.7
    • DRBD Reactor 0.6.1

Removed

  • Upgrades involving k8s databases no long require manually confirming a backup exists using
    --set IHaveBackedUpAllMyLinstorResources=true.