at 22.05-pre 1.9 kB view raw
1diff --git a/pkg/cluster/internal/providers/common/getmodules.go b/pkg/cluster/internal/providers/common/getmodules.go 2new file mode 100644 3index 00000000..f42a883d 4--- /dev/null 5+++ b/pkg/cluster/internal/providers/common/getmodules.go 6@@ -0,0 +1,15 @@ 7+package common 8+ 9+import "os" 10+ 11+const ( 12+ fhsKernalModulePath = "/lib/modules" 13+ nixKernalModulePath = "/run/booted-system/kernel-modules/lib" 14+) 15+ 16+func GetKernelModulePath() string { 17+ if _, err := os.Stat(nixKernalModulePath); !os.IsNotExist(err) { 18+ return nixKernalModulePath 19+ } 20+ return fhsKernalModulePath 21+} 22diff --git a/pkg/cluster/internal/providers/docker/provision.go b/pkg/cluster/internal/providers/docker/provision.go 23index 50161861..86d5b7b6 100644 24--- a/pkg/cluster/internal/providers/docker/provision.go 25+++ b/pkg/cluster/internal/providers/docker/provision.go 26@@ -242,7 +242,7 @@ func runArgsForNode(node *config.Node, clusterIPFamily config.ClusterIPFamily, n 27 // (please don't depend on doing this though!) 28 "--volume", "/var", 29 // some k8s things want to read /lib/modules 30- "--volume", "/lib/modules:/lib/modules:ro", 31+ "--volume", fmt.Sprintf("%s:/lib/modules:ro", common.GetKernelModulePath()), 32 }, 33 args..., 34 ) 35diff --git a/pkg/cluster/internal/providers/podman/provision.go b/pkg/cluster/internal/providers/podman/provision.go 36index 51dce486..3bc36b42 100644 37--- a/pkg/cluster/internal/providers/podman/provision.go 38+++ b/pkg/cluster/internal/providers/podman/provision.go 39@@ -205,7 +205,7 @@ func runArgsForNode(node *config.Node, clusterIPFamily config.ClusterIPFamily, n 40 // dev: devices on the volume will be able to be used by processes within the container 41 "--volume", fmt.Sprintf("%s:/var:suid,exec,dev", varVolume), 42 // some k8s things want to read /lib/modules 43- "--volume", "/lib/modules:/lib/modules:ro", 44+ "--volume", fmt.Sprintf("%s:/lib/modules:ro", common.GetKernelModulePath()), 45 }, 46 args..., 47 )