cluster: drop DisableLocalStorageCapacityIsolation

it was used to workaround a kubelet crash issue with rootless
providers.

The Kubelet seems to work fine now with localStorageCapacityIsolation
enabled in a user namespace so drop the special handling.  After this
change, ephemeral storage can be used in a rootless cluster.

Closes: https://github.com/kubernetes-sigs/kind/issues/3359

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
This commit is contained in:
Giuseppe Scrivano
2023-09-12 09:12:11 +02:00
committed by Benjamin Elder
parent 83db82f0f3
commit ceb72e47d8

View File

@@ -79,10 +79,6 @@ type ConfigData struct {
// RootlessProvider is true if kind is running with rootless mode // RootlessProvider is true if kind is running with rootless mode
RootlessProvider bool RootlessProvider bool
// DisableLocalStorageCapacityIsolation is typically set true based on RootlessProvider
// based on the Kubernetes version, if true kubelet localStorageCapacityIsolation is set false
DisableLocalStorageCapacityIsolation bool
// DerivedConfigData contains fields computed from the other fields for use // DerivedConfigData contains fields computed from the other fields for use
// in the config templates and should only be populated by calling Derive() // in the config templates and should only be populated by calling Derive()
DerivedConfigData DerivedConfigData
@@ -453,7 +449,6 @@ evictionHard:
{{ range $index, $gate := .SortedFeatureGates }} {{ range $index, $gate := .SortedFeatureGates }}
"{{ (StructuralData $gate.Name) }}": {{ $gate.Value }} "{{ (StructuralData $gate.Name) }}": {{ $gate.Value }}
{{end}}{{end}} {{end}}{{end}}
{{if .DisableLocalStorageCapacityIsolation}}localStorageCapacityIsolation: false{{end}}
{{if ne .KubeProxyMode "none"}} {{if ne .KubeProxyMode "none"}}
--- ---
apiVersion: kubeproxy.config.k8s.io/v1alpha1 apiVersion: kubeproxy.config.k8s.io/v1alpha1
@@ -505,16 +500,6 @@ func Config(data ConfigData) (config string, err error) {
return "", errors.Errorf("version %q is not compatible with rootless provider (hint: kind v0.11.x may work with this version)", ver) return "", errors.Errorf("version %q is not compatible with rootless provider (hint: kind v0.11.x may work with this version)", ver)
} }
data.FeatureGates["KubeletInUserNamespace"] = true data.FeatureGates["KubeletInUserNamespace"] = true
// For avoiding err="failed to get rootfs info: failed to get device for dir \"/var/lib/kubelet\": could not find device with major: 0, minor: 41 in cached partitions map"
// https://github.com/kubernetes-sigs/kind/issues/2524
if ver.LessThan(version.MustParseSemantic("v1.25.0-alpha.3.440+0064010cddfa00")) {
// this feature gate was removed in v1.25 and replaced by an opt-out to disable
data.FeatureGates["LocalStorageCapacityIsolation"] = false
} else {
// added in v1.25 https://github.com/kubernetes/kubernetes/pull/111513
data.DisableLocalStorageCapacityIsolation = true
}
} }
// assume the latest API version, then fallback if the k8s version is too low // assume the latest API version, then fallback if the k8s version is too low