Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Include changes related to dropping min finalized version

...

  • UNSAFE_FEATURE_DOWNGRADE: indicates that a requested feature level downgrade cannot safely be performed  


Remove "MinVersionLevel" from ApiVersionsResponse "FinalizedFeatures"

Code Block
    { "name":  "FinalizedFeatures", "type": "[]FinalizedFeatureKey", "ignorable": true,
      "versions":  "3+", "tag": 2, "taggedVersions": "3+",
      "about": "List of cluster-wide finalized features. The information is valid only if FinalizedFeaturesEpoch >= 0.",
      "fields":  [
        {"name": "Name", "type": "string", "versions":  "3+", "mapKey": true,
          "about": "The name of the feature."},
        {"name":  "MaxVersionLevel", "type": "int16", "versions":  "3+",
          "about": "The cluster-wide finalized max version level for the feature"},
        {"name":  "MinVersionLevel", "type": "int16", "versions":  "3", // Drop support for MinVersionLevel in version 4
          "about": "The cluster-wide finalized min version level for the feature"}
      ]
    }


Remove "MinFeatureLevel" from FeatureLevelRecord. Since this record is not yet persisted anywhere in Kafka (KRaft does not yet support feature flags), we can modify this schema without adding a new version.

Code Block
{
  "apiKey": 12,
  "type": "metadata",
  "name": "FeatureLevelRecord",
  "validVersions": "0",
  "flexibleVersions": "0+",
  "fields": [
    { "name": "Name", "type": "string", "versions": "0+",
      "about": "The feature name." },
    { "name": "FeatureLevel", "type": "int16", "versions": "0+",
      "about": "The current finalized feature level of this feature for the cluster." }
  ]
}



KIP-584 CLI Addendum

Re-structure the kafka-features.sh tool to provide functions described by the "Basic" and "Advanced" CLI usages as sub-commands. 

...

Send an UpdateFeaturesRequest to the controller to disable the given feature FEATURE. Disabling a feature is effectively putting its version in an uninitialized state. It does not prevent the operator from re-enabling the feature via the "upgrade" command.


KIP-584 Finalized Version Addendum

...