Skip to content

Upgrading to 1.17.0 fails due to a breaking change with VolumeLifecycleMode field of the CSIDriver object #920

Open
@paolofacchinetti

Description

@paolofacchinetti

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:

  1. Create a new 1.17.1 release with feature.enableInlineVolume: false by default
  2. 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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    lifecycle/rottenDenotes an issue or PR that has aged beyond stale and will be auto-closed.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions