You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: enhancements/kubelet/user-namespaces-support.md
+50
Original file line number
Diff line number
Diff line change
@@ -373,6 +373,56 @@ that are running with a version lower than the configured version. If so, the cr
373
373
374
374
MCO will read the MinimumKubeletVersion and mark machines as degraded if the node is not at least MinimumKubeletVersion.
375
375
376
+
##### RequiredMinimumComponentVersion
377
+
378
+
The openshift featuregate API is the way to configure featuregates in a cluster. We will plumb awareness of the minimum kubelet version to the featuregate API by adding
379
+
a RequiredMinimumComponentVersion to the FeatureGateAttributes structure:
380
+
381
+
```
382
+
type FeatureGateAttributes struct {
383
+
// name is the name of the FeatureGate.
384
+
// +required
385
+
Name FeatureGateName `json:"name"`
386
+
387
+
// requiredMinimumComponentVersion is a list of component/version pairs that declares the is the lowest version the given
388
+
// component may be in this cluster.
389
+
// Currently, the only supported component is Kubelet, and setting a required minimum kubelet component will set the
390
+
// minimumKubeletVersion field in the nodes.config.openshift.io CRD.
// version is the minimum version the given component may be in this cluster.
410
+
// +kubebuilder:validation:XValidation:rule="self.matches('^[0-9]*.[0-9]*.[0-9]*$')",message="minmumKubeletVersion must be in a semver compatible format of x.y.z, or empty"
411
+
// +kubebuilder:validation:MaxLength:=8
412
+
// +required
413
+
Version string `json:"version"`
414
+
}
415
+
416
+
// +kubebuilder:validation:Enum:=Kubelet
417
+
type RequiredMinimumComponent string
418
+
419
+
var RequiredMinimumComponentKubelet RequiredMinimumComponent = "Kubelet"
420
+
```
421
+
422
+
Then, the featuregate controller in the cluster-config-operator will be extended to filter features from the Enabled set if the minimum kubelet version isn't set old enough.
423
+
This will give openshift feature developers a mechansim to programatically declare a feature requires a certain version of the kubelet. This will be used for user namespaces,
424
+
and the corresponding version for user namespaces and related feature gates will be "1.30.0"
425
+
376
426
##### Alternatives to MinimumKubeletVersion
377
427
378
428
It is also possible this feature should be paired with a corresponding kubelet field `minimumKubeletVersion`, where it exits if it is too old. This will prevent the kubelet from
0 commit comments