...
- 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
...