mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +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:
		@@ -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",
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user