mirror of https://github.com/kubernetes/kops.git
Properly detect that bpffs has been mounted
This commit is contained in:
parent
249beba657
commit
f2f29d92d6
1
go.mod
1
go.mod
|
|
@ -124,6 +124,7 @@ require (
|
||||||
golang.org/x/crypto v0.0.0-20191202143827-86a70503ff7e
|
golang.org/x/crypto v0.0.0-20191202143827-86a70503ff7e
|
||||||
golang.org/x/net v0.0.0-20191126235420-ef20fe5d7933
|
golang.org/x/net v0.0.0-20191126235420-ef20fe5d7933
|
||||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
|
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
|
||||||
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a
|
||||||
golang.org/x/tools v0.0.0-20191203134012-c197fd4bf371
|
golang.org/x/tools v0.0.0-20191203134012-c197fd4bf371
|
||||||
google.golang.org/api v0.17.0
|
google.golang.org/api v0.17.0
|
||||||
gopkg.in/gcfg.v1 v1.2.0
|
gopkg.in/gcfg.v1 v1.2.0
|
||||||
|
|
|
||||||
|
|
@ -72,6 +72,7 @@ go_library(
|
||||||
"//vendor/github.com/aws/aws-sdk-go/aws/session:go_default_library",
|
"//vendor/github.com/aws/aws-sdk-go/aws/session:go_default_library",
|
||||||
"//vendor/github.com/aws/aws-sdk-go/service/ec2:go_default_library",
|
"//vendor/github.com/aws/aws-sdk-go/service/ec2:go_default_library",
|
||||||
"//vendor/github.com/blang/semver:go_default_library",
|
"//vendor/github.com/blang/semver:go_default_library",
|
||||||
|
"//vendor/golang.org/x/sys/unix:go_default_library",
|
||||||
"//vendor/k8s.io/api/core/v1:go_default_library",
|
"//vendor/k8s.io/api/core/v1:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
|
|
|
||||||
|
|
@ -18,9 +18,9 @@ package model
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
|
"golang.org/x/sys/unix"
|
||||||
"k8s.io/kops/upup/pkg/fi"
|
"k8s.io/kops/upup/pkg/fi"
|
||||||
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
|
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
|
||||||
)
|
)
|
||||||
|
|
@ -70,15 +70,15 @@ func (b *NetworkBuilder) Build(c *fi.ModelBuilderContext) error {
|
||||||
if networking.Cilium != nil {
|
if networking.Cilium != nil {
|
||||||
// systemd v238 includes the bpffs mount by default; and gives an error "has a bad unit file setting" if we try to mount it again (see mount_point_is_api)
|
// systemd v238 includes the bpffs mount by default; and gives an error "has a bad unit file setting" if we try to mount it again (see mount_point_is_api)
|
||||||
var alreadyMounted bool
|
var alreadyMounted bool
|
||||||
_, err := os.Stat("/sys/fs/bpf")
|
// bpffs magic number
|
||||||
|
magic := uint32(0xCAFE4A11)
|
||||||
|
var fsdata unix.Statfs_t
|
||||||
|
err := unix.Statfs("/sys/fs/bpf", &fsdata)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if os.IsNotExist(err) {
|
alreadyMounted = false
|
||||||
alreadyMounted = false
|
|
||||||
} else {
|
|
||||||
return fmt.Errorf("error checking for /sys/fs/bpf: %v", err)
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
alreadyMounted = true
|
alreadyMounted = int32(magic) == int32(fsdata.Type)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !alreadyMounted {
|
if !alreadyMounted {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue