Description
Release 1.17.0 silently introduced a breaking change worth of a major version bump.
As noted in #913, upgrading an existing release to version 1.17.0 leads to a deployment failure due to changes to the immutable field VolumeLifecycleMode
of the existing kubernetes object CSIDriver
.
The full stacktrace is:
[...] CSIDriver.storage.k8s.io "smb.csi.k8s.io" is invalid: spec.volumeLifecycleModes: Invalid value: []storage.VolumeLifecycleMode{"Persistent", "Ephemeral"}: field is immutable [...]
Apparently, setting feature.enableInlineVolume
to false
fixes the issue. I propose two possible solutions:
- Create a new 1.17.1 release with
feature.enableInlineVolume: false
by default - Properly communicate the breaking change through semantic versioning by deleting the 1.17.0 release and creating a new
2.0.0
release
Of course the first solution is probably the most effective and requires the least effort.
To end the issue with some personal ramblings: I'm curious as to how this breaking change managed to go through testing, was it a known issue but people deemed it to be not worth of a major bump? Why wasn't it at least documented in the release notes, possibly with a warning?