auto set LocalStorageCapacityIsolation for BTRFS
parent
e1cecc0fa0
commit
592e2b01ca
|
@ -518,6 +518,17 @@ func generateNewConfigFromFlags(cmd *cobra.Command, k8sVersion string, drvName s
|
|||
}
|
||||
}
|
||||
|
||||
if driver.IsDockerBTRFS(drvName) {
|
||||
fg := "LocalStorageCapacityIsolation=false"
|
||||
if !strings.Contains(cc.KubernetesConfig.FeatureGates, fg) {
|
||||
klog.Info("auto-setting LocalStorageCapacityIsolation to false")
|
||||
if len(cc.KubernetesConfig.FeatureGates) != 0 {
|
||||
fg = "," + fg
|
||||
}
|
||||
cc.KubernetesConfig.FeatureGates += fg
|
||||
}
|
||||
}
|
||||
|
||||
return cc
|
||||
}
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ package driver
|
|||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"os/exec"
|
||||
"runtime"
|
||||
"sort"
|
||||
"strconv"
|
||||
|
@ -144,6 +145,24 @@ func IsDockerDesktop(name string) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
// IsDockerBTRFS checks if Docker is using btrfs storage driver
|
||||
func IsDockerBTRFS(name string) bool {
|
||||
if !IsDocker(name) {
|
||||
return false
|
||||
}
|
||||
cmd := exec.Command("docker", "info", "-f", "{{.Driver}}")
|
||||
if err := cmd.Run(); err != nil {
|
||||
klog.Warning("failed to get Docker storage driver: %v", err)
|
||||
return false
|
||||
}
|
||||
output, err := cmd.Output()
|
||||
if err != nil {
|
||||
klog.Warning("failed to get command output: %v", err)
|
||||
return false
|
||||
}
|
||||
return strings.Contains(string(output), "btrfs")
|
||||
}
|
||||
|
||||
// IsMock checks if the driver is a mock
|
||||
func IsMock(name string) bool {
|
||||
return name == Mock
|
||||
|
|
Loading…
Reference in New Issue