mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Merge pull request #56250 from ingvagabund/extend-node-e2e-test-suite-with-containerized-kubelet
Automatic merge from submit-queue (batch tested with PRs 56250, 56809, 56812, 56792, 56724). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Extend node e2e test suite with containerized Kubelet How to run it? ```sh make test-e2e-node \ TEST_ARGS='--kubelet-containerized=true --hyperkube-image=hyperkube-amd64:1.9 --kubelet-flags="<FLAGS>"' \ FOCUS="Conformance" ```
This commit is contained in:
commit
0a940bfd10
@ -60,9 +60,13 @@ func (a *args) Set(value string) error {
|
||||
|
||||
// kubeletArgs is the override kubelet args specified by the test runner.
|
||||
var kubeletArgs args
|
||||
var kubeletContainerized bool
|
||||
var hyperkubeImage string
|
||||
|
||||
func init() {
|
||||
flag.Var(&kubeletArgs, "kubelet-flags", "Kubelet flags passed to kubelet, this will override default kubelet flags in the test. Flags specified in multiple kubelet-flags will be concatenate.")
|
||||
flag.BoolVar(&kubeletContainerized, "kubelet-containerized", false, "Run kubelet in a docker container")
|
||||
flag.StringVar(&hyperkubeImage, "hyperkube-image", "", "Docker image with containerized kubelet")
|
||||
}
|
||||
|
||||
// RunKubelet starts kubelet and waits for termination signal. Once receives the
|
||||
@ -93,6 +97,10 @@ const (
|
||||
// startKubelet starts the Kubelet in a separate process or returns an error
|
||||
// if the Kubelet fails to start.
|
||||
func (e *E2EServices) startKubelet() (*server, error) {
|
||||
if kubeletContainerized && hyperkubeImage == "" {
|
||||
return nil, fmt.Errorf("the --hyperkube-image option must be set")
|
||||
}
|
||||
|
||||
glog.Info("Starting kubelet")
|
||||
|
||||
// set feature gates so we can check which features are enabled and pass the appropriate flags
|
||||
@ -125,7 +133,32 @@ func (e *E2EServices) startKubelet() (*server, error) {
|
||||
// sense to test it that way
|
||||
isSystemd = true
|
||||
unitName := fmt.Sprintf("kubelet-%d.service", rand.Int31())
|
||||
cmdArgs = append(cmdArgs, systemdRun, "--unit="+unitName, "--slice=runtime.slice", "--remain-after-exit", builder.GetKubeletServerBin())
|
||||
if kubeletContainerized {
|
||||
cmdArgs = append(cmdArgs, systemdRun, "--unit="+unitName, "--slice=runtime.slice", "--remain-after-exit",
|
||||
"/usr/bin/docker", "run", "--name=kubelet",
|
||||
"--rm", "--privileged", "--net=host", "--pid=host",
|
||||
"-e HOST=/rootfs", "-e HOST_ETC=/host-etc",
|
||||
"-v", "/etc/localtime:/etc/localtime:ro",
|
||||
"-v", "/etc/machine-id:/etc/machine-id:ro",
|
||||
"-v", filepath.Dir(kubeconfigPath)+":/etc/kubernetes",
|
||||
"-v", "/:/rootfs:ro,rslave",
|
||||
"-v", "/run:/run",
|
||||
"-v", "/sys/fs/cgroup:/sys/fs/cgroup:rw",
|
||||
"-v", "/sys:/sys:rw",
|
||||
"-v", "/usr/bin/docker:/usr/bin/docker:ro",
|
||||
"-v", "/var/lib/cni:/var/lib/cni",
|
||||
"-v", "/var/lib/docker:/var/lib/docker",
|
||||
"-v", "/var/lib/kubelet:/var/lib/kubelet:rw,rslave",
|
||||
"-v", "/var/log:/var/log",
|
||||
"-v", manifestPath+":"+manifestPath+":rw",
|
||||
hyperkubeImage, "/hyperkube", "kubelet",
|
||||
"--containerized",
|
||||
)
|
||||
kubeconfigPath = "/etc/kubernetes/kubeconfig"
|
||||
} else {
|
||||
cmdArgs = append(cmdArgs, systemdRun, "--unit="+unitName, "--slice=runtime.slice", "--remain-after-exit", builder.GetKubeletServerBin())
|
||||
}
|
||||
|
||||
killCommand = exec.Command("systemctl", "kill", unitName)
|
||||
restartCommand = exec.Command("systemctl", "restart", unitName)
|
||||
e.logs["kubelet.log"] = LogFileData{
|
||||
|
Loading…
Reference in New Issue
Block a user