mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 05:27:21 +00:00
Merge pull request #80296 from bart0sh/PR0072-remove-util-procfs-dependency
kubeadm: remove dependency on pkg/util/procfs
This commit is contained in:
commit
cfabadb0eb
@ -83,7 +83,6 @@
|
|||||||
"k8s.io/kubernetes/pkg/util/ipvs",
|
"k8s.io/kubernetes/pkg/util/ipvs",
|
||||||
"k8s.io/kubernetes/pkg/util/metrics",
|
"k8s.io/kubernetes/pkg/util/metrics",
|
||||||
"k8s.io/kubernetes/pkg/util/parsers",
|
"k8s.io/kubernetes/pkg/util/parsers",
|
||||||
"k8s.io/kubernetes/pkg/util/procfs",
|
|
||||||
"k8s.io/kubernetes/pkg/util/sysctl",
|
"k8s.io/kubernetes/pkg/util/sysctl",
|
||||||
"k8s.io/kubernetes/pkg/util/taints"
|
"k8s.io/kubernetes/pkg/util/taints"
|
||||||
],
|
],
|
||||||
|
@ -19,7 +19,6 @@ go_library(
|
|||||||
"//cmd/kubeadm/app/util/apiclient:go_default_library",
|
"//cmd/kubeadm/app/util/apiclient:go_default_library",
|
||||||
"//cmd/kubeadm/app/util/initsystem:go_default_library",
|
"//cmd/kubeadm/app/util/initsystem:go_default_library",
|
||||||
"//pkg/kubelet/apis/config: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/core/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/api/rbac/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",
|
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
||||||
|
@ -29,7 +29,7 @@ import (
|
|||||||
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/images"
|
"k8s.io/kubernetes/cmd/kubeadm/app/images"
|
||||||
kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util"
|
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"
|
utilsexec "k8s.io/utils/exec"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ type kubeletFlagsOpts struct {
|
|||||||
pauseImage string
|
pauseImage string
|
||||||
registerTaintsUsingFlags bool
|
registerTaintsUsingFlags bool
|
||||||
execer utilsexec.Interface
|
execer utilsexec.Interface
|
||||||
pidOfFunc func(string) ([]int, error)
|
isServiceActiveFunc func(string) (bool, error)
|
||||||
defaultHostname string
|
defaultHostname string
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,8 +57,14 @@ func WriteKubeletDynamicEnvFile(cfg *kubeadmapi.ClusterConfiguration, nodeReg *k
|
|||||||
pauseImage: images.GetPauseImage(cfg),
|
pauseImage: images.GetPauseImage(cfg),
|
||||||
registerTaintsUsingFlags: registerTaintsUsingFlags,
|
registerTaintsUsingFlags: registerTaintsUsingFlags,
|
||||||
execer: utilsexec.New(),
|
execer: utilsexec.New(),
|
||||||
pidOfFunc: procfs.PidOf,
|
isServiceActiveFunc: func(name string) (bool, error) {
|
||||||
defaultHostname: hostName,
|
initSystem, err := initsystem.GetInitSystem()
|
||||||
|
if err != nil {
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
return initSystem.ServiceIsActive(name), nil
|
||||||
|
},
|
||||||
|
defaultHostname: hostName,
|
||||||
}
|
}
|
||||||
stringMap := buildKubeletArgMap(flagOpts)
|
stringMap := buildKubeletArgMap(flagOpts)
|
||||||
argList := kubeadmutil.BuildArgumentListFromMap(stringMap, nodeReg.KubeletExtraArgs)
|
argList := kubeadmutil.BuildArgumentListFromMap(stringMap, nodeReg.KubeletExtraArgs)
|
||||||
@ -98,8 +104,11 @@ func buildKubeletArgMap(opts kubeletFlagsOpts) map[string]string {
|
|||||||
kubeletFlags["register-with-taints"] = strings.Join(taintStrs, ",")
|
kubeletFlags["register-with-taints"] = strings.Join(taintStrs, ",")
|
||||||
}
|
}
|
||||||
|
|
||||||
if pids, _ := opts.pidOfFunc("systemd-resolved"); len(pids) > 0 {
|
ok, err := opts.isServiceActiveFunc("systemd-resolved")
|
||||||
// procfs.PidOf only returns an error if the regex is empty or doesn't compile, so we can ignore it
|
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"
|
kubeletFlags["resolv-conf"] = "/run/systemd/resolve/resolv.conf"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ import (
|
|||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
|
|
||||||
"k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||||
"k8s.io/utils/exec"
|
"k8s.io/utils/exec"
|
||||||
)
|
)
|
||||||
@ -89,12 +89,12 @@ var (
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
func binaryRunningPidOfFunc(_ string) ([]int, error) {
|
func serviceIsActiveFunc(_ string) (bool, error) {
|
||||||
return []int{1, 2, 3}, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func binaryNotRunningPidOfFunc(_ string) ([]int, error) {
|
func serviceIsNotActiveFunc(_ string) (bool, error) {
|
||||||
return []int{}, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestBuildKubeletArgMap(t *testing.T) {
|
func TestBuildKubeletArgMap(t *testing.T) {
|
||||||
@ -118,9 +118,9 @@ func TestBuildKubeletArgMap(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
execer: errCgroupExecer,
|
execer: errCgroupExecer,
|
||||||
pidOfFunc: binaryNotRunningPidOfFunc,
|
isServiceActiveFunc: serviceIsNotActiveFunc,
|
||||||
defaultHostname: "foo",
|
defaultHostname: "foo",
|
||||||
},
|
},
|
||||||
expected: map[string]string{
|
expected: map[string]string{
|
||||||
"network-plugin": "cni",
|
"network-plugin": "cni",
|
||||||
@ -133,9 +133,9 @@ func TestBuildKubeletArgMap(t *testing.T) {
|
|||||||
CRISocket: "/var/run/dockershim.sock",
|
CRISocket: "/var/run/dockershim.sock",
|
||||||
Name: "override-name",
|
Name: "override-name",
|
||||||
},
|
},
|
||||||
execer: errCgroupExecer,
|
execer: errCgroupExecer,
|
||||||
pidOfFunc: binaryNotRunningPidOfFunc,
|
isServiceActiveFunc: serviceIsNotActiveFunc,
|
||||||
defaultHostname: "default",
|
defaultHostname: "default",
|
||||||
},
|
},
|
||||||
expected: map[string]string{
|
expected: map[string]string{
|
||||||
"network-plugin": "cni",
|
"network-plugin": "cni",
|
||||||
@ -149,9 +149,9 @@ func TestBuildKubeletArgMap(t *testing.T) {
|
|||||||
CRISocket: "/var/run/dockershim.sock",
|
CRISocket: "/var/run/dockershim.sock",
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
execer: systemdCgroupExecer,
|
execer: systemdCgroupExecer,
|
||||||
pidOfFunc: binaryNotRunningPidOfFunc,
|
isServiceActiveFunc: serviceIsNotActiveFunc,
|
||||||
defaultHostname: "foo",
|
defaultHostname: "foo",
|
||||||
},
|
},
|
||||||
expected: map[string]string{
|
expected: map[string]string{
|
||||||
"network-plugin": "cni",
|
"network-plugin": "cni",
|
||||||
@ -165,9 +165,9 @@ func TestBuildKubeletArgMap(t *testing.T) {
|
|||||||
CRISocket: "/var/run/dockershim.sock",
|
CRISocket: "/var/run/dockershim.sock",
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
execer: cgroupfsCgroupExecer,
|
execer: cgroupfsCgroupExecer,
|
||||||
pidOfFunc: binaryNotRunningPidOfFunc,
|
isServiceActiveFunc: serviceIsNotActiveFunc,
|
||||||
defaultHostname: "foo",
|
defaultHostname: "foo",
|
||||||
},
|
},
|
||||||
expected: map[string]string{
|
expected: map[string]string{
|
||||||
"network-plugin": "cni",
|
"network-plugin": "cni",
|
||||||
@ -181,9 +181,9 @@ func TestBuildKubeletArgMap(t *testing.T) {
|
|||||||
CRISocket: "/var/run/containerd.sock",
|
CRISocket: "/var/run/containerd.sock",
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
execer: cgroupfsCgroupExecer,
|
execer: cgroupfsCgroupExecer,
|
||||||
pidOfFunc: binaryNotRunningPidOfFunc,
|
isServiceActiveFunc: serviceIsNotActiveFunc,
|
||||||
defaultHostname: "foo",
|
defaultHostname: "foo",
|
||||||
},
|
},
|
||||||
expected: map[string]string{
|
expected: map[string]string{
|
||||||
"container-runtime": "remote",
|
"container-runtime": "remote",
|
||||||
@ -211,7 +211,7 @@ func TestBuildKubeletArgMap(t *testing.T) {
|
|||||||
},
|
},
|
||||||
registerTaintsUsingFlags: true,
|
registerTaintsUsingFlags: true,
|
||||||
execer: cgroupfsCgroupExecer,
|
execer: cgroupfsCgroupExecer,
|
||||||
pidOfFunc: binaryNotRunningPidOfFunc,
|
isServiceActiveFunc: serviceIsNotActiveFunc,
|
||||||
defaultHostname: "foo",
|
defaultHostname: "foo",
|
||||||
},
|
},
|
||||||
expected: map[string]string{
|
expected: map[string]string{
|
||||||
@ -227,9 +227,9 @@ func TestBuildKubeletArgMap(t *testing.T) {
|
|||||||
CRISocket: "/var/run/containerd.sock",
|
CRISocket: "/var/run/containerd.sock",
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
execer: cgroupfsCgroupExecer,
|
execer: cgroupfsCgroupExecer,
|
||||||
pidOfFunc: binaryRunningPidOfFunc,
|
isServiceActiveFunc: serviceIsActiveFunc,
|
||||||
defaultHostname: "foo",
|
defaultHostname: "foo",
|
||||||
},
|
},
|
||||||
expected: map[string]string{
|
expected: map[string]string{
|
||||||
"container-runtime": "remote",
|
"container-runtime": "remote",
|
||||||
@ -244,10 +244,10 @@ func TestBuildKubeletArgMap(t *testing.T) {
|
|||||||
CRISocket: "/var/run/dockershim.sock",
|
CRISocket: "/var/run/dockershim.sock",
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
pauseImage: "gcr.io/pause:3.1",
|
pauseImage: "gcr.io/pause:3.1",
|
||||||
execer: cgroupfsCgroupExecer,
|
execer: cgroupfsCgroupExecer,
|
||||||
pidOfFunc: binaryNotRunningPidOfFunc,
|
isServiceActiveFunc: serviceIsNotActiveFunc,
|
||||||
defaultHostname: "foo",
|
defaultHostname: "foo",
|
||||||
},
|
},
|
||||||
expected: map[string]string{
|
expected: map[string]string{
|
||||||
"network-plugin": "cni",
|
"network-plugin": "cni",
|
||||||
|
Loading…
Reference in New Issue
Block a user