Merge pull request #80296 from bart0sh/PR0072-remove-util-procfs-dependency

kubeadm: remove dependency on pkg/util/procfs
This commit is contained in:
Kubernetes Prow Robot 2019-07-20 00:40:54 -07:00 committed by GitHub
commit cfabadb0eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 43 additions and 36 deletions

View File

@ -83,7 +83,6 @@
"k8s.io/kubernetes/pkg/util/ipvs",
"k8s.io/kubernetes/pkg/util/metrics",
"k8s.io/kubernetes/pkg/util/parsers",
"k8s.io/kubernetes/pkg/util/procfs",
"k8s.io/kubernetes/pkg/util/sysctl",
"k8s.io/kubernetes/pkg/util/taints"
],

View File

@ -19,7 +19,6 @@ go_library(
"//cmd/kubeadm/app/util/apiclient:go_default_library",
"//cmd/kubeadm/app/util/initsystem:go_default_library",
"//pkg/kubelet/apis/config:go_default_library",
"//pkg/util/procfs:go_default_library",
"//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/api/rbac/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",

View File

@ -29,7 +29,7 @@ import (
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
"k8s.io/kubernetes/cmd/kubeadm/app/images"
kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util"
"k8s.io/kubernetes/pkg/util/procfs"
"k8s.io/kubernetes/cmd/kubeadm/app/util/initsystem"
utilsexec "k8s.io/utils/exec"
)
@ -39,7 +39,7 @@ type kubeletFlagsOpts struct {
pauseImage string
registerTaintsUsingFlags bool
execer utilsexec.Interface
pidOfFunc func(string) ([]int, error)
isServiceActiveFunc func(string) (bool, error)
defaultHostname string
}
@ -57,8 +57,14 @@ func WriteKubeletDynamicEnvFile(cfg *kubeadmapi.ClusterConfiguration, nodeReg *k
pauseImage: images.GetPauseImage(cfg),
registerTaintsUsingFlags: registerTaintsUsingFlags,
execer: utilsexec.New(),
pidOfFunc: procfs.PidOf,
defaultHostname: hostName,
isServiceActiveFunc: func(name string) (bool, error) {
initSystem, err := initsystem.GetInitSystem()
if err != nil {
return false, err
}
return initSystem.ServiceIsActive(name), nil
},
defaultHostname: hostName,
}
stringMap := buildKubeletArgMap(flagOpts)
argList := kubeadmutil.BuildArgumentListFromMap(stringMap, nodeReg.KubeletExtraArgs)
@ -98,8 +104,11 @@ func buildKubeletArgMap(opts kubeletFlagsOpts) map[string]string {
kubeletFlags["register-with-taints"] = strings.Join(taintStrs, ",")
}
if pids, _ := opts.pidOfFunc("systemd-resolved"); len(pids) > 0 {
// procfs.PidOf only returns an error if the regex is empty or doesn't compile, so we can ignore it
ok, err := opts.isServiceActiveFunc("systemd-resolved")
if err != nil {
klog.Warningf("cannot determine if systemd-resolved is active: %v\n", err)
}
if ok {
kubeletFlags["resolv-conf"] = "/run/systemd/resolve/resolv.conf"
}

View File

@ -25,7 +25,7 @@ import (
"github.com/pkg/errors"
"k8s.io/api/core/v1"
v1 "k8s.io/api/core/v1"
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
"k8s.io/utils/exec"
)
@ -89,12 +89,12 @@ var (
}
)
func binaryRunningPidOfFunc(_ string) ([]int, error) {
return []int{1, 2, 3}, nil
func serviceIsActiveFunc(_ string) (bool, error) {
return true, nil
}
func binaryNotRunningPidOfFunc(_ string) ([]int, error) {
return []int{}, nil
func serviceIsNotActiveFunc(_ string) (bool, error) {
return false, nil
}
func TestBuildKubeletArgMap(t *testing.T) {
@ -118,9 +118,9 @@ func TestBuildKubeletArgMap(t *testing.T) {
},
},
},
execer: errCgroupExecer,
pidOfFunc: binaryNotRunningPidOfFunc,
defaultHostname: "foo",
execer: errCgroupExecer,
isServiceActiveFunc: serviceIsNotActiveFunc,
defaultHostname: "foo",
},
expected: map[string]string{
"network-plugin": "cni",
@ -133,9 +133,9 @@ func TestBuildKubeletArgMap(t *testing.T) {
CRISocket: "/var/run/dockershim.sock",
Name: "override-name",
},
execer: errCgroupExecer,
pidOfFunc: binaryNotRunningPidOfFunc,
defaultHostname: "default",
execer: errCgroupExecer,
isServiceActiveFunc: serviceIsNotActiveFunc,
defaultHostname: "default",
},
expected: map[string]string{
"network-plugin": "cni",
@ -149,9 +149,9 @@ func TestBuildKubeletArgMap(t *testing.T) {
CRISocket: "/var/run/dockershim.sock",
Name: "foo",
},
execer: systemdCgroupExecer,
pidOfFunc: binaryNotRunningPidOfFunc,
defaultHostname: "foo",
execer: systemdCgroupExecer,
isServiceActiveFunc: serviceIsNotActiveFunc,
defaultHostname: "foo",
},
expected: map[string]string{
"network-plugin": "cni",
@ -165,9 +165,9 @@ func TestBuildKubeletArgMap(t *testing.T) {
CRISocket: "/var/run/dockershim.sock",
Name: "foo",
},
execer: cgroupfsCgroupExecer,
pidOfFunc: binaryNotRunningPidOfFunc,
defaultHostname: "foo",
execer: cgroupfsCgroupExecer,
isServiceActiveFunc: serviceIsNotActiveFunc,
defaultHostname: "foo",
},
expected: map[string]string{
"network-plugin": "cni",
@ -181,9 +181,9 @@ func TestBuildKubeletArgMap(t *testing.T) {
CRISocket: "/var/run/containerd.sock",
Name: "foo",
},
execer: cgroupfsCgroupExecer,
pidOfFunc: binaryNotRunningPidOfFunc,
defaultHostname: "foo",
execer: cgroupfsCgroupExecer,
isServiceActiveFunc: serviceIsNotActiveFunc,
defaultHostname: "foo",
},
expected: map[string]string{
"container-runtime": "remote",
@ -211,7 +211,7 @@ func TestBuildKubeletArgMap(t *testing.T) {
},
registerTaintsUsingFlags: true,
execer: cgroupfsCgroupExecer,
pidOfFunc: binaryNotRunningPidOfFunc,
isServiceActiveFunc: serviceIsNotActiveFunc,
defaultHostname: "foo",
},
expected: map[string]string{
@ -227,9 +227,9 @@ func TestBuildKubeletArgMap(t *testing.T) {
CRISocket: "/var/run/containerd.sock",
Name: "foo",
},
execer: cgroupfsCgroupExecer,
pidOfFunc: binaryRunningPidOfFunc,
defaultHostname: "foo",
execer: cgroupfsCgroupExecer,
isServiceActiveFunc: serviceIsActiveFunc,
defaultHostname: "foo",
},
expected: map[string]string{
"container-runtime": "remote",
@ -244,10 +244,10 @@ func TestBuildKubeletArgMap(t *testing.T) {
CRISocket: "/var/run/dockershim.sock",
Name: "foo",
},
pauseImage: "gcr.io/pause:3.1",
execer: cgroupfsCgroupExecer,
pidOfFunc: binaryNotRunningPidOfFunc,
defaultHostname: "foo",
pauseImage: "gcr.io/pause:3.1",
execer: cgroupfsCgroupExecer,
isServiceActiveFunc: serviceIsNotActiveFunc,
defaultHostname: "foo",
},
expected: map[string]string{
"network-plugin": "cni",