From df455d120ba9d3ff92d21e02d7f33db6d33ce3bc Mon Sep 17 00:00:00 2001 From: Yu-Ju Hong Date: Mon, 27 Jun 2016 12:42:47 -0700 Subject: [PATCH 1/4] node e2e: install nsenter on trusty images This is required to run kubelet with kubenet. --- test/e2e_node/environment/setup_host.sh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/test/e2e_node/environment/setup_host.sh b/test/e2e_node/environment/setup_host.sh index 48393469cc2..052ccd40b0c 100755 --- a/test/e2e_node/environment/setup_host.sh +++ b/test/e2e_node/environment/setup_host.sh @@ -62,6 +62,25 @@ if [ $? -ne 0 ]; then rm -r etcd-v2.2.5-linux-amd64* fi +# Install nsenter for ubuntu images +cat /etc/*-release | grep "ID=ubuntu" +if [ $? -eq 0 ]; then + if ! which nsenter > /dev/null; then + echo "Do not find nsenter. Install it." + mkdir -p /tmp/nsenter-install + cd /tmp/nsenter-install + curl https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz | tar -zxf- + sudo apt-get update + sudo apt-get --yes install make + sudo apt-get --yes install gcc + cd util-linux-2.24 + ./configure --without-ncurses + make nsenter + sudo cp nsenter /usr/local/bin + rm -rf /tmp/nsenter-install + fi +fi + # Install docker hash docker 2>/dev/null if [ $? -ne 0 ]; then From b096b4a2db74a88b6d620d9f9b539675d891d0a7 Mon Sep 17 00:00:00 2001 From: Yu-Ju Hong Date: Wed, 29 Jun 2016 10:15:33 -0700 Subject: [PATCH 2/4] node e2e: install cni on the host This is required to run kubelet with kubenet. --- test/e2e_node/e2e_remote.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/test/e2e_node/e2e_remote.go b/test/e2e_node/e2e_remote.go index a9ae1de2a67..38491d52623 100644 --- a/test/e2e_node/e2e_remote.go +++ b/test/e2e_node/e2e_remote.go @@ -40,7 +40,12 @@ var ginkgoFlags = flag.String("ginkgo-flags", "", "Passed to ginkgo to specify a var sshOptionsMap map[string]string -const archiveName = "e2e_node_test.tar.gz" +const ( + archiveName = "e2e_node_test.tar.gz" + CNI_RELEASE = "c864f0e1ea73719b8f4582402b0847064f9883b0" +) + +var CNI_URL = fmt.Sprintf("https://storage.googleapis.com/kubernetes-release/network-plugins/cni-%s.tar.gz", CNI_RELEASE) var hostnameIpOverrides = struct { sync.RWMutex @@ -152,6 +157,14 @@ func RunRemote(archive string, host string, cleanup bool, junitFileNumber int, s } } + // Install the cni plugin. Note that /opt/cni does not get cleaned up after + // the test completes. + if _, err := RunSshCommand("ssh", GetHostnameOrIp(host), "--", "sh", "-c", + getSshCommand(" ; ", "sudo mkdir -p /opt/cni", fmt.Sprintf("sudo wget -O - %s | sudo tar -xz -C /opt/cni", CNI_URL))); err != nil { + // Exit failure with the error + return "", false, err + } + // Create the temp staging directory glog.Infof("Staging test binaries on %s", host) tmp := fmt.Sprintf("/tmp/gcloud-e2e-%d", rand.Int31()) From 5e0cc2179d9721f988458b18a74e0b92ff29cc97 Mon Sep 17 00:00:00 2001 From: Yu-Ju Hong Date: Wed, 29 Jun 2016 11:25:49 -0700 Subject: [PATCH 3/4] node e2e: run kubelet with kubenet --- test/e2e_node/e2e_service.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/e2e_node/e2e_service.go b/test/e2e_node/e2e_service.go index bb73b670843..071d646307d 100644 --- a/test/e2e_node/e2e_service.go +++ b/test/e2e_node/e2e_service.go @@ -241,6 +241,9 @@ func (es *e2eService) startKubeletServer() (*killCmd, error) { "--config", es.kubeletStaticPodDir, "--file-check-frequency", "10s", // Check file frequently so tests won't wait too long "--v", LOG_VERBOSITY_LEVEL, "--logtostderr", + "--network-plugin=kubenet", + "--pod-cidr=10.180.0.0/24", // Assign a fixed CIDR to the node because there is no node controller. + "--hairpin-mode=hairpin-veth", ) cmd := exec.Command("sudo", cmdArgs...) hcc := newHealthCheckCommand( From e76b4184c3ed34e7e8fdbebc9c4ba08dc9900086 Mon Sep 17 00:00:00 2001 From: Yu-Ju Hong Date: Wed, 29 Jun 2016 11:44:26 -0700 Subject: [PATCH 4/4] node e2e: use updated ubuntu images --- test/e2e_node/jenkins/jenkins-ci.properties | 2 +- test/e2e_node/jenkins/jenkins-pull.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/e2e_node/jenkins/jenkins-ci.properties b/test/e2e_node/jenkins/jenkins-ci.properties index 415ca42ba8f..b183ed59806 100644 --- a/test/e2e_node/jenkins/jenkins-ci.properties +++ b/test/e2e_node/jenkins/jenkins-ci.properties @@ -3,7 +3,7 @@ GCE_HOSTS= # To copy an image between projects: # `gcloud compute --project disks create --image=https://www.googleapis.com/compute/v1/projects//global/images/` # `gcloud compute --project images create --source-disk=` -GCE_IMAGES=e2e-node-ubuntu-trusty-docker10-image,e2e-node-ubuntu-trusty-docker9-image,e2e-node-coreos-stable20160622-image,e2e-node-containervm-v20160321-image +GCE_IMAGES=e2e-node-ubuntu-trusty-docker9-v1-image,e2e-node-ubuntu-trusty-docker10-v1-image,e2e-node-coreos-stable20160622-image,e2e-node-containervm-v20160321-image GCE_ZONE=us-central1-f GCE_PROJECT=kubernetes-jenkins GCE_IMAGE_PROJECT=kubernetes-node-e2e-images diff --git a/test/e2e_node/jenkins/jenkins-pull.properties b/test/e2e_node/jenkins/jenkins-pull.properties index 8b5bad859dc..7ccb2cd24c3 100644 --- a/test/e2e_node/jenkins/jenkins-pull.properties +++ b/test/e2e_node/jenkins/jenkins-pull.properties @@ -3,7 +3,7 @@ GCE_HOSTS= # To copy an image between projects: # `gcloud compute --project disks create --image=https://www.googleapis.com/compute/v1/projects//global/images/` # `gcloud compute --project images create --source-disk=` -GCE_IMAGES=e2e-node-ubuntu-trusty-docker10-image,e2e-node-ubuntu-trusty-docker9-image,e2e-node-coreos-stable20160622-image,e2e-node-containervm-v20160321-image +GCE_IMAGES=e2e-node-ubuntu-trusty-docker9-v1-image,e2e-node-ubuntu-trusty-docker10-v1-image,e2e-node-coreos-stable20160622-image,e2e-node-containervm-v20160321-image GCE_ZONE=us-central1-f GCE_PROJECT=kubernetes-jenkins-pull GCE_IMAGE_PROJECT=kubernetes-node-e2e-images